用数据驱动思想来设计游戏-读《游戏编程精粹1》
????游戲由兩部分組成,邏輯和數據。這是一種對游戲的有效劃分。邏輯部分定義游戲引擎的核心原則和算法,數據部分則提供其內容 和行為的具體細節。在最初的游戲開發的過程中,大家總是喜歡將邏輯和數據都寫入代碼中,這樣的代碼可移植性很差,重用性也差,還容易出現數據的不統一。如果要進行些許修改,甚至有可能牽一發而動全身。
????數據驅動設計可以比喻成是一種面向對象的游戲設計,它將游戲數據存儲在文件中,而不再是嵌入在代碼里面。游戲過程中,通過動態的載入并讀取和寫入數據文件來對數據進行操作。在游戲開發過程中使用數據驅動思想需要注意以下幾點。
? ? ? 這是數據驅動思想的基礎。游戲數據存儲在文件中,必須要有一個文件解析系統來對數據文件進行解析讀取等操作。比如我們玩一個單機游戲時經常以通過修改存檔的方式來達到作弊的目的。
? ? ? 硬編碼是指將可變變量用一個固定值來代替的方法。這種方法可以暫時的解決游戲的某些問題,并且暫時看不出有什么缺點,但當代碼編寫到一定程序之后,對于更深程度的開發與修改將成一個噩夢。而不使用硬編碼的好處很明顯,比如現在多數游戲都有的自定義游戲按鍵。硬編碼的問題在程序員中是一個很嚴重的問題,經驗不豐富的程序員經常在這個問題上犯錯,而經驗豐富的程序也常常在趕進度的時候妥協。
? ? ? 腳本 是一種在代碼外定義行為的方法。腳本對于定義的步驟順序或需要觸發的游戲事件非常有用。最典型的應用是魔獸地圖的制作,魔獸3便用是JASS腳本語言對游戲進行控制。但腳本語言并非是萬能的,雖然很多功能都寫入腳本中可以極大的提高游戲的靈活性,但腳本語言通常是一種效率比較低下的語言,而且越復雜的腳本將會消耗程序員越多的時間來編寫腳本分析器、編譯器或調試器。而這些功能其實可以用程序代碼得到更好的實現。
? ? ?復制代碼讓開發變的簡單而無聊之余,讓整個系統也變的更加的臃腫。面向對象中的繼承思想也可以使用的游戲數據的處理中,如下圖:
?
? ? ? 當游戲系統越來越大,游戲數據量將變的很宏大,這個時間單純的用文本文件進行編輯操作將變的不在現實。此時,開發一款游戲數據的編輯器將是一個很不錯的選擇。比如:魔獸爭霸3的地圖編輯器就是一款很好的游戲數據生成工具。
?
????現在稍稍比較專業點的游戲都是采用數據驅動的思想來進行開發,但程度各異。而如何最大限制度的利用數據驅動的思想開發游戲,使游戲更具有自定義特性,提高玩家的游戲參與感,是未來游戲的主流。
轉載于:https://www.cnblogs.com/tadi314/archive/2010/03/11/1683795.html
總結
以上是生活随笔為你收集整理的用数据驱动思想来设计游戏-读《游戏编程精粹1》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server 2000+ADO.
- 下一篇: ACE前摄器Proactor模式