介绍
Ayaka 一开始是一个 OSPP 2022 的项目。 这是一个视觉小说引擎,主要关注三个目标:简单、自由、专注。
简单
视觉小说应该容易创作,且作者不需要太多编程知识。 我们提供了一个基于 YAML、结合类 TeX 命令的配置文件格式。 这个简单的格式方便快速学习并创作自己的视觉小说。
自由
辅以提供的插件系统,创作者可以自由实现任何想要的功能。 我们默认提供了简单并强大的脚本插件。 插件系统提供了运行时计算,并处理重要环节的可能性。
专注
整个项目分为四部分:运行时、插件、配置、前端。 创作者可以专注于一个部分的同时,不了解其它部分的工作。 最简单的情况下,可以通过只编写配置文件来创作一部视觉小说。 为了创作更加多彩的游戏,也可以考虑自定义前端。
从零开始
我们假设读者是没有计算机背景的游戏制作人或视觉小说剧本家,在此基础上完成后续操作,成功运行本游戏引擎的游戏。
你将会学习安装 Rust 与 Makefile,之后就可以从源代码开始.
安装Rust环境
Rust是一门现代化的编程语言,且为编译执行,这就意味着并不需要特别的运行环境或解释器才能运行。我们需要安装的是Rust的开发环境。
首先,我们找到Rust语言的官网,官网提供了多种语言的本地化,因此您可以切换点击“English”切换到简体中文界面方便阅读。随后我们依照官网的安装指南下载。
Rust可在Windows、Linux、macOS、FreeBSD和NetBSD上运行。
如果您正在运行Windows
则根据自己电脑的实际情况选择下载32位或64位的Rustup安装器。
如果您正在运行Unix
在终端中运行如下指令,然后按照提示交互安装。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
下载部分组件可能需要较长的时间,推荐在网络条件(尤其是访问境外服务器)良好的情况下进行。
一切完成后,在终端内输入rustc --version
,cargo --version
和rustup --version
以确认安装正常。
换源tuna
https://mirrors.tuna.tsinghua.edu.cn/help/crates.io-index.git/
切换到 nightly
rustup install nightly
rustup default nightly
每次在运行前的操作
因为是nightly,所以经常更新
rustup update
此外还有
git pull
安装 Makefile
Ayaka 使用 Makefile 组织各个组件的编译和测试。
如果您正在运行 Windows
一般建议使用 MSYS2 分发的 make
,也可以使用 MSYS2 分发的 mingw32-make
或 chocolatey 分发的 make
。
安装 MSYS2 分发的 make
首先从 MSYS2 官网 下载安装程序,并按照官网的安装指引安装 MSYS2。
然后在 MSYS2 shell 中,运行
pacman -S make
安装 make
。如果想要安装特定的 MinGW 环境的 Makefile,例如 MinGW64 环境,可以运行
pacman -S mingw-w64-x86_64-make
以安装该环境的 mingw32-make
。
安装 chocolatey 分发的 make
首先从 chocolatey 官网 根据相应的指引安装 chocolatey。
然后在命令行中,运行
choco install make
将 make
加入到环境变量 PATH
如果你使用 MSYS2,make
是不会被加入到 PATH
中的,你只有在使用 MSYS2 shell 的时候才能够调用它。针对这样的情况,你可以选择将 MSYS2 的 /usr/bin
目录(或者是 MinGW64 对应的 /mingw64/bin
)对应的 Windows 目录,一般是 C:\msys64\usr\bin
(或者 C:\msys64\mingw64\bin
)加入环境变量的 PATH
中。
也可以选择不更改环境变量,而是让 MSYS2 shell 继承 Windows 的环境变量,从而能够调用 cargo
和 npm
。参考开发者给出的解决方案,可以通过更改环境变量 MSYS2_PATH_TYPE
为 inherit
来实现。
如果您正在运行 Linux
Linux 的发行版各有不同,但是通常包名应该为 make
。
从源代码开始
先决条件
$ cargo install tauri-cli --version 2.0.0-beta.18
...
$ cargo tauri --version
tauri-cli 2.0.0-beta.18
Windows
建议使用Windows 10+,但Rust支持的任何Windows版本皆可。
Tauri需要WebView2。最新的Edge浏览器已包含它。
要运行Makefile工具链,您需要来自MSYS2项目的GNU Make,Msys2(make
)或Mingw64(mingw32-make
)皆可。
请注意,如果在您的PATH中来自WSL的bash.exe
位于MSYS2之前,则npm
命令可能会失败。
Linux
需要webkit2gtk
。我们仅支持Tauri所依赖的webkit2gtk-4.0
。
macOS
通常我们不需要更多依赖,但你应该确保至少有make
。
从源代码Clone
$ git clone https://github.com/Uni-Gal/Ayaka.git
$ cd Ayaka
为WebAssembly添加target
$ rustup target add wasm32-unknown-unknown
进行基础测试
$ make test
运行实例
$ # Run Fibonacci2
$ make example-Fibonacci2
$ # Run Orga in GUI
$ make example-Orga-gui
构建前端
$ make release
配置
文件结构
指定角色
资源
国际化
分支
脚本
运行时
运行一个游戏
插件
Script 插件
Text 插件
Line 插件
Action 插件
Game 插件
GUI
Live2D
打包
支持的平台
Ayaka 跨平台,并将支持的平台(三元组)分为三级。
第一级
保证工作:
- x86_64-pc-windows-msvc
- x86_64-unknown-linux-gnu
- x86_64-apple-darwin
第二级
应当正常工作,但是没有测试过:
- i686-pc-windows-msvc
- aarch64-pc-windows-msvc
- i686-pc-windows-gnu
- x86_64-pc-windows-gnu
- aarch64-unknown-linux-gnu
- aarch64-apple-darwin
第三级
由于依赖可能存在问题,不一定正确编译运行:
- s390x-unknown-linux-gnu