Posted October 14, 2025 by NimueS
Originally when creating this system I had some basic goals and parameters, as I kept developing the game and came across new use cases and design ideas I had to expand the inventory system to cover all use-cases. Here you will find a technical break down of my programming and design decisions.
The purpose behind the inventory system was to create a dynamic "heavy" mechanic where the player had to carefully choose what to pick up and what to leave behind. The inventory should feel physical, items hsould have shape rotation and limitted space. Dredge was a huge inspiration for this as the inventory in that was incredibly robust and thematic.Similarly, I wanted to create objects that the player wants to discover, to look at, and to learn more about. I was also incredibly inspired by the shape rotation puzzles where the player has to carefully piece together different items to fill out a desired shape, unlocking a hidden interaction.
Design Consideration | Mechanical Requirements | Rational |
Tactile and Spatial | Tile-based placement, rotation support, collision checks | Items occupy physical space in the grid and must be manually fitted and rotated, giving a sense of weight and realism. |
Thematic coherence (scarcity & resourcefulness) | Dynamic grid sizing, restricted cell logic | Limited and varying inventory space reinforces scarcity; specific slot types tie into world design and narrative logic. |
Meaningful choice | Collision checks, limited grid capacity, drag-and-drop logic | The player must rearrange and manage limited space, creating small but impactful decisions during exploration. |
Readability | Grid layout system, information display, visual polish | A clear grid and contextual info ensure that players can interpret their inventory at a glance, despite its constraints. |
Environmental storytelling | Information display, persistence system | Items persist across play sessions and carry lore text or descriptions that build the world without explicit dialogue. |
Modular design | Held item rendering, drag-and-drop logic, UI layering | The DragCanvas ensures smooth visuals when moving items, keeping the UI clean and visually consistent. |
These design considerations shaped every aspect of the inventory system, from the way items snap into place to how players interact with them visually and mechanically. Each choice — whether for spatial realism, narrative weight, or modular flexibility — informed the code and structure of the system. With these goals in mind, I structured the inventory around a dynamic, tile-based array system that could handle rotation, placement, and interaction across multiple contexts. The following sections break down the system step by step, starting with how the underlying array and data architecture was implemented.