介绍

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 --versioncargo --versionrustup --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-makechocolatey 分发的 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 的环境变量,从而能够调用 cargonpm。参考开发者给出的解决方案,可以通过更改环境变量 MSYS2_PATH_TYPEinherit 来实现。

如果您正在运行 Linux

Linux 的发行版各有不同,但是通常包名应该为 make

从源代码开始

先决条件

所有平台都需要安装有RustNodejs

  • Rust: nightly toolchain.
  • Nodejs: Vite需要14.18+/16+。
  • tauri-cli: Tauri要求保证是最新的beta版本2.0.0-beta.18
$ 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