Python 是當(dāng)下最為火熱,且功能最為全面的一門編程語言。Python 之所以深受大家喜愛, 除了可以被應(yīng)用到“人工智能”領(lǐng)域之外,還可以延伸到數(shù)據(jù)分析、Web 開發(fā)、自動(dòng)化測(cè)試、自然語言處理、游戲開發(fā)等各個(gè)領(lǐng)域。這一切的實(shí)現(xiàn)得益于 Python 有一個(gè)強(qiáng)大的第三方庫(kù)(網(wǎng)址:https://pypi.org/),這個(gè)第三方庫(kù)相當(dāng)于一個(gè)手機(jī)軟件市場(chǎng),允許我們隨意下載各式各樣的軟件包,并且開箱即用,這大大提高了 Python 語言的編程效率和實(shí)用性。
“如果說我比其他人看的更遠(yuǎn),那是因?yàn)槲艺驹诰奕说募绨蛏??!钡谌綆?kù)就相當(dāng)于巨人,它為程序開發(fā)者們提供了眾多現(xiàn)成的模塊。
接下來,我們要講的 Pygame 就是第三庫(kù)中非常有趣、實(shí)用的一個(gè)模塊。
顧名思義,Pygame 是一個(gè)專門用來開發(fā)游戲的 Python 模塊,主要為開發(fā)、設(shè)計(jì) 2D 電子游戲而生,它是一個(gè)免費(fèi)、開源的第三方軟件包,支持多種操作系統(tǒng),具有良好的跨平臺(tái)性(比如 Windows、Linux、Mac 等)。Pygame 是Pete Shinners 在 SDL(Simple DirectMedia Layer,一套開源的跨平臺(tái)多媒體開發(fā)庫(kù))基礎(chǔ)上開發(fā)而來,其目的是取代 PySDL。
圖1:Pygame
截止到 2021 年 10 月 28 日,Pygame 已經(jīng)誕生 21 周年。
SDL 是一套開放源代碼的跨平臺(tái)多媒體開發(fā)庫(kù),使用 C語言編寫,它提供了多種控制圖像、聲音、輸入/輸出的函數(shù),Pygame 可以看做是對(duì) SDL 的封裝,在 SDL 庫(kù)基礎(chǔ)上提供了各種 Python 的 API接口。目前 SDL 主要用于多媒體領(lǐng)域,比如開發(fā)游戲、模擬器、媒體播放器等。
圖2:SDL
通過 Pygame 我們能夠創(chuàng)建各種各樣的游戲和多媒體程序,但相比于開發(fā)大型 3D 游戲來說,它更擅長(zhǎng)與開發(fā) 2D 游戲,比如掃雷、紙牌游戲、貪吃蛇、超級(jí)馬里奧、飛機(jī)大戰(zhàn)等,如果是 3D 游戲,可以選擇一些功能更為全面的 Python 游戲開發(fā)庫(kù),比如 Panda3D(迪士尼開發(fā)的3D游戲引擎),PyOgre(Ogre 3D渲染引擎)等。
Python 作為一門解釋型語言并不適合開發(fā)大型的 3D 游戲,但 Python 通過對(duì)其他語言的接口封裝,使自身具備了開發(fā)大型 3D 游戲的能力,例如 Panda3D 的底層是用 C++ 語言編寫的。一些較為知名的 3D 游戲,比如魔獸世界、文明帝國(guó)4、戰(zhàn)地風(fēng)云2,這些游戲都是使用 Python 語言開發(fā)的,而國(guó)內(nèi)較為知名的“陰陽(yáng)師”手游,也是由 Python 語言開發(fā)而成。
“俗話說,術(shù)業(yè)有專攻”,每一種語言都有自己擅長(zhǎng)的一方面,不能因?yàn)槟撤N語言不適合某一領(lǐng)域,就認(rèn)為它是劣質(zhì)語言。
Pygame 官方網(wǎng)站(https://www.pygame.org/tags/all)提供許多豐富的游戲案例,它們?nèi)渴褂?Pygame 開發(fā),如下所示:
圖3:Pygame官方案例
通過官網(wǎng)可以很方便地找到并下載這些游戲?!?gt; 點(diǎn)擊前往。
這些項(xiàng)目案例能為您開發(fā)自己的游戲提供一些思路和幫助。
假如您從來沒有接觸過游戲開發(fā),那么學(xué)習(xí) Pygame 是一個(gè)不錯(cuò)的選擇,它非常適合初學(xué)者學(xué)習(xí),您可以把它當(dāng)做進(jìn)入游戲開發(fā)世界的“敲門磚”,通過對(duì) Pygame 的學(xué)習(xí),您將了解到更為廣闊的世界。
如果您想做專業(yè)的游戲開發(fā)工程師,建議學(xué)習(xí) C/C++、C# 語言,這些語言雖然語法略顯復(fù)雜,但是其性能相比于 Python 來說要好的多。就當(dāng)下而言,市面上最為流行的游戲開發(fā)平臺(tái)(即游戲引擎)分別是 Unity
和 UE4,這兩個(gè)平臺(tái)的側(cè)重點(diǎn)不同,前者適合于移動(dòng)端游戲的開發(fā)(支持 C# 語言),而后者更偏向于 PC 端游戲的開發(fā)(支持 C++ 語言),此處不做深入探討,如果您對(duì)它們感興趣的話,可以自行研究。
圖4:游戲開發(fā)引擎
UE4 和 Uinty 開發(fā)了許多優(yōu)秀的游戲,比如 UE4 開發(fā)了《絕地求生:刺激戰(zhàn)場(chǎng)》,而 Unity 開發(fā)了《使命召喚手游版》。
更多建議: