程序
编写 NewGRF 有固定的流程。
NewGRF,即 New graphics resource files,是用于 Transport Tycoon、Transport Tycoon Deluxe、OpenTTD 等游戏的图像文件;当中可以包含自定义代码,因此也可以用来拓展游戏内容。所有的 GRF 都不能跳脱出游戏所划定的沙盒,因此相较于其他游戏的模组 GRF 的自由度较少;你可以将 NewGRF 理解为游戏模组。
OpenTTD NewGRF 的一个最大特点就是兼容性好。哪怕是使用过时技术、过时标准编写的 GRF,一般而言,只要文件没有损坏,OpenTTD 都可以正确读取 GRF 内容并加载其内容。
如果想要编写程序,最好自己有一些编程基础。
编写 NewGRF 最好准备一台电脑。
我们推荐使用 NML 来编写 NewGRF。当然,你也可以使用 grf-py 和 yagl。强烈不建议使用 NFO 编写 GRF。
如果你不知道如何使用终端,我建议你先阅读“使用终端”。
重要
相较于 NFO,NML 的语法更简单高级。如果使用 grf-py 或者 yagl 开发则必须使用 Actions(NFO)
flowchart LR
subgraph 间接操纵
NML
end
NML -->|聚合|Action
Action -->|构成|NewGRF
subgraph 直接操纵
grf-py
NFO
yagl
M4NFO
GCC[GCC 宏] -->|聚合|NFO
GCC[GCC 宏] -->|聚合|yagl
end
grf-py -->|"聚合、呈现"|Action
yagl -->|呈现|Action
NFO -->|呈现|Action
M4NFO -->|聚合|NFO
style Action fill:#a4cdfc, Stroke:#1b4c91, stroke-width: 2px
下载与安装 NML
可以使用多种方式来安装 nmlc。推荐使用 pip 或者 scoop 安装 nml。
pip
pip3 install nml
scoop(仅 Windows,支持自动更新)
请注意 Scoop 在部分地区可能访问较慢
scoop bucket add openttd-bucket https://github.com/wensimehrp/openttd-bucket scoop install openttd-bucket/nml
手动安装(以 Windows 为例)
在 GitHub 或
openttd.org下载 NML; 下载完成后将 nml 放置到你指定的文件夹(如C:\tools\nml); 打开控制面板或按 Win+Q 搜索 env,选择“编辑系统的环境变量”或“编辑账户的环境变量”并编辑 PATH 环境变量;注意不要删除任何环境变量! 将放置的路径添加到 PATH。如果选择手动安装,你也可以选择不将
nmlc的路径加入 PATH 中并在编译时手动指定编译器路径。Git clone(不安装,便携版)
git clone https://github.com/OpenTTD/nml python3 nmlc
这种方式直接从仓库拉取 NML 源码,并手动执行其中的 NMLC 入口点。
安装完以后可以在终端内执行以下命令来查看 nml 版本
nmlc --version
如果汇报了正确版本,恭喜你,你已经成功安装了 nml,跨过了第一道门槛。
重要
由于 NML 目前尚在开发中,尚有一些程序错误,我们建议定期更新 NML 以避免 GRF 出错。