文档介绍:游戏语言 VmBasic 设计规划
Game-Basic 系统
<VmBeta & VmBasic>
设计规划与技术手册
Linwei 2002
电子科技大学通讯工程学院
20013080 班林伟
二○○二年九月
林伟第 1 页 2005-4-18
游戏语言 VmBasic 设计规划
总体说明
(一) 主要思想:
1、内容紧扣名称,内容围绕“VirtualMachine(虚拟机系统)”与“游戏”(针对
Windows/Unix 不同平台独立性)展开。
2、本软件不再以 Game 或 Basic 或 VirtualMachine 的名义进行宣传和版权说明等,用
“VmBasic”取而代之。这样才能把“VmBasic”的品牌创出来,体现出
3、软件由一年前完成的虚拟机系统 VmBeta 和游戏编程语言 VmBasic 完美的结合起来,
利用虚拟机的与平台无关性,容错性,高效性,安全性。使得 VmBasic 编译出来的
软件能基于虚拟机的技术,在不同的平台上面发挥出最大的功效。
4、实现类似消息机制的灵活扩展接口,使得VmBasic 可以与你的软件完美的结合起来,
成为一套灵活的脚本引擎,使你的软件具有运行脚本的能力。同时对于语言本身,
实现了预连接技术,也可以使用户方便的为语言增加功能。
5、全部核心代码用标准 C++写成,分别在 Windows/Unix 下数款 C++编译器上面调试通
过,充分保证了软件的与平台无关性。从 2002 年 9 月开始,对外提供 VmBeta 与
VmBasic 引擎,如有需要者请 mail 一份到 lwwind@
(二) 制作时间:
2001 年 11 月-2002 年 1 月制作虚拟机系统:VmBeta
2002 年 4 月-2002 年 8 月制作游戏编程语言:VmBasic
(三) 系统发展概况:
1、起初,我由于平时编程常常居于不同的平台,而且在所设计的几个软件中都迫切的
需要与平台无关的脚本机制的支持来提高软件的灵活性与可维护性。著名的
Autocad/ Animator/ 3D Max 以及金蝶财务软件中都提供脚本功能来让用户更灵活
地操作软件,但是他们的脚本机制采用的都是相对独立封闭的技术,要让它们扩充
一项脚本功能则需要每个软件都改写大量代码,而且效率安全方面也不健全。
2、初期,我开始意识到要解决这些问题,使得今后的系统中采用统一的脚本引擎并且
统一维护,灵活扩展只有采用 VirtualMachine(虚拟机)技术,于是在去年年底,我
花了大量的时间研制成功了一套新的虚拟机系统 VmBeta,它参照了一款小型栈式
CPU,制定了自身一系列 32 位寄存器和指令集合实现了与平台无关性。历经三个月
VmBeta 系统的研制成功对我后来的开发工作起到了制关重要的作用。
3、中期,在 VmBeta 的设计成果之上,软件的脚本支持问题得到了初步的解决,但是
脚本的编写都是基于 VmBeta 的汇编指令上面来完成的,编程效率极其低下。我意
识到要使它真正起作用的话,必须为 VmBeta 编写一款高级语言编译器。就象 Java
和 Javac 一般,这是项艰巨的工程,凭着以前我写过几个脚本引擎,研究了大量的
编译方面知识终于写出了一款编译器 VmBasic。本来编译器想选择 Pascal 为蓝本,
可是我觉得 Basic 更能让人接受,仅仅写成传统的 Basic 很不够,于是我陆续为其
林伟第 2 页 2005-4-18
游戏语言 VmBasic 设计规划
增加了许多灵活的功能,整个虚拟机-脚本引擎完成。
4、现在,处于我自己的兴趣爱好,我喜欢编写游戏,而且是从 DOS 下直接操作 VGA 显
存作图,操作声卡发声一直到现在 Windows 下利用 DirectX 和 OpenGL 编写游戏,
我深感游戏设计之困难程度非凡,许多朋友渴望自己制作游戏却被一道道高高的门
槛隔与局外,于是我利用 VmBeta 的扩充性将 VmBasic 扩充了一系列多媒体操作指
令以及游戏常用指令,使得刚入门的朋友们只需掌握简单的 Basic 语句就可以编写
一定规模的游戏。
5、今后,由于现在 VmBeta 是一款高效的虚拟机而 VmBasic 且用途是一个脚本引擎。
所以将继续从简单性和可扩充性着手。一来基于 VmBeta 的框架做扩充可以变为某
种 CPU 的模拟器备将来研究开