Starting in August 2024, work began on my second contract with Kittehface Software working on the Town of Salem series for the publisher Digital Bandidos. Shortly before this project started, the original development studio BlankMediaGames sold the rights to the game to the recently founded publisher Digital Bandidos. The publisher had a vision for bringing fresh content to the game, opening up access to console players, and increasing platform stability. Part of the plan for platform stability included migrating the backend server systems to the third-party gaming service platform LootLocker. I was tasked with this migration.
The migration presented several technical challenges. The most immediate for me was working with server code written in C++, having only used the language for a few semesters in college along with some personal tinkering here and there over the years. Also, everything was running on Linux servers, so I needed to get my Windows brain adjusted to Linux terminal in short order. The backend database was MySQL, which was one technology I thankfully had some experience with from my time at Kaplan Professional.
Over the course of development, numerous undocumented features emerged, requiring timeline adjustments to accommodate the overall migration. Other challenges included integration issues with LootLocker. A number of their features were fresh off the press, some of which they created specifically for this project.
One aspect of this project that I thought went well was the creation of what I would call a "schema deploy tool". LootLocker provides an Admin API, which allows for setup of core platform features (game assets, catalogs, currencies, etc.) rather than in-game functionality. From the beginning of the project I maintained a separate tool which was able to deploy all of the setup within LootLocker with the click of a button. This ensured that whatever we were looking at in LootLocker was the way it would look when deploying to production. This saved many, many hours of manual work creating hundreds of game assets, not only a time consuming task, but error prone as well.
The quantity of player data also presented a slight challenge. Although not nearly as massive as some player or customer bases, there were around 650,000 player accounts worth of data to migrate. LootLocker preferred to handle this data in their system to ensure the fastest possible data load.
I walked away from this project with new skills and more experienced in Linux, C++, and general migration project management. In addition, this was the first project in which LLMs played a bigger role in my development, primarily functioning as a tutor for C++ and rubber duck for an assortment of code 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