- 注册时间
- 2006-6-19
- 最后登录
- 2010-1-23
⑥精研
- 积分
- 2223
|
发表于 2007-9-26 20:42:15
|
显示全部楼层
关于脚本的问题...这问题太复杂,我也没资格多说.不过...
1. 脚本可以是可编译/可解释共存的.可编译的目标语言也未必一定是中间语言,可以是机器码.
2. "两套API"真要用就会体会到痛苦了.对模式那么执着的话,这里恐怕得adapter了.
3. 易用和通用是永远的矛盾.否则有那么多现成的高级语言,我们不需要为自己的应用设计专门的DSL.或许不要一开始就对"通用"太在意的好,除非那是一个确定的目标.
4. lw说的重构的方式是敏捷的思路,可以考虑
5. 得闪回去做作业了...下次再说.
引用第10楼shawind于2007-09-25 13:40发表的 :
而不是像krkr,rmxp那样的,可以用脚本来写库,这个库再和native的底层加在一起,才构成一个高级的游戏引擎。
我一直都不认为一个易用的游戏引擎应该提供那么高级的脚本语言,而是倾向于在一个共同的接口下,为每一个特定的游戏类型或是单个游戏,提供一个特有的简单直观的命令式脚本。不知道这样可行否? 总觉得LZ是把不同层次的脚本混在一起说了.同样以KrKr为例,它正是为了通用而设计了底层运行时,在这个底层之上使用一种原生于这个底层的DSL(这里指TJS)去定义了"为Novel Game游戏类型,提供一个特有的简单直观的命令式脚本",也就是KAG Scenario (Script).
没错,现在KAG的解释同样是在底层做的,但在某个版本之前,KAG的解析运行就是在TJS上做的,修改到现在的架构是出于性能考虑,而这正是在一个系统已经能顺利运行时考虑的重构问题.原则上说,可以为KrKr编写插件(不是用TJS或者KAG写的那种"插件")来支持别的脚本语言,脚本层次的高低都不重要.
之前在日本的时候,买了本书,叫「ゲームエンジンプログラミング」.LZ想要的引擎,或许就跟那种实现比较接近吧.有兴趣的话可以参考下.
www.amazon.co.jp/ゲームエン ... LOPER/dp/4797331976
而LZ想要的,与Game Scripting Mastery所描述的引擎大概相当不同. |
|