吉里吉里、KAG与THE NVL Maker


吉里吉里

吉里吉里,实际上指的是krkr.exe这个文件。
当前的最新版本是2.32,可以通过右键EXE查看具体信息。
作为一个通用的引擎,吉里吉里可以用于制作各种类型的2D游戏,在加入扩展插件的情况下,甚至可以显示3D画面。
吉里吉里会读取TJS语言写成的脚本(.tjs)并执行。


TJS

TJS是一门程序语言,或者你可以将它看成是一套语法规则。
按照这套固定的语法规则,你可以指挥吉里吉里去完成各种各样的任务。
TJS基本是由类和函数构成的,脚本看起来大概是这个样子:

function changeScreenMode(key, shift)
{
  if (key != VK_RETURN || !(shift & ssAlt)) return false;
  if (global.kag.fullScreen) global.kag.onWindowedMenuItemClick(global.kag);
  else global.kag.onFullScreenMenuItemClick(global.kag);
  return true;
}
// 注册函数
kag.keyDownHook.add(changeScreenMode);

不要恐慌╮(╯_╰)╭,大部分时候你连看都不会看到它们。


KAG

虽然可以直接使用TJS语言来写游戏,但是如果只是想写文字冒险游戏的话,还是过于麻烦了。
用于读取.ks文件的KAG系统可以说是专门为文字冒险游戏而准备的。
使用KAG系统时,你就可以用简单的指令(TAG)来描述你的游戏逻辑。
即使对程序语言完全没有概念的人,学习这些指令也并不太困难。
不过KAG可以做到的事,相比TJS就有限得多,主要是集中在文字冒险游戏的“剧情演出”部分。
如果要完成一个相对完整的文字冒险游戏,仅使用KAG系统提供的指令还是不够,很多地方需要用到TJS来辅助。
KAG提供的指令非常容易分辩,是写在.ks脚本里,由[]括起来或者@开头的一行内容。
格式为:

[指令名 属性1=值1 属性2=值2 属性3=值3]
或者:
@指令名 属性1=值1 属性2=值2 属性3=值3

比起TJS来说确实更容易理解了。
当然假如你看到满眼的英文指令依然头晕,也没有关系……
THE NVL Maker的脚本编辑器会把这些东西翻译成你能看懂的语言的。


THE NVL Maker

大部分游戏,不管类型如何,都至少包含标题界面、对话界面、存储界面等等基础系统。
虽然游戏的美术风格、排版、分辨率等等可以有天翻地覆的变化,但是系统的基础功能确实是大同小异的。
实际上,完成过两个以上游戏的吉里吉里/KAG使用者,多少都会意识到这一点。
制作新游戏的系统时,开始的大部分时间是在复制粘贴和修改坐标中度过。
这个阶段大概要持续一两星期到半个月,一没有学习的乐趣,二没有任何效率。
(作者本人在这之前大概写过四到五个完整的文字冒险游戏系统,越到后面感觉越无聊。)
那么,为什么不做一套“万用”的系统框架,让制作者可以很快跳过这个无聊的开始,直接进入“创作”阶段?
THE NVL Maker就是基于这样的想法完成的——
一套“大部分文字冒险游戏必定会用到的系统框架”,加上一套可视化界面。
当然,所谓“必定会用到”只是作者个人的判断而已。如果有任何你觉得同样非常重要的元素,请随意添加修改不要客气~(*´∇`*)