← All projects

CASE STUDY 09 / AI & platforms

Empire War Games

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.

ENGINEERING FOCUS

Ruby on Rails · Relational modeling · Interactive applications

TECHNOLOGY
RubyRuby on RailsPostgreSQLHotwireStimulus
Visit the website ↗ (opens in a new tab)
empirewargames.net↗
Empire War Games website interface
PROJECT INTERFACE / EMPIRE WAR GAMES

01 / THE CHALLENGE

The problem worth solving.

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

How it comes together.

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.

01Player + membership
02Game session
03Rules + world state
04Shared experience

03 / ENGINEERING DECISIONS

The details make the difference.

01

Model the domain explicitly

Separate records for characters, class experience, equipment, memberships, and invitations reflect distinct parts of the game.

02

Use server-centered interaction

Rails with Turbo and Stimulus supports interactive workflows while keeping the application rooted in a server-rendered architecture.

03

Keep game access organized

Created, joined, and joinable games form separate entry points for signed-in players.

04 / WHAT IT DELIVERS

From the idea to the experience.

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)
KEEP EXPLORINGBertram Technology Solutions↗

A direct connection to the person building it.

THE NEXT CHAPTER

MICHIGAN / WORKING EVERYWHERE

Good work starts
with a conversation.

Have a challenging problem or a role in mind?
I’d like to hear about it.