oxygengine 0.5.6

Oxygen Engine
Documentation

logo

Oxygengine

The hottest HTML5 + WASM game engine for games written in Rust with web-sys.

Table of contents

  1. Installation
  2. Project Setup
  3. Building for development and production
  4. Roadmap

Installation

  1. Make sure that you have latest node.js with npm tools installed (https://nodejs.org/)
  2. Make sure that you have latest wasm-pack toolset installed (https://rustwasm.github.io/wasm-pack/installer/)
  3. Make sure that you have latest oxygengine-ignite application installed (from project repository releases)

Project Setup

Create Oxygen Engine project with oxygengine-ignite:

cd /path/to/parent/
oxygengine-ignite new <project-name>

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:

cd /path/to/parent/
oxygengine-ignite new <project-name> -p desktop-headless-game

You can also tell it where to create project:

oxygengine-ignite new <project-name> -d /path/to/parent/

Building for development and production

  • Launch live development with hot reloading (app will be automatically recompiled in background):
npm start
  • Build production distribution (will be available in /dist folder): with debug symbols:
    npm run build
    
    optimized release mode:
    OXY_RELEASE=1 npm run build
    
  • Build crate without of running dev env:
cargo build

TODO / Roadmap

  • UI widgets
  • Prefabs (loading scenes from asset)
  • Hardware renderer
  • WebGL hardware renderer backend