我正在一個小的網絡遊戲配置,其中有一個需要存儲對多(100+)不同種類的遊戲對象的信息的合理費用。代碼與遊戲對象庫
我想,以決定是否有通過代碼生成或存儲在一些配置文件中這一數據。
數據生成方法會是這樣的(在Java中上下的僞代碼):
(within a set of functions executed once at program startup)
....
// create grass terrain
grass=new GameObject();
grass.inheritProperties(generic_terrain);
grass.set(NAME,grass);
grass.set(MOVEABLE,true);
grass.set(MOVECOST,10);
grass.set(IMAGE_INDEX,1);
....
儘管配置文件的方法將可能只是使用XML類型的格式如
(within terrain.xml file)
....
<terrain name="grass">
<inherit class="generic_terrain"/>
<property key="NAME" value="grass"/>
<property key="MOVABLE" value="true"/>
<property key="MOVECOST" value="10"/>
<property key="IMAGE_INDEX" value="1"/>
</terrain>
....
的一些要點:
- 此信息是靜態的每個遊戲的遊戲運行時 (即不執行過程中不能改變 )
- 屬性名稱(姓名,MOVECOST等。 )是一個相對較小的列表,但額外的節點可能隨着時間的推移
- 它是安全 的假設,它只會得到 由開發改變被添加退役隊(即 在構建 過程之外不需要配置 )。
- 這將需要發展 期間相當經常扭捏 遊戲平衡的原因(如決策單元更少/更強大)
- 有以上基層需求的例子一定量的屬性的「繼承」,即擁有由generic_terrain定義的所有標準屬性以及一些新的添加/更改。
哪種方法將是最適合這種情況呢?更重要的是爲什麼?
如果你正在尋找一個有效的配置文件格式,我建議考慮[YAML(http://www.yaml.org/):) – 2010-06-26 10:00:12