4个版本

0.1.2 2022年10月24日
0.1.1 2022年10月22日
0.1.0 2022年10月22日
0.0.1 2022年10月20日

#1257游戏开发

MIT/Apache

340KB
7K SLoC

ZENgine   CI

什么是ZENgine?

ZENgine是一个用于教学目的的非常简单的2D数据驱动游戏引擎,使用Rust语言和ECS架构编写。

灵感

ZENgine深受以下项目的启发

  • Bevy 一个刷新式的简单数据驱动游戏引擎,使用Rust编写
  • Amethyst 使用Rust编写的面向数据和数据驱动的游戏引擎
  • kudo Rust的实体组件系统

教学目的

我开始这个项目主要是为了提高我对Rust语言的认识,这是我非常喜欢的一种编程语言,以及游戏引擎架构,这是一个我一直很感兴趣的话题。

我创建了一系列小视频(只有意大利语 😏),涵盖了引擎的第一代迭代,在所有引擎的巨大重构之前。将来,我计划写一系列关于引擎及其工作原理的文章。

开始使用

示例文件夹中有一个非常粗糙的pong实现,应该可以在Windows、Mac、Linux、Android和每个现代浏览器上运行。

桌面环境(Windows、Mac、Linux)

只需在pong文件夹中运行cargo run

Android

要构建Android版本,必须正确设置环境。

您必须安装Android SDK和Android NDK,并正确设置环境变量。

然后使用以下命令安装cargo-apk

cargo install cargo-apk

并最后,安装所需的工具链

rustup target add \
    aarch64-linux-android \
    armv7-linux-androideabi \
    x86_64-linux-android \
    i686-linux-android

现在,在pong文件夹中运行以下命令即可将应用程序安装到您的设备上

cargo apk run --lib

WASM环境

要启动Web版本,必须正确设置环境。使用以下命令安装wasm32-unknown-unknown目标

rustup target add wasm32-unknown-unknown

然后使用以下命令安装wasm-bindgen-cliTrunk

cargo install trunk wasm-bindgen-cli

现在,您可以使用trunk serve提供应用程序服务

(可能需要点击浏览器页面才能使输入系统工作)。

依赖项

~21–55MB
~758K SLoC