文件结构说明
主结构
文件结构是项目最核心的概念,快速了解项目的文件构成有利于判断应该如何处理自己的需求,以下是主结构说明:
.
├── ezgal
│ └── ...
├── LICENSE
├── make
│ └── ...
├── test
│ └── ...
└── docs
└── ...ezgal项目
ezgal文件夹存放godot的项目文件,我们可以将文件夹内容直接导入godot中作为新项目进行开发,我们将在框架结构中详细介绍内部结构
LICENSE
LICENSE为开源协议说明,项目遵循MIT开源协议,支持商业使用、修改、分发、使用
make构建工具
make文件夹存放基于csharp的make构建工具,是ezlang的主要构成部分,用于控制ezgal项目构建、编辑模式,可以在工具集进一步了解使用方式.
docs目录
docs文件夹用于存放各语言的项目说明目录.
框架结构
框架结构指ezgal文件夹中用于导入引擎的文件结构, 文件结构如下:
.
├── script
│ ├── .init.json
│ ├── start.txt
│ └── ...
├── dictionary
│ └── ...
├── image
│ └── background
│ │ └── ...
│ ├── start_texture.png/start_texture.jpg
│ ├── end_texture.png/end_texture.jpg
│ └── ...
├── sounds
│ └── ...
├── csharp
│ └── ...
├── gdscript
│ └── ...
├── font
│ └── ...
├── scene
│ └── ...
├── shader
│ └── ...
├── theme
│ ├── game.tres
│ ├── theme.tres
│ └── UI.tres
├── project.godot
└── ...如果选择低代码开发,我们无需下载源码,只需要将下载程序位置作为基础目录,根据开发需求在相应位置再新建目录,文件结构将更简单:
.
├── script
│ ├── .init.json
│ ├── start.txt
│ └── ...
├── dictionary
│ └── ...
├── image
│ └── background
│ │ └── ...
│ ├── start_texture.png/start_texture.jpg
│ ├── end_texture.png/end_texture.jpg
│ └── ...
├── sounds
│ └── ...
└── ezgal.exescript
script文件夹存储系统配置脚本与剧本演出脚本
init(todo: 未完全实现)
.init.json文件用于定义系统配置脚本,包含start用于设置开始场景(即scene/main.tscn),end用于设置结束场景(即scene/end.tscn), 详细定义规则可参考.init.json文件
start
start.txt文件为默认定义的剧本入口位置,进入游戏后(即进入./scene/game.tscn场景)默认先加载start.txt剧本演出脚本,具体编写语法可参考语法设计,通过设置系统配置脚本可以修改入口剧本名称.
更多剧本
我们可以在script文件夹中添加更多剧本,在剧情演绎过程中可以通过演出跳转到不同的剧本.
dictionary
dictionary文件夹用于存放专业名词,玩家在剧本进行到对应的专业名词时或在界面、设置中可以导入./scene/dictionary.tscn场景查询专业名词的说明,dictionary文件夹中一个文件对应一个专业名词, 以文字信息为例: 文件命名规则为文字信息.txt,文件支持bbcode格式,可以在dictionary.tscn场景中继续跳转:
[i]文字信息[/i]
文字信息统一采用富文本进行编辑, 支持[color=blue][url=bbcode编码]bbcode编码[/url][/color], 可以通过设置url指向dictionary文件(指向链接不需要包含.txt的后缀)达成查询字典信息.开始&结束背景
我们默认定义start_texture.png/start_texture.jpg为开始界面的图片,end_texture.png/end_texture.jpg为结束界面的图片,如果找不到图片将显示清屏颜色.
游戏背景
为避免干扰,我们限制游戏中调用的背景只允许从image/background文件夹中进行调用,且在演出中需要明确图片的后缀名(比如png、jpg格式).
立绘
我们默认不同角色存在多个角色立绘,每个角色应该在image文件夹内定义新的文件夹,存储对应的立绘,调用方式参考演出参数
sounds
用于存放音乐文件.
csharp
用于存放C#代码.
gdscript
用于存放gdscript代码.
font
用于存放字体,ezgal默认采用昭源环方(Chiron GoRound TC)字体. 字体以SIL Open Font License 1.1(SIL 开源字型授权版本1.1,简称SIL OFL 或OFL)授权协议发布:
✔ 这款字体无论是个人还是企业都可以自由免费商用,无需知会或者标明原作者。
✔ 这款字体可以自由传播、分享,或者将字体安装于系统、软件或APP中也是允许的,可以与任何软件捆绑再分发以及/或一并销售。
✔ 这款字体可以自由修改、改造,但修改或改造后的字体也必须同样以SIL Open Font License 1.1授权公开。
✘ 这款字体禁止用于违法行为,如因使用这款字体产生纠纷或法律诉讼,作者不承担任何责任。
✘ 根据SIL Open Font License 1.1的规定,禁止单独出售字体文件(OTF/TTF文件)的行为。
关于授权协议的内容、免责事项等具体细节,请查看详细的License授权文件的内容。
scene
用于存储godot场景.
shader
用于存储godot的着色器资源.
theme
系统默认存储game.tres、UI.tres主题.
game
game.tres主题仅用于控制./scene/game.tscn场景中的游戏UI信息
UI
UI.tres主题用于控制游戏外(如选项、设置等)的基础信息.
project.godot
project.godot文件存储用于导入时识别godot项目的基础信息.