KAG源码导读

标签:吉里吉里

1. 前言

1.1 目的
本文旨在研究KAG系统,并帮助各位理解和扩展KAG,以完成诸如Fate/Stay Night之类的游戏。

1.2 前置知识:
下文涉及TJS和KS的语法知识,此处认为您已具备该知识。
否则,为避免阅读困难,请先阅读文档(部分有汉化)。
对于文中涉及的全局变量、函数和指令,文档中也有注解,此处一般不予解释。
若您有任何疑惑,可以回帖提出。
由于本人水平有限,部分内容可能有误,请自行判断或向我提出,谢谢!

1.3 KAG简介
先介绍下几个名词吧(参考自吉里吉里中文文档):
吉里吉里(Kirikiri,下文省略成krkr):解释执行TJS语言,直接与操作系统交互,封装底层操作。可用C/C++语言编写插件来得到各种扩展功能。
KAG:运行在吉里吉里上,由TJS编写而成。负责解析、处理ADV脚本(KAGScript,ks脚本),再调用吉里吉里内核的相应功能来实现。提供了KAGPlugin机制,以便扩展新功能。

因为俺不想深入C++层面看krkr内核了,所以就从TJS着手说KAG吧。
KAG的版本很多,目前krkr2对应的是KAG3。
KAGEX是在KAG3的基础上,扩充或新增了大量功能(参见KAGeXpress\docjpn\kagex下的文档,其中的world文件夹下是关于环境方面的文档)。
KAGeXpress则在KAG3的基础上,吸收了KAGEX的大部分新增的功能(貌似没看见环境方面的功能),再用宏指令封装了一些有用的指令。此外,还进行了部分汉化(包括吉里吉里内核(2.28Stable版本)、附属工具和文档)。
后两者都可看作KAG3的增强版,所以就懒得单独讲KAG3了。
由于KAGeXpress进行了内核汉化,适合简体中文环境下使用,因此我先介绍KAGeXpress3-beta2的源码,并简要说明与KAG3和KAGEX的不同处。再就部分KAGEX独有之处单独介绍。(记得有论坛做过KAGEX的繁体中文化,但台湾的网站我这访问不了,也没法证实了。)
此外,KAG3和KAG3EX由于网上找到的改版太多,为便于与KAGeXpress对照,此处仅对2.28版的官方源码进行说明(参阅https://sv.kikyou.info/trac/kirikiri/browser/kirikiri2/branches/2.28stable)。PS:由于行文期间(2008.9.16)发布了2.30稳定版,计划也单独研究下。
最后则讲述下Fate/Stay Night和Fate/Hollow Ataraxia的KAG源码。

1.4 附送吉里吉里的文档,方便查阅。
其中,汉化文档(未完全汉化)搜集自KCDDP ADV综合创作站,所有权归该论坛及其汉化者;日文文档由吉里吉里系统自带,所有权归W.Dee所有。

5条评论 你不来一发么↓ 顺序排列 倒序排列

    向下滚动可载入更多评论,或者点这里禁止自动加载

    想说点什么呢?