《Lua遊戲開發實踐指南》讀後感

來源:互聯網
上載者:User

      
書籍地址:http://book.douban.com/subject/20392269/

        一句話點評該書:想用Lua作遊戲指令碼開發的同學值得一讀!

(一)本書特點

市面專門講Lua的中文書籍很少,竊以為,一方面可能覺得Lua比較簡單,可深入講的東西並不多;另一方面,說明Lua的開發人員數量,(尤其是國內)還是一個比較小眾的群體,出版商們也無利可圖。回到這本書,它不同於一般純粹講Lua語言本身的書籍,如:《Lua程式設計》等,而是專註於講解Lua在遊戲領域的應用,從書中列出的幾個例子來看,可以看得出作者在遊戲行業是有比較豐富的經驗的。下面摘取了書中的一些要點,與諸君分享之:)


(二)要點分享

(1)Lua在遊戲開發的應用情境

1)編輯遊戲的使用者介面

     我的理解:GUI圖形繪製等基礎功能還是要由宿主語言來完成,如:C/C++,Lua可以負責GUI的排版、布局等邏輯處理;


2)定義、儲存和管理基礎遊戲資料

     我的理解:遊戲對象各配置資料如果比較簡單的,均可以用Lua代碼直接描述,用以代替文字檔,並省卻解析的代價。複雜一點的,可以結合excel(儲存為cvs檔案),並利用Lua強大的文本解析功能來完成。


3)管理即時遊戲事件

     我的理解:玩家與遊戲的互動都是通過滑鼠、鍵盤等外設來完成,而在遊戲設計中,普遍的做法是用事件機制來驅動完成。在Lua中可以通過定義LuaGrue函數與C/C++等宿主語言進行互動調用來形成一整套完整的事件系統。具體實現時,宿主語言實現捕獲滑鼠、鍵盤各類事件的底層介面,而事件觸發後具體做什麼,以及事件之間可能的依賴關係等邏輯,則由Lua來完成;


4)建立和維護開發人員友好的遊戲儲存和載入系統

     我的理解:在單機遊戲中的遊戲存檔等資料,也可以很方便的用Lua來直接描述;


5)編寫遊戲的人工智慧系統

     我的理解:作者說的在AI中應用Lua,我覺得應用情境應該是在一些比較小的單機遊戲中,而在大型多人線上的網路遊戲中,恐怕還是需要效能更高的C/C++來實現。當然,作者也講到,一個靈活的做法是,先用Lua來快速實現原型,遇到效能瓶頸了,再用C/C++來替換。


作者在講到Lua在遊戲Team Dev中的應用分工時說,“程式員負責將Lua整合到遊戲開發環境中,遊戲設計師(策劃)是指令碼語言的主要使用者,因為他們和上層的遊戲設計和資料直接打交道,美術師也會經常使用Lua,進行諸如介面布局、設計和3D情境中各種模型的擺放之類的工作。”看到這裡時,不禁感歎,我們與國外遊戲開發同行的水平差距:人家認為遊戲策劃和美術人員寫指令碼是理所當然的事情,而咱們這裡,卻認為這些不都是程式員該乾的活嗎?開發理念的高低直接導致了開發成果的巨大差異!


(三)本書的不足

(1)書中講的Lua版本是5.0,而現在最新的已是5.2.1了,與C語言通訊的API也有了一些變化;

(2)沒有講Lua的一個重要特性:協程,協程在非同步編程中應用廣泛,不但能簡化傳統非同步編程的代碼編寫,而且還能有效提高效能;




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.