MNS小型脚本系统是一个半编译型脚本系统,其结构类似JVM结构。它在读取脚本文件时,先把脚本文件转换为类似汇编指令的格式,并调入内存,这样处理有效的提高脚本的速度的同时也可以大大减少无效文本对内存的占用。该脚本适用于J2SE、J2ME平台,并可很方便的扩展更多的支持平台。
历史:
自从2004年开始进入手游开发行业以来,J2ME已经变成我工作中用到最开发平台。而怎样提高开发效率,则是一直困绕我的问题。直到2004年,听到朋友说过一家公司用脚本可以开发游戏,并取得了很好的效果的消息后,在我脑中萌生了一个想法,我要开发一套自己的脚本引擎,因为这都是个人兴趣爱号,白天需要上班,是不能进程该项目的开发的,所认只有利用晚上和周六、七的时间慢步进行。经过了几次失败后,MNS初形圆满完成,到2005年10月,该脚本引擎已经基本完善。它有了自身的CPU指令集,内存管理模块及堆栈的处理模块。动态编译脚本也有效的提高了引擎的运行效率,再加上它可以无限扩展,并可以轻松的跨平台(只要对相应的平台做相应的虚拟机),目前已经可以实现不写一行J2ME代码,就可以完成J2ME项目开发,个人来说,非常满意。
为什么要用脚本,用了脚本为什么能提高开发效率:
就J2ME平台而言,脚本与本地程序的有效的配合,除了方便跨平台移植外,还能有效的提高项目开发效率。假设你正在开发的是一款RPG手机游戏,一个对话框或一个菜单的显示也许都会让你感觉头痛吧,并不是实现它的代码很复杂,而是他的整个过程,显示和操作都是必须分开处理的,他需要写很么多的CASE来处理操作状态,如上翻,下翻,确定取消等,整个过程又不能用一个循环来处理,非常不方便。而如果是脚本来控制流程,会是怎样的呢?例如:
say(“小花”,“你好啊”)
int ret = say(“商人”,“小花你好,你要买菜吗?”)
整个流程因此而变得清晰,而实现过程可通过写本地函数的方式来提供,两个互相接合,不但提高开发效率,更增加了代码流程的清晰度和可读性。
用全脚本开发的DEMO截图:
MNS脚本引擎的特点:
1.多进程
MNS虚拟机采用排队模拟并行方式来处理多进程并行,在有很好的并行效果的同时,不需要人为去管理数据块的同步,这点为开发提供了很大的方便,比如一个游戏3个精灵的走向不同,就可以采用三个进程来处理,在互不影响的情况下,各自走各自的流程。
2.中断
MNS虚拟机有自身中断的能力,比如一个本地库不能马上返回数据,这时你可以先中脚本中当前进程,待有返回值时push数值,再恢复中断。
3.体积小
MNS虚拟机只有26K,非常适合小型设备使用。