Oxygengine
The hottest HTML5 + WASM game engine for games written in Rust with web-sys
.
Table of contents
Understanding ECS
Oxygengine is highly based on specs
crate used for its ECS framework.
You can get understanding of it by reading specs
book and tutorials here: https://specs.amethyst.rs/docs/tutorials/
Installation
- Make sure that you have latest
node.js
withnpm
tools installed (https://nodejs.org/) - Make sure that you have latest
wasm-pack
toolset installed (https://rustwasm.github.io/wasm-pack/installer/) - Make sure that you have latest
oxygengine-ignite
binary installed (cargo install oxygengine-ignite
)
Teaser
Project Setup
Create Oxygen Engine project with oxygengine-ignite
:
Which will create default web game project using web-composite-game
preset.
Then you have to go to your project directory and run npm install
to install all nodejs dependencies.
You can create projects with different presets:
- desktop-headless-game - typical server-like project without graphics.
- hybrid-script-game - it's a
web-composite-game
with JavaScript scripting module to make prototyping with Oxygengine faster and easier. Please note that JS scripting compared to pure Rust version is slower so it's not a great idea to use it in a production-ready game with lots of entities and logic, it should only help to prototype a game systems that will be later rewritten in Rust for best optimization.
using:
You can also tell it where to create project:
Updating to new engine version:
- reinstall
oxygengine-ignite
:OXY_UPDATE_PRESETS=1
- update
oxygengine
version either inCargo.toml
or by calling:cargo update
Building for development and production
- Launch live development with hot reloading (app will be automatically recompiled in background):
- Build production distribution (will be available in
/dist
folder): with debug symbols:
optimized release mode:OXY_RELEASE=1
- Build crate without of running dev env:
Roadmap
Current milestone progress: https://github.com/PsichiX/Oxygengine/projects/1