Scion is a 2D game library made in rust.
Please note that this project is in its first milestones and is subject to change according to convenience needs and big features coming. You can use Scion as you want although I just made this open source to serve the community not to be a competitor to the current Rust game engine eco-system.
Well, firstly because it's a good way to learn the different aspects of game dev under the hood. Then, because I wanted to create something with modest goals, focused on ease of use and a short list of principles that also serves as a guideline.
Scion is not 'inspired' by any other engine, it's inspired by the needs from real projects.
- Strong focus on 2D only.
- Easy and Fun to use.
- Clean and readable source code
- Tauri based Editor
- Ultra/over optimized code and performances. For this, please try other engines or build your own!
- 3D
Yes, they are planned and being worked on. If you want to see scion in action, check the examples for now.
Today, ECS is like a 'magic' word for games, game libs and game engine. But ECS is not and must not be considered as a universal answer to multiple questions. I believe that ECS has its strength and its weaknesses. The choice of it here is made because the main target games of this lib at its start were to be able to make:
- a complex city building game.
- a pkmn fan game with real time trainer progression and wild pkmn.
- granular network packets representation && dot simulation games.
These are the dependencies this project is relying on. Thanks to these awesome communities, we are able to build this kind of tiny projects.
- winit and wgpu (windowing and multi backend rendering)
- hecs (Entity component system)
- ultraviolet (Maths)
To build Scion, you need to install the required packages for your system:
sudo apt install gcc cmake build-essential libx11-dev libxi-dev libgl1-mesa-dev libasound2-dev
sudo dnf install gcc cmake make automake gcc gcc-c++ kernel-devel libX11-devel libXi-devel mesa-libGL-devel alsa-lib-devel
sudo pacman -S gcc cmake make automake linux-headers libx11 libxi mesa alsa-lib
Then, you can run an example:
cargo run --example bomberman --release