Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Our visual novel engine with Rust! #1

Merged
merged 480 commits into from Sep 14, 2022
Merged

Conversation

Berrysoft
Copy link
Contributor

@Berrysoft Berrysoft commented Sep 9, 2022

We finally named this project Ayaka today. It is such an important day, because we finally stopped calling it gal.

About this project

Ayaka is currently a project for OSPP 2022. According to the rules, we should show our work with a merged PR. Here is all our work recently. Contributions are welcomed after this PR is merged.

About the name

The frontend is Ayaka. The runtime is Ayaka. The script is Ayaka. Just Ayaka.

What we've done

  • A cross-platform visual noval (VN) runtime with rust
  • A well-defined and easy-to-author VN config file format, based on YAML.
  • An embedded custom script.
  • CLDR-based i18n support.
  • A flexible plugin system based on WebAssembly. It provides hooks of the runtime and interop functionalities with the script.
  • A decoupled framework - the frontend, backend and plugins are decoupled.
  • A CLI frontend to check grammar errors and debug quickly.
  • A GUI frontend powered by Tauri and Vue.
  • A proto LaTeX frontend to generate PDF from the config.

Non-goal byproducts

  • stream-future, a helper crate, separated from this repo.
  • A language matcher based on CLDR data in Rust. We need it to reduce the ICU dependency.

What we need to do before merging

  • Rename gal- to ayaka-. Rename gal binary to ayaka-check.
  • Separate fallback and locale out.
  • Draw a new logo. We should not infringe the copyright of miHoYo/HoYoVerse, but we all love Ayaka.
  • Organize the docs, the book and the README.
  • Archive the old repo.
  • Write reports.

What we will do after merging

  • Enable github actions & dependabot.
  • Copy opened issues from the old repo.
  • Publish the SDK to crates.io.
  • Make some advertisements?
  • Write some GalGame.

@Akarinnnnn
Copy link

希望在readme.md里展示脚本系统(脚本基本概念、示例、语法概要等)

@Berrysoft
Copy link
Contributor Author

写在了 Ayaka Book 里面

@Berrysoft Berrysoft marked this pull request as ready for review September 11, 2022 06:13
Merge switch actions into switches.

We separate them originally because we don't want to import Program to
this binding crate, but finally we've splited the parsers and ASTs, and
the binding crate can import the ASTs. Therefore we don't need to split
actions out.
@Berrysoft Berrysoft removed their assignment Sep 12, 2022
README.md Show resolved Hide resolved
@KireinaHoro
Copy link

KireinaHoro commented Sep 12, 2022

Thanks a lot for the hard work!

LGTM in general. One quick suggestion would be that we could add a "powered by Ayaka" (or something similar) somewhere, for example the title page. This should be of course configurable and able to be turned off in config.yaml. The idea IMO could serve as a promotion to the framework, so that we get better adoption.

@LaoshuBaby LaoshuBaby merged commit e5e23c0 into Uni-Gal:master Sep 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants