A top down fast paced objective based PvPvE game.
To compile Lumina, you have to perform a recursive clone:
git clone --recursive https://github.com/nixon-voxell/lumina.git
Before running the game, the assets
folder needs to be linked correctly to all the binary crates.
You can do so by running:
create_asset_junctions.bat
To run the game, you need to start the server and the client. You can do so manually using:
cargo run --bin lumina_server
cargo run --bin lumina_client
For development purposes, a shell script has been created to speed things up:
run.bat x
With x
being the number of clients you want to spawn.
To improve development time, the crates/test_bed/examples
folder is used to create mini test cases with minimal compilation time. Run a test example using the following command:
cargo run --example test_name
With test_name
being the name of your testing example.
Lumina is made mainly using the Rust language. This means that most of the dependencies used will also be from the Rust ecosystem.
Here is the breakdown of the Lumina tech stack:
Component | Tool/Library |
---|---|
Game Engine | Bevy |
UI/UX | Velyst |
Global Illumination | Radiance Cascades, an improvement from here |
Particle System | Bevy Enoki |
Physics | Avian |
Networking | Lightyear |
Asset Management | Blenvy |
Input Manager | Leafwing Input Manager |
Coroutine | Bevy Coroutine |
Lumina is unique in several ways in terms of technical challenges. It is essentially also a technical playground in hindsight to test new tecnologies to their limits.