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