
Innchanted
Overview
Innchanted is an online multiplayer co-op adventure game where players brew magical potions, serve otherworldly guests, and battle monsters in a fantasy inn. I joined the project in 2019 as Lead Programmer and saw it through to its 2023 release on Steam, where it achived a Very Positive review.
My role involved architecting and maintaining the core codebase from the ground up - building systems flexible enough to support rapid iteration by a small team of programmers, designers and artists, while keeping the codebase clean and maintainable throughout development.
Gameplay Trailer

AI System
AI is driven by a robust, scalable GOAP (Goal Oriented Action Planning) system. Actions and Goals can be safely switched out at any point during gameplay for full control over AI behaviour. It allows in-game helpers to assist players with gameplay tasks, and also controls monster behaviour.
In the example shown, a player delegates the helper AI to cook a steak for a customer. The player interrupts the cooking process, and the AI immediately corrects this by cooking another steak. Before it finishes, the AI is instructed to defend the inn — it promptly fetches a weapon and attacks the monster.

Level Configuration Editor
The level config editor tool enables selection of attributes for each individual phase of gameplay, including maps, events, dialogue and NPCs. Designers can configure each level phase independently without touching code, allowing rapid iteration on game flow and content.

Map Editor
The map editor allows for rapid prototyping of playable maps so designers can place objects with predefined rules. It removes the need for programmers to be involved in level layout, giving the design team direct control over the playable space.

Recipe Editor
The recipe editor manages how objects can be combined at each individual crafting station. Each station can have its own unique set of recipes, all configurable without code changes. This gave the design team direct control over the crafting system's rules and balance.

Shop System
All systems in Innchanted are designed to be self-contained, with a clean separation between logic and UI. The shop system is a simple example of this — a single call to Shop.Open() handles item selection logic and displays the UI, keeping the rest of the codebase decoupled from shop concerns.

Activity System
Players make meaningful choices that affect gameplay. The activity system handles gameplay tasks that offer unique choices for players, impacting the story or offering immediate effects. Activities are flexibly sequenced into the game flow via the level config editor.

Quest System
Quests are tutorial-like events that provide crafting and enchanting challenges outside the main gameplay loop. They are flexibly sequenced using the level config editor and usually include custom dialogue to assist players or provide story context.