Prefab System Rebuild (Weekend of Nov 1–2, 2025)

Hey guys, I know I was silent for a long time. So happy to return from my 5-weeks rewind at sunny Crete. This weekend’s work focused on a complete redesign of the prefab system, making it composable, extensible, and suitable for future modding capabilities. The implementation now supports both patching and derivation of prefabs, as well as proper argument mapping and validation. Circular dependency handling has also been added. How it was before this weekend From the very beginning, patching of existing prefabs was always in my mind. The engine always provided a capability to register a new prefab factory under the same ID as an existing prefab. In that case, the new factory didn’t overwrite the pre-existing one, but got appended to the chain of factories. ...

November 2, 2025

2025-09-14 Status Update: Walls, Floors, and a Leash on the Camera

Making steady progress, and this time the changes are a little less “under the hood” and a little more visible: Prefabs now take arguments. Think of it as giving your Lego bricks different colors without having to buy a whole new set. Walls and floor tiles are now regular entities. They may still get rendered in their own loops, but for modders they behave just like everything else. No more “special snowflake” walls—everything’s unified. Camera pan is bounded to the map. At last, you can’t drift into the void and discover the edge of the universe. What’s coming up: ...

September 14, 2025

2025-08-30 Status Update

After almost 2 months spent on the extensible game engine development from scratch, I have finally some screenshots to proudly demonstrate! The road overcome so far: Modular-based, extensible core Why I Use ECS (and What That Means for Modding) Camera with keyboard-controlled pan and zoom Map-tile system with multilevel-in-mind! Going Vertical: Multi-Floor Maps Sprite rendering Automatic texture atlas building from the individual sprites supplied by mods (so that you as a modder would never have to mess around with your own atlas building!) Automatic Texture Atlasing for Modders Frustum culling Walls in between tiles (unlike in Prison Architect where they occupy an entire tile) Rethinking Walls: Between Tiles, Not Inside Rotation of sprites (so that you wouldn’t have to provide different textures for horizontal and vertical wall sections) Banging Head Against Vertical Walls Stay tuned, there is a lot in my mind to come up with yet before an alpha release! ...

August 31, 2025

Banging Head Against Vertical Walls

This is the story of how a simple rendering problem turned into a small descent into madness. It started with floor tiles and wall segments — and ended with me re-deriving trigonometry and then deliberately ignoring it. The Naive Start In the early version of the renderer, everything was simple: Floor tiles were drawn with no scaling or rotation. Textures of 128x128 were just taken and drawn. Wall segments had two dedicated textures: a horizontal texture (128x32) and a separate vertical texture (32x128). Just two different .png files. Rendering code was clean, direct, and straightforward. It worked great… until it didn’t. ...

August 31, 2025

Freeing Entities from the Grid

In Prison Architect, every entity — prisoner, guard, item, tree — is ultimately tied to a tile. The grid is the world, and the engine assumes that all entities can be reduced to a tile index. That works fine for a flat, strictly tile-based game, but it comes with trade-offs: Anything that doesn’t really “fit” into a single tile (like multi-tile objects, diagonal movement, or smooth animation) ends up bolted on awkwardly. Remember how in Prison Architect you tried to place a 1-tile chair at a 2-tiles table ending up with one or another side but not the middle? Precise positioning isn’t possible — everything snaps to the grid whether it looks right or not. Yes, in Prison Architect entities are moving seemingly smoothly, but it’s achieved with rendering quirks such as decoupled render-specific attributes in the entity and floating-point additions/subtractions which are fundamentally prone to errors and are significantly slower than these operations done on integer values. In Prison Architect, the source of truth is still tiles, and every movement apparently requires interpolation of the rendered pixel coordinate to the tile index. For every step of move. In every draw iteration. Modders quickly hit limits when trying to represent entities that should move more naturally. Want to add a helicopter? In Prison Architect, it (I assume) still participates in collision detection as a tile-bound entity. A small bin under an office desk? Impossible in Prison Architect. A small bin next to a small coat hanger? In Prison Architect, they take as much space as two fridges. I decided to take a different approach. ...

August 24, 2025

Going Vertical: Multi-Floor Maps

One of the first big design choices I made was to break away from Prison Architect’s flat map. In PA, everything happens on a single plane: walls, rooms, entities, and jobs all share the same 2D grid. That’s simple, but it means no basements, no bridges, no multi-level facilities. When I set out to design my own engine, I knew I wanted true multi-floor gameplay. Multi-floor buildings. Underground tunnels. Rooftop yards. A real sense of vertical space. ...

August 17, 2025

Rethinking Walls: Between Tiles, Not Inside

One of the more subtle design changes in my game compared to Prison Architect is where walls live. In Prison Architect, a wall occupies an entire tile. In my engine, walls live between tiles — exactly where you’d expect them in real architectural terms. This may seem like a small shift, but it unlocks a lot. The Problem with Tile-Occupying Walls In PA, walls are just tile entities. When you place a wall, it takes over the tile. ...

August 17, 2025

Automatic Texture Atlasing for Modders

One of the most annoying parts of modding 2D games — especially tile-based ones — is dealing with spritesheets and texture atlases. If you’ve modded Prison Architect, RimWorld, or similar games, you’ve probably had to: Cram your sprites into a shared PNG file Copy paste into exact pixel-aligned grid slots Maintain an accompanying XML or Lua file with offsets, pivots, and sizes Rebuild everything if just one image changed It’s tedious, error-prone, and downright unfriendly for casual modders. ...

August 6, 2025

Why I Use ECS (and What That Means for Modding)

My game is built on top of an ECS — short for Entity-Component-System architecture. If you’ve never used one before, this post will explain what it is, how it compares to traditional Object-Oriented Programming (OOP), and why it’s such a good fit — especially for a simulation-heavy, modding-friendly game like this one. What is ECS? ECS is a way of organizing game data and behavior by separating what something is from what it does. ...

June 8, 2025

Building a Better Prison Architect — For Modders

I’m starting something new: a Prison Architect-inspired game, rebuilt from scratch with one core goal front and center: make modding first-class. If you’ve ever created or maintained mods for Prison Architect, you probably know the struggle: Want to add a new need or status effect? You’re out of luck — hardcoded. Want to tweak how AI prioritizes jobs? Better grab a hammer, because there’s no real interface for that. Want a new UI panel? Prepare to inject Lua into undocumented corners of the engine and pray the next update doesn’t break it. That’s the kind of friction I’m eliminating. ...

June 8, 2025