UPDATE: It is unlikely further work will be done in this repository, as I've decided to work on the Amethyst project alternatively. After evaluating the two code bases and philosophies I've determined that Nitro and Amethyst have the same goals, I hope any fans of this project will consider the Amethyst project as a sufficient alternative. If anyone wants to take over the nitro repositories I'll be happy to do the transfer.
Nitro is a game engine built in Rust for Windows, Mac OSX, and Linux systems.
This project is
a Work In Progress abandoned. You can make some basic games with it as it is today, for example a mario clone. However in some areas the API endpoints are a bit scarce and some features such as multiplayer are missing entirely.
- Very basic asset management exists.
- A 2D rendering backend powered by SDL2 is present, 3D is a long ways off at this point.
- "Immediate mode" GUI system driven by Components.
- Audio playback, including features such as volume and pausing/resuming are present.
- The nphysics physics library has been integrated into Nitro and exposed to the end user.
- Rebindable keys and input axes exist and can be queried by Components.
- The ECS is in place, allowing users to create GameObjects and extend them by attaching Components.
- Components receive messages from the engine which allow the components to respond to events as they occur.
Building the engine
Nitro has three major C based dependencies that will need to be setup on your dev machine:
If you're on Windows please refer to the nitro-example-project You will need the dll folder, and make sure to add build.rs as a build script.
If you are on Linux or OSX, you will need to install these dependencies. Here's some commands to help:
If you have homebrew on OSX you can install these using:
brew update brew install sdl2 sdl2_image brew install sdl2_mixer --with-libvorbis
If you're on Ubuntu 14.04 or greater these commands will install the dependencies for you:
sudo apt-get -qq update sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev
- This repository has been abandoned. If you'd like to take over further development on it (or use the nitro name itself for another project) please contact @Xaeroxe.