Model the domain explicitly
Separate records for characters, class experience, equipment, memberships, and invitations reflect distinct parts of the game.
CASE STUDY 09 / AI & platforms
A shared world with rules that hold together.
A Ruby on Rails game platform bringing characters, sessions, maps, encounters, and game membership into a shared application.
Ruby on Rails · Relational modeling · Interactive applications

01 / THE CHALLENGE
A shared game involves much more than a character sheet. Players, permissions, equipment, encounters, maps, and session state all need to stay connected without losing the structure of the game’s rules.
02 / THE SOLUTION
A Rails application models games, invitations, memberships, characters, equipment, spells, and world maps. Controllers support gameplay workflows including combat, dice rolls, map reveals, and encounter cards, alongside account and session management.
03 / ENGINEERING DECISIONS
Separate records for characters, class experience, equipment, memberships, and invitations reflect distinct parts of the game.
Rails with Turbo and Stimulus supports interactive workflows while keeping the application rooted in a server-rendered architecture.
Created, joined, and joinable games form separate entry points for signed-in players.
04 / WHAT IT DELIVERS
A Rails codebase covering character management, game membership, world maps, and gameplay tools, with PostgreSQL as its relational foundation.
Explore empirewargames.net ↗ (opens in a new tab)THE NEXT CHAPTER
MICHIGAN / WORKING EVERYWHEREHave a challenging problem or a role in mind?
I’d like to hear about it.