6 releases (breaking)
0.7.0 | Mar 18, 2024 |
---|---|
0.6.0 | Feb 19, 2022 |
0.4.0 | Aug 8, 2021 |
0.3.0 | Jun 2, 2021 |
0.1.0 | Mar 20, 2021 |
#514 in Game dev
9.5MB
8K
SLoC
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 ecosystem.
Why this project?
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 game projects. This means I don't implement feature juste because I've seen it elsewhere, but because I need it for the next project that uses Scion.
Goals
- Strong focus on 2D only.
- Easy and Fun to use.
- Clean and readable source code (at least we'll try to rewrite when necessary)
- Editor-less, it's a lib and should always be
Non goals
- Ultra/over optimized code and performances. For this, please try other engines or build your own!
- 3D
Documentations, Tutorials?
Yes, they are planned and being worked on. If you want to see scion in action, check the examples for now.
Why ECS?
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.
Notable dependencies
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)
Pre-requisites
To build Scion, you need to install the required packages for your system:
Debian, Ubuntu, PopOS...
sudo apt install gcc cmake build-essential libx11-dev libxi-dev libgl1-mesa-dev libasound2-dev
Fedora
sudo dnf install gcc cmake make automake gcc gcc-c++ kernel-devel libX11-devel libXi-devel mesa-libGL-devel alsa-lib-devel
Arch, Manjaro...
sudo pacman -S gcc cmake make automake linux-headers libx11 libxi mesa alsa-lib
Run an example
Then, you can run an example:
cargo run --example bomberman --release
Showcase
Dependencies
~20–57MB
~1M SLoC