天天看點

《Lua遊戲開發實踐指南》一1.3為什麼使用Lua

對于遊戲開發而言,lua是較好的選擇,其設計的核心目标是可擴充性,是以在最初設計時就考慮到要能夠內建在大型應用中。因為有了這樣的設計目标,是以非常容易在應用程式中加入lua腳本。lua的易內建的特性還使得lua可以很友善地與父程式通信。遊戲程式員都希望腳本語言能夠簡單地實作遊戲設計,在這方面,lua也能夠勝任。

lua免費、小巧、快速且易移植。所有的遊戲開發者和遊戲公司都喜歡“免費”的工具。通常講,一分錢一分貨,但是對于lua來說,它完全超出你的預期。lua采用了非常靈活的釋出協定,它有極少的源代碼,運作軌迹十分緊湊,在編譯時間和運作時記憶體占用上都有很好的性能表現。

要說lua最讓人驚喜的地方,應該是它的執行速度。對于任何腳本語言的技術方案,遊戲開發者的第一反應就是:“腳本語言太慢了,幀率一定不會很理想。”但這個說法對lua是不成立的,事實上,我們還沒有看到任何一個項目因為lua的使用而造成瓶頸。最後,遊戲開發界正在迎接一次新的硬體周期,我們将要學習如何使用一組新的平台。因為lua的易移植性,當我們的技術儲備轉移到新的平台時,至少有一部分是不會過時的。

lua是非常容易學習的語言。不需要了解很進階的程式設計概念(如對象和繼承),大部分具有計算機學習背景的人都可以在短期内掌握它的基礎知識并且馬上投入正式的工作。如果團隊成員熟悉其他的語言,那麼lua可以輕松上手,很适合那些非程式員背景的團隊成員,它們也能對遊戲功能和美術部分進行修改或建立。

在我們公司,最近剛剛釋出了第13款使用lua開發的遊戲。我們的團隊雖然很小,但是也有程式員、美術師和設計師的标準構成。當我們開始一個新的項目時,首先要确定項目的技術需求(什麼是我們還沒有而需要去實作的?)和設計需要的功能。程式員可以負責技術設計部分,專注于那些他們擅長的技術難題。同時,設計師和美術師可以馬上開始着手界面流程和核心遊戲功能的設計工作。通常,美術師(包括2d和3d)還會花一部分時間确定遊戲的視覺需求。與此同時,3位熟悉lua的設計師開始建構遊戲基礎、遊戲資料及核心遊戲系統。他們甚至都不需要等着程式員,如果需要什麼功能一般就直接先用lua代替。這樣我們就可以進行非常高效率的遊戲開發,因為團隊的每個人都能從一開始就“熱火朝天”幹起來。

有一個項目要特别提起,在我們為2004年美國總統大選開發選舉遊戲模拟器的時候,我們已經可以用lua開發出完整的遊戲原型來驗證ai和遊戲流程,然後再回過頭來重新用c++實作那些核心的部分。快速的原型開發可以讓一個開發者就能夠完成設計和開發環節最有價值的部分,這也是業界少有的高效率。

繼續閱讀