為什么 Python 不適合寫游戲?
“
閱讀本文大概需要 5 分鐘。
知乎上有個(gè)熱門問題:Python 能寫游戲嗎?有沒有什么開源項(xiàng)目?

Python可以開發(fā)游戲,但不是好的選擇
Python作為腳本語言,一般很少用來開發(fā)游戲,但也有不少大型游戲有Python的身影,比如:
- 坦克世界大戰(zhàn)(作為用戶端腳本)
- 文明IV(作為地圖編輯器腳本)
- 戰(zhàn)場(chǎng)2(作為游戲玩法腳本)
- 模擬市民(作為mod腳本)
- 新戰(zhàn)前夜(作為服務(wù)器和客戶端語言)
- 迪士尼-卡通城(提供 Panda3D 引擎圖形) ...
雖然這些游戲支持python,但python扮演的角色大多作為腳本和插件,并非游戲開發(fā)的主語言。
目前市場(chǎng)上多數(shù)游戲都是基于C++、Java等語言進(jìn)行開發(fā),主要它們都是靜態(tài)語言,比較穩(wěn)定且速度快,能夠滿足游戲高性能的需求。
比如《絕地求生》、《巫師3》、《黑暗之魂》等都是用C++開發(fā)的,《碟中諜III》、《Minecraft》、《FIFA 11》等都是用Java開發(fā)的。
Python因?yàn)樽⒅鼐幋a效率而非計(jì)算性能,在速度和穩(wěn)定性上無法與其他語言媲美,幾乎很少有商業(yè)游戲是純Python開發(fā)的。
但Python可以通過腳本和第三方引擎為大型游戲提供組件,比如上述提到的幾款游戲。
而且Python可以快速創(chuàng)建游戲原型,幫助開發(fā)者進(jìn)行試驗(yàn)和debug,作為輔助工具還是不錯(cuò)的。
可以嘗試一些Python開源小游戲
Github上有一些基于Python開發(fā)的開源小游戲,有興趣可以試試看。比如說基于Python Pygame庫開發(fā)植物大戰(zhàn)僵尸。
原項(xiàng)目:marblexu/PythonPlantsVsZombies

該游戲倉庫主要包含三部分:游戲代碼、游戲素材、數(shù)據(jù)庫
游戲代碼就是Pygame庫提供框架,然后python搭建游戲規(guī)則,全部代碼將近3000行。
游戲素材主要包括僵尸、植物、背景等圖片,圖片會(huì)導(dǎo)入進(jìn)游戲界面,然后寫動(dòng)態(tài)事件過程來實(shí)現(xiàn)游戲畫面。
數(shù)據(jù)庫是用json來存儲(chǔ)游戲過程數(shù)據(jù),這里包括了位置、時(shí)間、關(guān)卡等。
我專門錄了個(gè)視頻講解下如何去下載,并在本地電腦執(zhí)行。
還有很多小游戲可以用Python實(shí)現(xiàn),我覺得是非常有趣的過程,初學(xué)者可以玩玩。
比如這個(gè)github倉庫提供了很多免費(fèi)小游戲的代碼和demo:
grantjenks/free-python-games

Python游戲開發(fā)的主要框架
Python有很多游戲開發(fā)框架,比如說
PyGame:PyGame在優(yōu)秀的SDL庫之上添加了更多功能。允許使用python語言創(chuàng)建功能齊全的游戲和多媒體程序。具有高度的可移植性,幾乎可以在所有平臺(tái)和操作系統(tǒng)上運(yùn)行
PySoy:Python 3的高級(jí)3D游戲引擎,緊密結(jié)合了渲染,物理,動(dòng)畫和網(wǎng)絡(luò)
Pyglet:用于opengl的跨平臺(tái)窗口和Python的多媒體庫,可在mods / bfheores / python文件夾中找到
Python-Ogre:用于OGRE 3D引擎的完整python包裝器,以及用于GUI,物理,特效,聲音等的15個(gè)其他圖形和游戲相關(guān)庫
Panda3d:專門用于python的全功能開源3d引擎,但用c ++編寫。功能:性能,多平臺(tái)支持,場(chǎng)景圖,導(dǎo)出/導(dǎo)入,3D音頻,碰撞檢測(cè),物理,瀏覽器插件,動(dòng)畫等
Blender3D:GNU GPL許可下的開源游戲引擎器,動(dòng)畫師和3D渲染器。使用Python作為腳本語言
Python游戲可以幫助你學(xué)習(xí)語法
對(duì)于Python初學(xué)者來說,雖然不為了做游戲,但通過寫游戲來學(xué)習(xí)語法是很好的方法,唯有多動(dòng)手才能掌握編程的真諦。
End
崔慶才的新書《Python3網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn)(第二版)》已經(jīng)正式上市了!書中詳細(xì)介紹了零基礎(chǔ)用 Python 開發(fā)爬蟲的各方面知識(shí),同時(shí)相比第一版新增了 JavaScript 逆向、Android 逆向、異步爬蟲、深度學(xué)習(xí)、Kubernetes 相關(guān)內(nèi)容,?同時(shí)本書已經(jīng)獲得 Python 之父 Guido 的推薦,目前本書正在七折促銷中!
內(nèi)容介紹:《Python3網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn)(第二版)》內(nèi)容介紹

掃碼購(gòu)買

點(diǎn)個(gè)在看你最好看
