2013-8-6 21:40 /
真﹒ONScripter吐槽篇。
我从ONScripter教程的第一篇就说了这货是单线程的。但是为什么我还是在发这货的教程呢。
按理说krkr2无论是画面还是脚本系统都比ONScripter先进。
下面的吐槽中我将对比ONScripter和krkr2引擎。
ONS有这么多的用户是这样的。
脚本简单。方便按自己的习惯自定义脚本系统。
语法简单,一看就懂。
最后就是NS引擎历史悠久(不带这种的吧)
所以基于这些理由来说,ONScripter的用户量还是很庞大的。
众所周知,ONS短小精悍。还是基于sdl写的。
然后sdl天生就有可怕的跨平台能力,基于这点优势,ONScripter可以说是没有不支持的平台,这对于游戏移植(开发)者可谓是福音了。
相对于ONS引擎来说,krkr2就过于庞大了。
虽然krkr2优于ONS引擎。但是krkr2从被开发的那天开始,就和win32 API绑在一起,虽然现在那位作者还在努力地实现跨平台,但是很困难,因为是重构。一切都要从头开始。
Krkr2向安卓移植的工程一直在进行中,但是还是没有完成的。我看上去基本上完成了60%的样子。但是全java啊啊啊(跪了)。至此,我已经不想管理这个krkr2。
还有一个问题。Krkr2是双脚本的,这不重要,要命的是这两个脚本不是平行的关系,而是嵌套的关系=。=  可能那个控制脚本很多人使用的时候是用lua代替了吧。
其实krkr2内存管理不是很好,一个800*600的GAL可以占用300多M甚至400多M的内存。貌似krkr2不会自动释放的。比起初始化只有20多M,平均45M内存使用量的ONS,他们的速度是没法比的。

但ONS的缺点也很明显。一是单线程,二是没什么效果、语法乱,三是效率低下,最后是不能直接使用Unicode集合编码的脚本文件。

无论是解决上面哪个问题,ONS的大半江山都得重写orz。
而且本身ONS的脚本就存在很大的bug隐患,而且没有什么扩展能力。
估计作者是想到这个问题了,ONS最后才支持了lua,来进行复杂的运算。但是ONS配上lua以后也就是能执行一些控制台程序类型的代码。要说强大还是要归功于lua。而ONS的效果极少有变化。
至于Unicode字符集支持的优点,我想我可以不用谈,到这里看我教程的人应该都知道。

关于效率。SDL 1.4已死,我只能这样说。但是现在SDL 2.0已经发布,我试用了一下,效率和性能大幅度提升,前景还是挺不错的。
ONS还有一些书写方式比较蛋疼。特别是图片那里的指针。(自从我看了一个牛人写的代替物以后,我就跪了。)可以说是混乱了。(曾经我基于这些可能出现的bug来修改了一下ONS脚本,居然单独把alpha通道给提取出来了=。=)

我的吐槽和建议就这么多,可能有很多不成熟的地方,望指出。
Tags: ONScripter