完整的遊戲開發工具?
(btw, 真的是虛弱到一種程度了,本來想好好寫的,)
(現在只想打混過去... 也才忽然發現前幾個月有一篇寫一半的...)
以 cubeat 的經驗和一些希望的改善與強化的話:
library dependency:
* 3d engine (irrlicht, zlib license)
* sound library (irrklang, free for non-commercial)
* scripting (ruby, ruby license)
* scripting c++ binding (rice/swig, bsd/bsd license)
* database (sqlite, PUBLIC DOMAIN!!!)
* orm (data-mapper, mit license)
* beyond the c++ standard library (boost, boost license)
development dependency:
* standard compliant c++ compiler (g++, gnu public license)
* building automation (cmake, bsd license)
* task automation (rake, mit license)
* source code management (git, gnu public license)
* issue tracker (redmine, gnu public license)
* code generator (erubis, mit license)
其中主要 cubeat 沒用到的是 database 和 orm.
當然,cubeat 本身應該是沒有必要引入這兩樣東西。
只是我總覺得,如果遊戲本身複雜度不斷成長的話,
有一個 database 能用會少掉很多麻煩。而 orm 則是
理所當然一定要用的,不然用 sql 會死人的。
理想上就是只有核心是用 c++ 寫成,其餘的操作,
例如遊戲流程、操作流程等等,這些東西需要修改的可能性極高,
用 ruby 撰寫真是再方便也不過了。
如此一來,引入 data mapper, 則可以使得 ruby object
具有 persistent 的特性。當然,用 marshal 應該也不是不行,
不過用 data mapper 比較 once and for all.
比方說,可以對現在的遊戲狀況做 snapshot,
例如 RTS 的戰場儲存。比 yaml 或 zzml 更方便的
config 能力,preload RPG 的 weapon, unit,
skill, 以 spellbook 來說,spell 資訊,character,
item, 這些全部能以方便的方式儲存,也能夠有方便的方式編輯。
say, rails scaffold? 用 browser 當 map editor,
unit editor, weapon editor, etc...
由於使用了 database 當底層,也可以進行一些 search,
sorting 等動作。當然這可能比較沒必要啦...
一般來說,除非 MMOG, 不然應該不會有超大量的資料需要搜尋。
所以我也一直在想,這樣是否 overkill 了?
不過還是很想試試看可能性,畢竟 data mapper 看起來滿好用的。
希望 1.0 時真的能取代掉 active record + migration combo...
剛剛也有看到有人在 ruby-core 上抱怨 rails 擴充 test/unit 的
手法太過暴力 :o 既然這麼多人在開發,希望以後 rails 程式可以漂亮些。
不然我還真的滿想換一個 framework, 只是大部份都不夠成熟罷了。


