Python真的不適合遊戲開發嗎?遊戲全都用像Python這種解釋型語言寫,對開發出的遊戲有什麼影響?

gdhycgs


你好,很高興能夠回答這個問題。

首先,像我們經常玩的遊戲一般都是由很多種編程語言來開發的,和普通的軟件開發是一個道理。目前開發遊戲經常使用的語言主要有c++、c#、c、java語言等等,是因為現在的遊戲開發領域已經趨於成熟了,所以只能選擇相對成熟的方案;

其次,python也能開發遊戲,但都是一些網頁端的小遊戲,但隨著遊戲行業逐漸的成熟,以python為主的遊戲引擎越來越少,離著目前主流的開發技術越走越遠,所以通過python語言來開發遊戲也就慢慢就被邊緣化了。現在我們用python來做遊戲最大的目的就是提高學習python的學習興趣,然後利用python來做其它方面的事情,比如人工智能,學習AI相關的技術大部分都是採用的python加上TensorFlow來完成的,這才是python語言的優勢所在!

最後,我們可以總結出來,為什麼python語言現在不適合開發遊戲,它的優勢在於數據挖掘、人工智能等相關領域。所以,再開發遊戲之初就要跟上 目前的主流技術。


人工智能崔老師


感謝邀請!

Python是否適合開發遊戲?

理解這個問題有兩個角度:

1、任何語言都可以開發遊戲,任何方便好用的語言都可以快速開發遊戲。Python很好用,沒理由不能開發遊戲。

2、現代遊戲開發,不能從畫像素點、畫三角形做起,絕大多數情況下都要藉助於遊戲引擎和編輯器。而流行的遊戲引擎非常有限,它們採用的編程語言自然也就被限制在那幾種。

從兩個角度分析,就可以得出基本結論:理論上Python完全可以開發遊戲,甚至還非常好用;但是實踐中很難拿它開發遊戲,因為缺乏必要的工具和基礎設施。

1、編程語言和引擎、技術方案有綁定關係

遊戲引擎限定了技術方案,具體點說:

  1. Unity和C#
  2. UE4和C++,藍圖
  3. 可以間接寄生在其它技術中的Lua
  4. H5遊戲領域流行的JavaScript和TypeScript。

一套技術會形成一套生態,生態本身很難發生大的改變,主要是因為缺乏改變的必要。這是人類社會常見的現象。不僅是技術領域如此,其它領域也是一樣:比如,抖音用戶超級多,但是用電腦觀看抖音的需求很少。

2、現代遊戲開發並不排斥解釋型語言

現代遊戲開發中,以Lua為代表的解釋型語言大行其道。國產手機遊戲特別重視“熱更新”功能。所謂熱更新,就是用戶不需要重新下載安裝遊戲,就能在遊戲內升級版本。

為了做到代碼熱更新,很多公司都採用Lua編寫大部分遊戲邏輯代碼。(也有Lua以外的其它技術)。

雖然解釋型語言有著運行效率較低等弊端,但至少從大體上看,Lua能做的,Python也能做。Lua效率比Python高一些,但還是屬於量的差異而不是質的差異。不少網絡遊戲服務器端就採用了Python。

3、Python很難做遊戲開發的原因

最主要的原因還是沒有技術土壤。被主流單機遊戲開發排除在外的不止是Python,而是除了C++、Lua、C#以外的幾乎所有語言~~~ 並不是針對Python。

次要原因是Python本身的特點。Python在執行效率、多線程、內存管理方面確實存在一些瑕疵,而這些瑕疵是高性能遊戲客戶端很介意的,所以Python很難成為首選方案。

而只要不是首選方案就很可能沒有出頭的機會,這兩個原因也算是相輔相成的。


i網絡心連心


從業8年的遊戲開發者告訴你,非常適合。

但客戶端不適合純Python開發,有部分功能還是要用其它語言配合最佳。例如你需要用c來寫渲染部分,客戶端邏輯用Python來寫,例如Python的一個庫pygame.就是典型的c渲染python邏輯的例子,很多人覺得他很慢,實際上是有很大優化空間的,作為非商用引擎,沒必要而已。

服務器你可以純python,包括網易等大公司都有這樣的服務器在用。

腳本效率是比不上編譯語言的,但遊戲寫個邏輯需要多高的性能呢?現在腳本語言早就已經不是20年前的樣子了。開發效率和運行效率本來就是需要取捨的。

所以,不需要擔心主流的語言是否適合,你只需要學好他,知道怎麼更好使用才是關鍵。


分享到:


相關文章: