-
1 # Echa攻城獅
-
2 # PM蘇木
答案肯定是可以的,目前知道的文明,EVE(大型星際飛行沙盒遊戲,就是那個新手入門兩年半那個),還有比較火的豬場的一些遊戲都是Python寫的,
Python有哪些優勢呢?
首先我們說Python最擅長的運維層面的東西(市面上多數外掛都是Python寫的),所有的運維工具、專案周邊工具、工具鏈膠水層等等,個人感覺Python算很相當適合的了,本身就號稱膠水語言(狗頭保命,人身苦短,我用Python)
專案組甚至不需要分出人力去維護引擎部分,因為引擎本身比較穩。
然後是服務端:也是純 Python。
因此很多程式碼可以服務端客戶端共用,尤其是資料結構定義,序列化等。
效率問題:
執行效率大部分情況下都不是問題,開發效率卻可以提升幾個數量級。
多執行緒:客戶端邏輯沒有必要。
遊戲專案從來都不是計算密集型的,邏輯本來就夠複雜了,多執行緒會進一步增加複雜度
最後,Python 進行熱更是語言原生支援的,意味著實現成本很低,風險低,操作也很方便。
-
3 # 明哥玩程式設計
大型網路遊戲一般也是會分為前後端,後端的話基本上所有開發語言都可以進行實現,Python也不例外。很多輕遊戲(頁遊,手遊)的服務端都是Python進行實現的。
所以Python做大型遊戲的伺服器端,是沒有任何問題的。
遊戲的前端實現大部分都是由C++來進行的,更底層,對客戶機的硬體利用率會更高。
Python本身不是為遊戲所進行開發的對於大量的圖形特效,需要用很多顯示卡底層的功能,python在這方面是不行的,而且效能也跟不上。
所以市場上游戲前端大部分不會招Python崗的,當然國外也有一些遊戲是用Python實現的,有些玩家自制的遊戲Python 也不少。
-
4 # 慎談奧秘
這個大型遊戲最好還是 c語言來寫 python可以做其中一部分去執行 ---------河南新華
回覆列表
豈止是有潛力,簡直是很合適!
兩大遊戲客戶端引擎,NeoX 和 Messiah,都使用 Python 作為指令碼語言。
你最近所瞭解的比較火的掛著豬廠旗號的,也都是 Python 寫的。
一些專案組甚至不需要分出人力去維護引擎部分,因為引擎本身比較穩。
也就是說,程式絕大部分時間都可以專注用 Python 寫邏輯,保持創造力。
還有就是 Python 寫各種工具,編輯器,不是一般的爽。PyQt 在手天下我有。
還能和專案程式碼無縫銜接。
————————
服務端:
也是純 Python。
因此很多程式碼可以服務端客戶端共用,尤其是資料結構定義,序列化等。
用過的才知道前後端用同一種語言有多方便。
同一套 Excel 配表,用 Python 寫的工具轉成 py 檔案,然後服務端和客戶端都用這個。
同一個類,服務端用,客戶端也用,還需要啥資料格式轉換啊(滑稽)。
————————
效率問題:
執行效率大部分情況下都不是問題,開發效率卻可以提升幾個數量級。
————————
靜態型別語言 vs 動態型別語言:
這是個有爭議的話題。
個人看法這是一種 trade-off,犧牲邏輯的嚴謹性,以及架構,來換取開發效率。
這樣做當然很多弊端,只是在目前這個階段,開發效率比什麼都重要,真的。
(專案組都要解散了你跟我說你的程式碼更好看?)
————————
多執行緒:
客戶端邏輯沒有必要。
遊戲專案從來都不是計算密集型的,邏輯本來就夠複雜了,多執行緒會進一步增加複雜度,得不償失。
(一般情況下不需要,要用的話祝你好運)
————————
Hotfix:
網路遊戲正在逐漸成為一種服務,成為每個人的日常娛樂方式。
服務的穩定也變得越來越重要,如果隔三差五就得停服修bug,客戶端動不動就得整包更新,會嚴重影響玩家體驗。
而用 Python 進行熱更是語言原生支援的,意味著實現成本很低,風險低,操作也很方便。
————————
最後的廢話:
不要想當然,不要聽風就是雨,實踐出真知
————————————————