← Back to all projects

Hauntel Management

Uppsala University

5 9 weeks

Hauntel Management

A co-op game where you run a haunted hotel: gather hotel supplies by defeating monsters to prepare rooms before the guests arrive. I was product owner and sole programmer on the team of five, owning the vision and implementing every system within nine weeks.

UnityC#Jira

As a relatively small team of 5, I took on the role of product owner and solo programmer for this game. As I often implicitly took the role of lead designer in my previous projects, it was time to make it explicit and take on the role of product owner. This meant I was responsible for the overall vision of the game, every mechanic, system and feature.

As the only programmer I was also responsible for the implementation of all these features, which meant I had to be very careful about the scope of the project and what features I could realistically implement in the 9 week span we were allocated.

thumbnail
board
UB2 8167
emobro
bored
ghost
map
lazy
mummy
octosoap
towel
  • Graph-based room editor: draw a room's outline in Unity's scene view and generate its floor, walls, and collision.

    1. The problem

    A mansion full of rooms is a lot of repetitive scene work: a floor mesh for each room, walls lined up around its edge, and a collider cut to match. Keep those as separate hand-placed pieces and they drift apart the moment a layout changes. I wanted to define a room once, as its outline, and build everything else from that.

    Room editor demo
    2. Drawing a room

    A room is stored as points and the edges between them, and I edit it straight in Unity’s scene view. With a point selected, Ctrl+click drops the next one and links the two, so I trace the outline corner by corner. Hold Ctrl over an existing edge and it previews a split, dropping a point mid-wall. Dragging moves a point, shift+click removes one, and positions snap to the grid. Every change goes through Unity’s undo stack, so Ctrl+Z works the way it should.

    3. From outline to built room

    Each edge carries a wall type I cycle with the arrow keys, so one outline can mix solid walls, doors, and handrails. From the finished outline the generator walks the edges into a loop and triangulates the floor with ear-clipping, which means any room shape works, not just rectangles. It builds the floor mesh and a collider extruded underneath, then drops a wall prefab on every edge, rotated to the edge and stretched to its length, picking the prefab from that edge’s wall type. It runs in edit mode, so the room rebuilds as I draw it.

    4. Built under time pressure

    I was product owner and the only programmer, so this tool was competing for time with every other system in the game. To get it built and deployed quickly under that, I leaned heavily on AI. It shipped and did its job, but it carries the marks of being built fast.

    5. Features list
    • Toggle edit mode with the E key or a button on the component; Esc leaves it.
    • Trace a room by selecting a point and Ctrl+clicking to drop the next one, linked to the last.
    • Ctrl+click between two existing points to connect them.
    • Hover Ctrl over an edge to insert a point mid-wall, splitting it in two.
    • Drag a point to move it; placement and moves snap to the grid.
    • Shift+click or Delete to remove a point or an edge.
    • Arrow keys cycle an edge’s type through the wall prefabs (solid wall, door, handrail); Space toggles a short wall.
    • F frames the camera on the selected point or edge.
    • Full undo/redo through Unity’s own stack.
    • Live feedback: points and edges colored by state, with a ghosted preview of the point or connection about to be placed.
    • Project-wide menu commands to regenerate, recenter, and re-snap every room at once.