Skip to content

nixon-voxell/lumina

Repository files navigation

Lumina

A top down fast paced objective based PvPvE game.

poster

Quickstart

To compile Lumina, you have to perform a recursive clone:

git clone --recursive https://github.com/nixon-voxell/lumina.git

Run the game

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:

Windows

run.bat x

With x being the number of clients you want to spawn.

Test Bed

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.

Tech Stack

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.

  • Lumina uses vector graphics for all of its UI components which is rendered using Vello.
  • Lumina's UI system is built entirely using a fairly new language called Typst.
  • Lumina employs a novel approach towards 2d lighting using a global illumination technique called Radiance Cascades.

About

A top down fast paced objective based PvPvE game.

Resources

Stars

Watchers

Forks

Packages

No packages published