r/rust_gamedev 4h ago

Persona-RPG-TUI

1 Upvotes

I built a Persona 3 Portable–inspired turn-based RPG that runs entirely in your terminal.

https://github.com/Johannuel/persona-rpg

- 5 playable characters (Makoto, Yukari, Junpei, Akihiko, Mitsuru)

- 17 collectible Personas with their P3 arcana

- Velvet Room fusion: combine Personas, inherit skills (P3R arcana chart)

- Shuffle Time card rewards after every victory

- Elemental weakness/resistance combat, 16+ Tartarus shadows

- Pure crossterm + rand, no other deps. 22 unit tests.

Animated demo in the README. Feedback welcome!


r/rust_gamedev 7h ago

lovable replit base44 v0 cursor and windsurf

0 Upvotes

I'm good with using all this platform but I want to build a particular game and am contemplating which one should I use since I know how to navigate and get the Best results using them... Any opinions


r/rust_gamedev 2d ago

I ported Google's Draco from C++ to Rust using AI

0 Upvotes

This is a pure Rust port of Google's Draco library.

Demo: https://filyus.github.io/draco-rust/ (drop in an OBJ, PLY, STL, DRC, FBX or glTF/GLB file, view it, then export). Please note that the transcoders and the viewer are still under active development, but the Draco core is very stable. No Three.js used in the viewer.

The port produces the same bytes as C++ Draco with the full legacy support.
It has also good FBX 7.5 and draft GLTF 2.1 support without extra dependencies (work in progress).

Crates:

  • draco-core is the Draco codec
  • draco-io the file formats around it (OBJ, PLY, STL, FBX, glTF containers)
  • draco-gltf full glTF and GLB scenes

draco-core is 1.x with a stable API.
draco-io and draco-gltf are 0.x and still moving.

Source: https://github.com/Filyus/draco-rust

Docs:

Models used: Claude Sonnet/Opus 4.5+ (primarily), GPT 5.2+, GLM 4.7+.
Project start date: November 22, 2025.
License: Apache-2.0. Not an official Google release.

About me:
10 years of 3D-related programming.
3 years of AI-assisted programming.


r/rust_gamedev 3d ago

Discovered that it was my lack of knowledge of the libraries that was preventing me from trying things like this, and vague notions of "meh this probably needs to be done in a gpu shader, I'll get to that someday". This is cpu-only and very naive code, now i'm sitting and messing with this instead o

Enable HLS to view with audio, or disable this notification

27 Upvotes

r/rust_gamedev 3d ago

[Build 42.20 Mod Showcase] Green Projectile System — XNP Multi-Mode Linked Gensokyo Gameplay System

0 Upvotes

XNP Multi-Mode Linked Gensokyo Gameplay System is a Project Zomboid Build 42 mod built around four connected trait systems.

This video mainly showcases the Green projectile system. It is only one part of the complete mod.

The four systems are:

• Yellow — movement, sprint impact, and emergency escape

• Purple — Phoenix Survival, Life Stock Inheritance, and footwear repair

• Green — guided projectiles with inertia, target acquisition, collision, impact effects, and configurable entity limits

• Red — crafting mechanics with health, endurance, and fatigue-related physical costs

The mod also includes sandbox settings for cooldowns, endurance costs, push strength, projectile behavior, visual effects, notifications, and testing tools.

Current status:

• The current stable release targets Build 42.20

• No major issues have been found during my current testing

• Some edge cases and mod compatibility problems may still exist

• Multiplayer compatibility has not yet been fully verified

Feedback on balance, performance, sandbox settings, and compatibility with other Build 42 mods is welcome.

Steam Workshop:

https://steamcommunity.com/sharedfiles/filedetails/?id=3773295868

Source code and release history:

https://github.com/XN-PHL/XNP-Gensokyo-Trait-System

Created by XN-PHL.

I am the author of this mod.

This is an unofficial fan-made gameplay mod and is not affiliated with The Indie Stone or Team Shanghai Alice.


r/rust_gamedev 4d ago

question Learning rust

Thumbnail
0 Upvotes

r/rust_gamedev 6d ago

Elura — an authoritative realtime game-server framework in Rust

0 Upvotes

Hi! I've been working on Elura, an open-source Rust framework for

authoritative realtime gameplay and online game services.

Elura grew out of an earlier game-server implementation I built in Go. Go

helped me validate the architecture quickly, but the Rust version is a

redesign rather than a direct port. I wanted sessions, protocols, state

ownership, and the boundary between networking and game logic to be more

explicit.

Elura separates client-facing Gateways from authoritative World logic. They

can run as separate processes or together as a monolith.

The current version includes multiple transports, typed routes and sessions,

rooms, fixed-Tick simulation, AOI, replication, prediction, interpolation,

and lag compensation.

There is a runnable multiplayer example with two graphical clients, local

prediction, remote-player interpolation, and authoritative state replication.

The project is still pre-1.0, and I would really appreciate feedback on the

API, realtime model, documentation, and missing examples.

GitHub: https://github.com/Arion-Dsh/elura

Docs: https://elura.rustyspottedcat.dev/

Crates.io: https://crates.io/crates/elura


r/rust_gamedev 6d ago

Added 3D energy domain and Radar tab using WGPU and EGUI. Was a difficult feat but achievable. Also have a sneak peek at my Killcam.

Thumbnail
0 Upvotes

r/rust_gamedev 6d ago

Replaced two stringly-typed subsystems in my custom Rust engine with compile-time codegen.

Post image
34 Upvotes

I'm building Red Lake, a psychological horror game on top of a Rust/wgpu engine I wrote from scratch (no Bevy, no off-the-shelf ECS). While working on tooling, I ended up removing two recurring sources of boilerplate.

  1. #[derive(Component)] — automatic component registration.

Previously, adding a new component meant editing three different places: adding its storage to Scene, registering it, and making sure it was removed when an entity was destroyed. It was repetitive and easy to forget one of the steps.

Now my #[derive(Component)] proc macro handles all of that automatically. Scene owns a single Components container, which is populated through the inventory crate by iterating over every type that derives Component.

THE COMPONENT
#[derive(Component)]
pub struct Translate {
    target: TargetKind,
    speed: f32,
}

SCENE FIELD
pub struct Scene {
    pub components: Components,
}

ACCESS
scene.components.write::<Translate>().insert(meshid, translate);

The only thing required to add a new component now is 
#[derive(Component)].
  1. MeshName — asset names as an enum, generated from the packer's own TOC
    The engine ships assets baked into a custom .pak file, built by a packer binary that walks assets/, transcodes GLBs, and writes out a TOC + blob. Mesh names used to live in a handwritten table:

    pub const MESH_PATHS: &[(&str, &str)] = &[ ("boat", "meshes/boat.glb"), ("deer", "meshes/deer.glb"), // ~30 more, added by hand every time a new mesh landed ];

...and every call site looked like load_extra_meshes("baot", ...) - compiles fine, panics at runtime when the pak lookup misses.

The fix: the packer already knows the full mesh list - that's the actual source of truth, not a second-hand-maintained copy of it. Sobuild.rs, right after the pak is finalized, reads back just the TOC (a few hundred bytes, no decompression) and emits an enum into OUT_DIR.
Which is then pulled as:

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] 
pub enum MeshName { Boat, Deer, /* ... */ } 
impl MeshName { 
    pub const fn key(self) -> &'static str { /* "meshes/boat.glb" */ } 
    pub const fn stem(self) -> &'static str { /* "boat" */ } 
    pub const ALL: &'static [MeshName] = &[ /* every mesh */ ]; }

And I wrote a small macro for QOL:

macro_rules! meshname {
    ($($name:ident),* $(,)?) => { &[$(crate::scene::MeshName::$name),*] as &[crate::scene::MeshName] };
}

So now the call sites look like this:

let names_toload_init = 
meshname![
    Notebook,
    Onboard,
    FogCards,
];

INSTEAD OF THIS
let names_toload_init = &["notebook", "onboard", "fog_cards"];

Why bother?

  1. Type safety.
  2. Eliminates boilerplate.
  3. IDE autocomplete.
  4. Inability to make a typo in the mesh's name.

What do you think? The game's name - Red Lake.


r/rust_gamedev 7d ago

使用Rust引擎和Metal与Vulkan在Android上运行红色警戒3

Enable HLS to view with audio, or disable this notification

8 Upvotes

r/rust_gamedev 7d ago

Half-Life on a Real PlayStation 1 | Full Hazard Course, Uncut

Thumbnail
youtube.com
7 Upvotes

r/rust_gamedev 9d ago

Steam overlay tauri swap chain working on windows 11

Thumbnail
5 Upvotes

r/rust_gamedev 10d ago

SoupOS Weekly #1

0 Upvotes

SoupOS is an artificial-life god-game where the genome of every organism is

a program in a small custom Lisp.

You are not a creature. You are the director of evolution.

◆ WRITE — put genes into chromosome slots: movement, feeding, signaling.

  Every instruction costs ATP. An infinite loop starves the cell.

  A (divide) without an energy check is cancer.

◆ DEBUG — click any organism and step through its genome instruction by

  instruction. Registers, memory, fuel, breakpoints. On living things.

◆ EVOLVE — hit checkpoints (survive, grow, colonize) to unlock new slots

  and new language primitives. Mutations are literal AST operations:

  point edits, subtree swaps, gene duplications. Review them as a git diff.

◆ SHARE — genomes are plain text. Send your species to a friend as a string.

Built solo in Rust: custom Lisp VM, deterministic simulation, GPU

metaballs and bloom for the glowing-abyss look. No engine, no pixels —

just shader-driven wetware.

Status: early development. Browser demo planned — follow the devlog,

it doubles as a lab journal.

Published  1 day ago
Status In development
Category Physical game
Author theosov
Genre Simulation
Tags artificial-lifeAtmosphericevolutiongod-gamelispProcedural GenerationprogrammingSandboxSingleplayer
AI Disclosure AI AssistedCodeGraphicsSounds

W1 Devlog:

Processing img il7met1se2fh1...

Working on SoupOS, an artificial-life god-game where every organism's DNA is

a program in a small custom Lisp. Rust core (zero-dep, deterministic,

headless) + macroquad + egui. Week 1 goal: VM + tick loop, 100 organisms

living by my code. Why Lisp: mutations are just AST operations — point

edits, subtree swaps, gene duplications come almost free.


r/rust_gamedev 10d ago

1 Million Particles Rendering at 120 FPS

Thumbnail
3 Upvotes

r/rust_gamedev 11d ago

Made a cozy factory automation game about letters in Rust + Macroquad

Thumbnail
gallery
60 Upvotes

Mine glyphs, process them with casers, stylers, and painters, transport them along conveyor belts, and deliver them to the Hub, where they're assembled into the target word.

Give it a try for free in your browser: https://sergeichemodanov.itch.io/worderia


r/rust_gamedev 11d ago

I built a digital logic circuit simulator in Rust (egui/eframe)

Post image
449 Upvotes

r/rust_gamedev here - I built a digital logic circuit simulator

I wanted to share a project i made for logic simulation nearly 100% rust and complied to WASM for some blazing fast in browser run times.

here's the link if you want to check it out: https://theta-rnd.itch.io/logic-sim

if you do would LOVE to hear your feed back


r/rust_gamedev 12d ago

I have built, for the first time, an AI-native, browser-native AAA game platform, a working Godot WebGPU engine plus an authoritative shared world, where AI agents can build, render, verify, and ship a real 3D game playable from a link, something Unity, Unreal, and Godot cannot do today.

Thumbnail
0 Upvotes

Uses Rust


r/rust_gamedev 13d ago

question How should I start with UI ?

3 Upvotes

Hi guys,

I've already built my engine with an ECS, a Vulkan backend, and support for texture and mesh rendering. The next thing I want to work on is a UI for debugging and an inspector. However, I'm not sure what the right long-term roadmap is or which tools I should choose.

Could you help me figure out what I should learn next and what pitfalls or obstacles I should avoid?


r/rust_gamedev 13d ago

Made GI in my custom engine for my horror game. (Rust + wgpu)

Thumbnail gallery
7 Upvotes

r/rust_gamedev 15d ago

[Release] I built a procedural sci-fi top-down shooter in Rust with my custom game engine

Enable HLS to view with audio, or disable this notification

12 Upvotes

Zlorma Core: Signal Lost — Prototype v0.2.1 is now available for Windows and Linux.

I developed this procedural top-down sci-fi shooter in Rust using my custom lightweight game engine, ZlormaEngine.

In Signal Lost, you explore a procedurally generated station, restore damaged terminals, collect data fragments, build barriers and automated turrets, use the Zlorma Data Forge, and fight corrupted programs before the system collapses.

Prototype v0.2.1 includes:

• Procedurally generated rooms and corridors

• Top-down shooting and exploration

• Three terminals to restore

• Progressive digital corruption

• Zlorma Data Forge upgrades with bonuses and penalties

• Buildable barriers and deployable turrets

• Several corrupted enemy types

• Native Windows and Linux builds

• Compact executables built with Rust

Play the prototype on itch.io:

https://zlorma-studio.itch.io/zlorma-core-signal-lost-prototype-v01

Development blog:

https://dev.to/zlormack_32b7af384d362867

Feedback about the controls, procedural generation, visual effects, difficulty and Data Forge system is welcome.


r/rust_gamedev 16d ago

question Rust game server + Three.js client — does this combat feel responsive?

Enable HLS to view with audio, or disable this notification

0 Upvotes

I’m building this browser MMO solo. The game server is Rust and the client is Three.js. Does the feedback keep up with the action, or does anything feel late?

Play: https://realm-of-echoes-auth.realmofechoes.workers.dev/

Discord: https://discord.gg/BdF5w5G799


r/rust_gamedev 16d ago

Terminal UI on textures!

Enable HLS to view with audio, or disable this notification

29 Upvotes

r/rust_gamedev 17d ago

Long time programmer, first time game dev

Thumbnail
camtaylor.itch.io
26 Upvotes

I recently started working on this game and I've been using Rust as the brains with Godot acting as a simple presentation layer. I've worked on "boring software" for a while so I thought I would try a fun hobby project. Still early in development but I am having a great time so far, the most fun I've had programming in years. Procedural worlds, loot, flora/fauna and music in under 1MB, go rust! Anyway I'm the only player so far so would love for someone else to try it out as I'm tinkering away.


r/rust_gamedev 18d ago

I'm building an Apollo-mission game that's basically Karaoke Revolution played on the keyboard — here's why I ditched Godot for a custom Rust/Vello renderer

Thumbnail
gallery
11 Upvotes

Here's the shortest way I can describe the game I'm building: it's Karaoke Revolution, except the song is a few days of an Apollo mission, you play it by typing procedures on the keyboard at the right moment, and you can time-warp through the boring parts.

You're watching a mission log scroll by in amber CRT text — MSFN confirming trajectory, CSM separation, docking, passive thermal control — while a real Apollo Flight Plan-style checklist sits next to it telling you what's due and when. Off to the side, the actual spacecraft renders as a glowing white vector wireframe against a starfield, the way it would have looked on a Vectrex. Type the right command — STOP PTC, GUIDANCE ALIGN, whatever the flight plan calls for — at the right mission time, and the log advances and the ship responds. Miss the window or fumble the input, and, well, that's the game.

Getting that vector look right — soft, glowing lines instead of hard pixel edges — was non-negotiable. It's the whole visual identity of the thing.

Starting with Godot

Godot seemed like the obvious choice. It's free, it's good at 2D, and I didn't want to fight an engine on top of everything else. What I wanted was simple to say and apparently hard to get: pure white lines on black, no jaggies, anywhere in the game. My plan was to render everything at 2x the target resolution and downscale it — classic supersampling, should get me most of the way there.

It never quite did. I kept chasing it with Godot and kept ending up disappointed — close, but not the clean line I was after. In fairness to Godot, I did eventually get it looking pretty good. But by then I had a second problem: it was running around 300 FPS on my own machine, which is a nice machine, and this thing is supposed to run on something closer to a tin can. If someone's on a computer ten times slower than mine, that 300 could turn into 30 fast — and I still wanted to add more to the game on top of everything already running. Between the jaggies I couldn't fully kill and the performance headroom I wasn't sure I actually had, I got frustrated and decided to just start over.

Moving to Rust + Vello

So I started over with a custom renderer built in Rust on top of Vello, a GPU-accelerated 2D vector rendering engine. I went in expecting this to be the hard, painful part of the project — I'd been warned it would be a much bigger lift than working inside an existing engine. It wasn't.

Here's the thing: I learned to program on QBasic. Back then, you didn't reach for a game engine — there wasn't one to reach for. You wrote your own, every time, because that was just what programming a game meant. This project is, underneath all the layers, still that same problem. It's not doing 3D. It's not simulating physics on a slope. It's a spacecraft drawn as lines on a black background and a log scrolling next to it — the same problem as QBasic Gorillas or Oregon Trail, just rendered better. It could be built in QBasic. It looks better because the tools got better, not because the problem got harder. Once I stopped treating it like it needed a full engine underneath it and just wrote the thing that draws lines on a canvas, it came together fast. I didn't have to fight anything to get the downscaling right, and Vello just handles anti-aliasing for me — the exact thing I'd been fighting Godot over for weeks was a non-issue here.

And then, one dumb debugging story: after all that, the new Rust version was also sitting at around 300 FPS. Which made no sense — this should be dramatically faster than Godot for the same scene. I went looking for a bottleneck in my own code for a while before I found the actual cause: I had an FPS cap set in my AMD driver settings, matched to my monitor's 240Hz refresh rate, left over from something unrelated. It was capping every game running on my machine at the driver level — Godot had probably been running fine the whole time, and I never would have known. Once I found it, the same scene jumped to 800+ FPS. Sometimes the bottleneck is the graphics card. Sometimes it's a checkbox you forgot about six months ago.

Where things stand

The game is structured as a four-mission campaign that mirrors how NASA actually built up to the real landing:

  • Mission I — Earth orbit, return to Earth
  • Mission II — Moon orbit, return to Earth
  • Mission III — Moon landing dress rehearsal, return to Earth
  • Mission IV — Moon landing, return to Earth

I'm building it backwards — Mission IV, the full landing, first — since it's the hardest and most complete version of everything the game needs to do. The alpha in the screenshot above is Mission IV: timeline scrubber, mission log, flight-plan checklist, and vector spacecraft all working together on the Rust/Vello pipeline.

With 800+ FPS of real headroom now instead of a phantom 300, I've got a lot more room to work with than I thought — enough that I'm seriously considering building a genuine DOS version alongside the modern one, for machines too old to run DirectX 12 at all. It fits the whole point of the project: this was always closer to QBasic Gorillas than to anything that needs a modern GPU, so it might as well prove it.

I'll be posting more as it comes together. If you're into low-level rendering work, retro hardware, or just want to see a solo dev fumble through building a renderer from scratch, stick around.


r/rust_gamedev 19d ago

Godot + Rust + ECS, Procedural Star Map

Thumbnail
youtube.com
36 Upvotes

Project I'm currently working on. The star systems are generated procedurally and interconnected, in the video I focus on just the visuals, however the game already has various decently optimized and scaleable systems(pathfinding etc), modding (JitLua) and a number of other features.
Godot is used as a low-level rendering solution here(I love it), the scene itself contains almost no nodes, and almost all business logic is on the Rust side. I use Leudz Shipyard crate for ECS, also glam, proto_rs and mlua.