介绍
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