大概是一年前,我看到了一个叫“无双”的AVG引擎,改引擎基于Python语言。我没玩过AVG,但是无双给我的印象还是不错。我不喜欢无双臃肿的身材,天啊!附带了好多Python库。我想,应该没有全都用上吧?于是我就没有再理会他。
后来我决定尝试RGE(Ruby Game Engine),用了用,感觉不错,于是就打算写点什么。最后想,不如我来实现一个Ruby版的“无双”引擎,不,它应该比Python的无双还要具有Ruby的特点,也要继承RM的传统:可在对话框的内容中嵌入控制字符,让程序读取到,做出反应。
于是就打算开工。叫什么名字呢?最早的名字我给他取名为RAGE,也就是RGE AVG Game Engine(按照GNU递归式的写法,也可以写作RAGE AVG Game Engine)。不过我总认为RAGE是个丑陋的名字,我不喜欢它的发音(http://dict.baidu.com/s?wd=rage),而且他的意思过于雄性化,没办法体现引擎的灵活,于是我决定使用Phantom。
Phantom一词来自于Andrew Lloyd Webbe(
安德鲁·罗伊·韦伯,《猫》的作者)的著名舞台剧《歌剧魅影(The Phantom of The Opera)》。我觉得Phantom这个词可以很好的表现出这个引擎的特性,所以就决定采用了它,并把Phantom和他的简写Ph作为了这个AVG引擎的命名空间。
现在已经完成了大多数的功能(前期的着重工作在对话框上),现在我们已经有不下20个可使用的控制符。我们可以在对话中随意更改字体、字号、颜色、粗体、斜体等,我们的打字效果可以随时变更打字速度,也可以有等待用户反映后才进行打字。
我们现在可以由对话框显示出左、中、右三个方面的立绘。这是为了方便控制。如果你有一些基础知识,Phantom提供了绝对的自由,你可以随意添加体会。
支持表情(Face)和半身像(Half),因为我压根就是把它当一回事?
支持多个对话框,技术上这不是问题,条件是你必须额外实例化一个Ph::Message实例。
由Ph::Resource管理素材,这个就像RPGCache那样。
当然还有很多特性,不过现在还不能完全透露给大家。
Phantom最后将作为一个RGE示范工程或是样板,在FSL协议(http://bbs.66rpg.com/upload_program/goods/fsl.htm)下发布,我相信在大家的努力下,这个引擎最后一定会健壮的。
说到发布,目前整个引擎(核心部分,不算上涉及到版权的素材)还不到1MB,真是小巧(^_^),而且代码也才7KB。我真欣慰(代码虽短,但是功能齐全)。我打算拆开几个要好的人或同学的姓作为发布版本,当然最后我也要露面(^_^),所以第一版就是古月啦(某某人不要骄傲)~~
那么,放出一点现在的状况吧!
最后给大家小小展示一下代码,如果对话太长久简易写成Here文档。
s_msg =<<_HERE_
\\sz[22]\\f[DeathKing]\\nm[DK]嗯哈,这是 \\fm[Georgia]\\sz[20]\\icPhantom AVG Engine\\ic\\sz[22]\\fm[微软雅黑] 哦!
怎么样,它可爱么?
\\c[3]虽然她现在还是有很多的瑕疵,
但是我我相信她最后一定能华丽的绽放!\\c[2]
_HERE_
msg.set_text(s_msg)