Town of Salem 2 - Backend Migration
Town of Salem 2 - Backend Migration

Starting in August 2024, I began my second contract with Kittehface Software, working on the Town of Salem series for publisher Digital Bandidos. Shortly before the project began, the original developer, BlankMediaGames, had sold the franchise to Digital Bandidos, who sought to expand the game’s reach to consoles, deliver new content, and improve long-term platform stability. To support those goals, I was responsible for migrating the game’s backend systems to the third-party gaming service LootLocker.

The migration introduced several new technical challenges. The existing server codebase was written in C++, a language I hadn’t used extensively since college, and all systems ran on Linux, requiring a quick adjustment from a primarily Windows development environment. Fortunately, my prior experience with MySQL at Kaplan Professional provided a foundation for managing the game’s backend database.

As development progressed, numerous undocumented features surfaced, requiring timeline adjustments and coordination across teams. Integration with LootLocker also brought complexities in that some of their features were still in early release, and several were built specifically to meet Town of Salem’s requirements.

A major success from this project was building what I called a "schema deployment tool". LootLocker’s Admin API allows developers to configure high-level platform features (game assets, catalogs, currencies, and more). Rather than setting these up manually, I created an automated tool that deployed all configuration data into LootLocker with a single button click. I started working on this tool at the beginning of the migration and continued to add to it as features were migrated. This ensured development and production environments stayed in sync, and it eliminated hours of repetitive, error-prone manual setup across hundreds of assets.

The migration also involved handling approximately 650,000 player accounts. While not massive by industry standards, this dataset required careful transfer planning. LootLocker ultimately managed the import directly within their systems to ensure optimal load performance.

This project significantly expanded my experience with Linux, C++, and large-scale service migrations. It also marked the first time I used LLMs (large language models) as an active development aid, serving as both an on-demand tutor for C++ syntax and a sounding board for architectural decisions.

Technical Skills and Experience
- Reading, writing, and debugging C++ code
- Managing MySQL backups and exploring unfamiliar database schemas
- Using MySQL Workbench to write and maintain SQL scripts
- Compiling and running C++ projects on Ubuntu Linux (headless)
- Working with standard Linux terminal tools
- Integrating with the LootLocker third-party SaaS ecosystem

General Skills and Experience
- Writing code documentation and developer/admin user guides
- Working directly with third-party client integration teams
- Attending weekly check-ins, reporting progress, and communicating blockers
- Managing project expectations and providing estimates based on time tracking and velocity

More artwork