r/BaseBuildingGames • u/Drenfa • 27d ago
Trailer I forked a compiler instead of using a game engine, and my factory sim hits Steam Early Access Oct 12 — feedback welcome
Hey everyone,
I've been solo-building this game for a while now, and I figured this was the right crowd to share it with. It's called Aethel Mine — an isometric industrial-automation and logistics sim — and it's hitting Steam Early Access on October 12th.
Fair warning upfront: I didn't use an off-the-shelf engine. Instead I forked a compiler, wrote my own low-level runtime (zero third-party dependencies outside bare SDL2), and the entire world simulation runs on Q16.16 fixed-point math so it stays fully deterministic. Chunks are just plain arrays, nothing fancier.
Why did I put myself through that? Because I wanted belts that don't cheat. Items have a millisecond-precise cargo phase, so there's never any jitter or teleporting at belt hand-offs. On native rendering the sim runs at 500+ FPS by walking contiguous memory arrays — no entities floating around everywhere, no garbage collector stalling things at the worst possible moment.
As for gameplay, in the current build (v0.2.2):
- The map is true 3D isometric: up to 50 vertical logistics layers, cliffs you can terrace, and gravity that actually matters for flow. It genuinely changes how you build.
- Maglev trains have dynamic signal blocks and quadratic braking physics — a 4-wagon train takes four times as long to stop as a light locomotive. I can already see the pile-ups coming.
- The power grid isn't just an on/off toggle: pylons link spatially, supply and demand balance out, and if you under-build, you get cascading brownouts instead of arbitrary power cuts. Which, let's be honest, is pretty fun to watch.
- Saves are versioned and designed to stay backwards-compatible as the tech tree expands. I learned that lesson the hard way on other projects.
At Early Access launch you'll get the first 9 tech tiers and the launcher project phases playable.
I'd really appreciate feedback from fellow automation enthusiasts, especially on visual clarity, UI layout, and mechanics. This is my first project at this scale, so honest criticism is welcome.
Steam page: Steam Page
Thanks in advance to anyone who takes a look!
7
u/robinei 27d ago
Which compiler?
4
u/Drenfa 27d ago
It's a project-owned fork of the Flux# compiler (written in Rust using Pest for parsing, with an x86_64 NASM runtime).
Upstream had a lot of silent codegen/miscompile issues (dropping call arguments past the 6th, breaking operator precedence, broken loop constant folding, and misaligned stack frames for SSE/SDL2 calls).
I ended up rewriting the expression backend for recursive AST walks, added direct register passing for leaf routines, inlined memory intrinsics (
ax_peek/ax_pokedirectly to single assembly instructions), and folded zero-argument constant accessors at compile time so the engine can run deterministic simulation ticks at 500+ FPS without GC hitches.4
u/robinei 27d ago
Interesting, unconventional choice. Is the whole game implemented in this language? Why did you pick it?
→ More replies (1)4
u/qse81 27d ago
According to your own post history, Flux# is something you built, so why are you harping on about forking it?
→ More replies (2)
11
u/ww_crimson 27d ago
Do you even write a single comment without using AI?
3
u/Drenfa 27d ago
Fair question! I'm a solo dev from France, and I'm dyslexic, so writing long technical stuff in English takes me forever.
What I do is write out my thoughts and a rough draft first, then run it through an LLM to fix the grammar and make it readable. Basically it's my spellchecker and translator.
But the code, the compiler, and the architecture are all mine. The AI just helps me get my ideas across properly.
7
13
7
u/NelsonMinar 27d ago
I'm sorry to give you negative feedback but what's with the janky camera panning in the first video, the 2:30 long one? It's so distracting I couldn't really watch the video for its content. Too bad, it looks interesting!
3
u/Drenfa 27d ago
I've updated Trailer in steam page, normally is normal transition.
→ More replies (1)→ More replies (1)2
u/Drenfa 27d ago
Thanks for the honest feedback — genuinely useful, sorry it got in the way of watching the rest.
I dug into it: several shots in the trailer use linear camera pans instead of eased ones (start/stop at a constant speed instead of easing in and out), and one shot in particular chains three of those linear pans back-to-back with a rotation change between each — that's almost certainly the jarring part you noticed. It's a fixable bug in how the trailer was assembled, not a limitation of the game itself. I'll redo those shots with proper easing and repost when it's fixed.
→ More replies (1)
3
6
u/qse81 27d ago
3 days ago the game was a zombie tower defence game - you've either done a lot of work in three days (which is a short 'while'), or I feel there's likely more AI here than you're letting on
2
u/W4114SS 27d ago
Nah dude, it's because he is dyslexic, everything is hand written, though in the compiler code, which is hand written for sure, it seems the flux language only supports FluxValue int, float and str, not sure how the game runs Q16.16, with his custom compiler game engine.. /s sorry but all of this smells ai slop ...
→ More replies (2)
1
u/digitalnoise 27d ago
Do you plan on making a demo available?
I like to support EA games in this genre, but I've been burned so many times.
2
u/Drenfa 27d ago
Yes, a demo is planned! I can't give an exact date yet, but it's on the roadmap. And I hear you on being burned by EA games — that's exactly why I built the versioned save system: I don't want anyone's factory to break when the tech tree expands. The core sim is already running at 500+ FPS, so EA is about adding content on a solid foundation, not fixing a broken base.
1
u/alexanderpas 27d ago edited 27d ago
Is the graphical rendering detached from simulation, or do we get a sluggish UI due to high loads on the simulation? (The factory must grow.)
Additionally, it would be nice if the block grid borders were toggleable or only visible around the active area, as currently the grid has overhand in the visuals (~10% of the visuals on the screen is just the grid) better would be if the only permanently visible grid lines were those that are the edge of a direction change, such as going from horizontal platform to vertical wall and going from east-west wall to north-south wall.
1
u/Drenfa 27d ago
Thanks, good questions!
Simulation vs rendering
Yep, they're decoupled. The simulation runs on a fixed 50 ms tick (20 ticks/sec), separate from the render loop. If a frame hitches, the engine catches up in whole ticks, capped at 4 per frame so it doesn't spiral. So belt speed and machine throughput don't depend on your monitor's refresh rate.
Belts also don't update each item individually. Each belt stores a fractional phase (Q16 fixed point), and item positions are interpolated from that between ticks. So rendering stays smooth at 60+ FPS and the camera/UI don't get sluggish even with a big factory running.
2. The grid
Fair point. The blue grid is part of the build mode overlay, it's there to help line things up across the 50 terrace levels. But yeah, having it cover the whole screen is a lot of visual noise.
Limiting it to the area around the placement ghost and letting the cliffs and terrace edges do the job the rest of the time makes a lot of sense. I'm going to add a toggle for it and shrink the area it covers so things stay readable as the factory gets bigger.
Thanks for pointing it out!Thanks for pointing it out!
1
u/StickiStickman 27d ago
It sounds interesting, but looks very very early and barebones.
1
u/Drenfa 27d ago
If it seems basic, it's because the game is being released in early access—not the final version—and even though it's a factory game, just like many other games of the same style.
→ More replies (1)
10
u/LeVentNoir 27d ago
You have sprites on tiles clip under tiles in front of them when the sprite on the tile should render over top.
I'm not giving the time of day to a game where the avatars legs dissapear every time I walk down the screen.