什麼是遊戲後端?大多數公司用python做遊戲用什麼框架?(pygame就算了..)?

本人大三,一年acm經驗,半年ctf經驗,然後= =大二下學期頹廢了半年。

覺得自己還是喜歡做遊戲,暑假20天自學了python..後來發現了pygame..可以用pygame寫個俄羅斯方塊什麼的,但是搜知乎發現遊戲公司多不會用pygame。

我覺得python是我在c++之後最喜歡的語言(我還學了java和c#以及了解一點js)..然後我想進遊戲公司,不管網遊還是手游,想去寫代碼,就算不給錢也行,想下個學期去實習,就怕沒人要我...現在需要充電。

我需要什麼能力呢...請寫具體一些,如果能具體到需要看哪本書...我將感動的流淚...謝謝您。


恰好我目前所在的項目,用的就是 NeoX,服務端用 MobileServer,這兩個都以 Python 為核心。

很多人應該不了解所以簡單說下,算是交流交流。

遊戲服務端

完全 Python,沒錯,一行 C++ 都沒有。

純粹的 Python 有相當多的優勢,各個項目組在分享經驗的時候,常常說到 XXX 天不停服。

越是火的遊戲,就越是一天 24 小時都有人玩,任何時候停服都是損失。

這時候熱更的優勢就體現出來了。

而用 Python 實現熱更也是非常自然。

遊戲客戶端

核心引擎部分當然是 C++,但是提供的功能很少。

只有基本的渲染,和一些為了提升速度而用 C++ 實現的庫,比如數學庫。

所有的邏輯全部 Python 實現。

用慣了 Python 來寫邏輯之後,是不太想用其他語言的。

你需要什麼能力?

演算法,數據結構,C++,系統結構,組成原理。。。

畫風突變有木有,然而這就是現實,你需要校招表現好,才能去更好的平台發揮。

既然你有 ACM 的經驗,那就好好利用這一點。

主流引擎?

Unity ,毫無疑問,Unity 在遊戲圈就像 Python 一樣流行。

如果你評估自己覺得進大廠很難,那麼提前熟悉下 Unity 總沒壞處。

推薦書籍?

校招的話,就是老生常談的那些計算機專業書籍,相關回答已經很多了。

Unity的話,首選官網教程以及項目實踐。

一定要看書的話,推薦 《Unity In Action》,目前最好的入門書籍。

祝好運!


py 作為前端後端語言都是有廣泛使用的

所以要多學多看多想

還要學習的是,對自己不是完全有把握的問題不要聽風就是雨隨便下斷言,因為井口總會不斷擴大

話又說回來了,遊戲和語言關係的確不那麼大,所以你要是感興趣,倒是可以看看我在 b 站的直播系列


想做遊戲學C++肯定沒錯。

遊戲伺服器現在go和erlang開始變多了。

服務端更多學習的是解決問題的思路。

至於邏輯語言用的比較雜,lua,py,js什麼的都有,做遊戲邏輯更多的是憑藉對遊戲業務的理解而不是對編程語言的理解,入職在學都來得及。

遊戲伺服器目前沒有統一的框架,重複造輪子也很多,題主想學,可以學習skynet,代碼是開源的。

原理學會了,日後哪怕換語言也不怕的。

最後還是那句話,做遊戲,不管以後用不用C++,C++都要學的稍微紮實一點。

做遊戲是個很複雜的事,不存在一勞永逸,換語言也是比較常見的事。

但伺服器性能優化,並發計算的解決思路是不隨語言變化而變的。

一般性能不行大多數情況是你邏輯本身寫的不好而不是語言本身性能不夠。


可以關注下EVE


pygame是從SDL包裝起來的一個很弱的遊戲引擎,應該不會有商業公司做遊戲會用這麼弱的玩意,據我所知就只有少數幾個開源遊戲在用,——但是不少遊戲會在部分模塊里用py或者其他腳本語言,如擼啊什麼的寫寫邏輯,畢竟c++寫邏輯真的頭大。

另外不是很懂你的後端指的是什麼,後台?國內大廠里豬廠就是py大戶,一些遊戲後台全是py。


看起來遊戲公司都悶聲發大財去了,遊戲行業交流真是太少啊。。這問題下面這麼多人都不了解行情啊。。

網易那麼多遊戲後端都是Python寫的。Big World引擎前後端都是Python。國外的EVE知道么,玩Python玩的風生水起。。

言歸正傳回答樓主問題

遊戲後端一般分成平台功能和遊戲功能。平台功能就是登錄,買賣道具等等。遊戲功能就是計算具體的遊戲邏輯,比如說尋路,命中之類的。

如果樓主志在遊戲行業,有機會就進網易遊戲或者騰訊遊戲實習生咯


我聽說有只用C++做後端、只用C#做後端、只用go做後端、只用erlang做後端的,就沒聽說過只用python。


以我所在的公司來說,前後端基本都是以Python 寫業務邏輯,少量很舊的遊戲用的是Lua。但是核心代碼,也就是引擎都是C++寫的。

對於客戶端來說,主要負載在於渲染,不在於業務邏輯,實際性能測試來說,玩家正常操作下,腳本每幀耗時大概在百分之3以內。手遊客戶端的主要難點在於安卓碎片化的兼容、渲染合批優化、界面打開頓卡的優化、內存泄漏以及耗電。

對於伺服器來說,遊戲伺服器的主要難點在於跨服操作、協議數據的解析、伺服器戰鬥結算和客戶端同步問題。 伺服器的主要性能消耗點在於 協議數據解析、協議數據的加密和解密、伺服器場景的AOI、伺服器尋路。一般來說為了能夠讓伺服器能夠承受更多的玩家,很多計算是會分包給worker線程,多進程,甚至有的是放到CGI伺服器去做的,比如協議數據的加密和解密。這些核心邏輯,基本都不會變,因此一般都用C++寫的,然後上層包裝Python。具體某個遊戲的後端業務邏輯就是用Python來寫。

之所以用Python寫,原因也很簡單,因為遊戲的業務邏輯代碼壽命往往都不是很長久,遊戲策劃需求變動很大,各種節日或者促銷活動的加入也需要快速開發。另外,遊戲客戶端對實時更新代碼的需求非常大,因此基本都有Patch機制和代碼運行時熱更新機制。而這些機制,用Python這類腳本語言也是非常合適的。


python是膠水腳本語言,沒大公司做遊戲用它。早先2d遊戲cpp和lua比較多公司用,現在unity 3d越來越普遍,是基於c#的。遊戲後端伺服器一般是cpp、java、c#為主。


瀉藥,太專業的程序問題答不了。。。

聯繫@vczh來回答,雖然他不做遊戲,但是他懂得多


請題主堅定信心,很多情況下是人比較弱,不是語言或者工具弱,python寫前後端都i是完全可以的,遊戲很多時候更多的是創意和設計,語言在其次,用pygame確實差點事,同意有回答說的前端python少是因為缺少框架或者庫,有好的支持python的渲染庫,python做前端也是完全可以的,不是很大的遊戲應該至少夠用,現階段前端c++是個不錯的選擇,因為c++寫的遊戲引擎比較多,資源豐富。

後端用python完全可以,性能多數情況下夠用,等不夠用說明玩的人很多,估計你已經發達了,python網路框架推薦tornado,不是專門遊戲後端框架,是web server框架,也支持tcp server,一般情況下玩家萬人以下在線的話, 應該夠用。


python做遊戲後端是沒有問題的,做前端不多見,前端靠引擎,但目前沒有好的基於python的引擎。

後台編程的話,你需要掌握多進程,協程編程(python有GIL限制,所以要提高計算能力,必須多進程加協程),以及消息中間件如rabbitmq,緩存如redis以及資料庫編程。

人在武漢的話,可以提供遊戲公司實習機會。


遊戲後端是遊戲伺服器,既然學Python,推薦學習下KBEngine,用它做伺服器的手游公司也有很多。

至於遊戲前端,就學習unity就可以了,大眾化的選擇。


遊戲後端指的就是遊戲伺服器對遊戲的處理,包括網路處理,數據存儲,遊戲邏輯處理等等。

至於遊戲公司為什麼很少用python做伺服器,是因為python慢。。因為現在遊戲開始越來越龐大,對實時性的要求也越來越高,這個時候就對運行效率有了一定的需求。python雖然開發效率很高,很簡潔,但是不適合作為底層架構來製作遊戲伺服器。否則遊戲伺服器的承載人數上限就會很低,在遊戲上線後運營成本就會上升。

但是python也可以用來做一些比較簡單的遊戲的工具,比如像GM工具,就可以使用python來進行開發,因為這種工具本身不涉及具體的複雜的遊戲邏輯,所以運行效率低一些也沒關係,只要開發效率高就可以了。另外就是一些比較簡單的,不太需要實時性,沒有太多承載壓力的業務也可以考慮用python來做。

另外一些架構良好的伺服器可能用使用python作為腳本語言,比如KBEngine。或者某些遊戲的打包流程,也可以通過python來做。在運維階段也有不少可以用python來簡化相應功能操作。

至於遊戲公司實習的話其實並不是特別看重遊戲的經歷,只要數據結構和演算法基礎紮實,找到一份遊戲公司的實習是沒有問題的。對遊戲有一定的研究的經歷也只不過是錦上添花罷了。所以題主可以繼續在學校紮實自己的數據結構和演算法基礎。

目前大部分主流的遊戲開發,特別是手游的前端都是Unity3D引擎,後端則可能使用C++, java, C#。題主對遊戲有興趣可以去了解一些這方面的知識,但是這些畢竟都是工具,最核心最重要的還是要在學校打好自己的基礎。


我貢獻一個吧 有用PHP + Swoole做遊戲伺服器後端的

性能還不錯


根據遊戲類型的不同可以選擇不同語言

如果是卡牌棋牌在線泛娛樂化的這種遊戲服務端,那麼什麼語言都能夠選擇

如果要求實時性高的,則最好選擇還是C/C++


作為校招的話,公司一般都是不太關注遊戲開發的水平的,如果有的話是加分項(就是如果有好幾個符合條件的人當中挑的時候會優先考慮),最重要的是本身技術水平(編程語言,演算法等),以及有沒有鑽研比較深的某些領域(圖形學,網路,資料庫等)。打好基礎更重要

回過頭來說py做遊戲,伺服器都是架構排第一,代碼水平第二,語言第三。


後端跟引擎不是一回事謝謝


服務端用Java的飄過,另外前端大量使用Lua,至於語言對做遊戲沒那麼相關性。搞服務端的要把網路,操作系統的基礎吃透,了解各種存儲系統,消息系統,高可用系統,監控調優。前端可以搞搞渲染,2D,3D,也闊以搞搞各種編輯器,腳本綁定,尋路演算法,跨平台支持。


python做遊戲效率太低了點吧…

效率低就導致「卡」

中等2d估計還勉強湊個吧

3d就別想了


推薦閱讀:

卡普空「Capcom」的遊戲你最喜歡哪一款?為什麼?
遊戲軟體體積與哪些因素有關?
你開發的遊戲突然賺大錢了是一種什麼樣的體驗?
遊戲公司在自己遊戲 IP 的維護上要注意些什麼?
如何評價「世嘉垮了我們能在PS4上玩莎木,所以如果任天堂也垮了我們就能在PS5上玩馬里奧」這一觀點?

TAG:網路遊戲 | Python | 遊戲公司 | 手機遊戲 | 遊戲後端 |