SkillAgentSearch skills...

Lumina

A top down, fast paced, objective based, PvP game, written in Rust, using the Bevy game engine.

Install / Use

/learn @nixonyh/Lumina
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Lumina

A top down, fast paced, objective based, PvP game.

poster

Quickstart

If you just want to play the game, go to this section!

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.

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 | | Motion Graphics | Bevy MotionGfx |

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.

Playing the game!

  1. Download the provided lumina_build.zip file from the release page and extract it.
  2. Once extracted, you have 2 options, either host it locally, or host it online.

Hosting locally (single machine)

If you just want to play the game on a single machine, simply run both the lumina_server.exe and lumina_client.exe. You can run multiple instances of lumina_client.exe which will act like a different player.

Hosting on LAN (multiple machines)

To host for your entire LAN (local area network), open up terminal and determine your local IP address using ipconfig on Windows or ifconfig on Linux/Mac.

poster

Then, copy the IP address and paste it in assets/settings.ron in the server_addr field:

    ..
    shared: SharedSettings(
        server_addr: "your ip here!",
        server_port: 5000,
        ...
    )

With the same IP address, paste it also in your other machines' settings.ron file.

Once done, run lumina_server.exe on the host machine (the machine where you copy the IP address). On other machines, including the host machine, just run lumina_client.exe, it will automatically connect to the server.

Hosting online

[!WARNING] Hosting online risks your IP address being leaked. Continue this path with great caution!

The steps to host online is pretty similar to how you host on LAN (previous section). The only difference now is that you will need to do 2 extra things:

  1. Port-forward your hosting machine on your router with the port 5000.
  2. Change the sever_addr field to your public IP address instead (you can check this via https://whatismyipaddress.com/).
View on GitHub
GitHub Stars160
CategoryDevelopment
Updated10d ago
Forks14

Languages

Rust

Security Score

80/100

Audited on Mar 27, 2026

No findings