my Konami Slots
Mobile Client Engineer
Available on iOS, Android, and Kindle
"Play top casino games at my KONAMI Slots anytime you feel the need for a little casino fun or a quick escape. my KONAMI features some of the favorite slot machines straight off the Las Vegas casino floor, like the MGM Grand casinos, the Aria, or the Bellagio!" - Google Play Store Description
my Konami Slots is developed on the front-end with Unity and is data-driven on the backend using AVA configs. As a front-end engineer, I worked primarily on the LiveOps team, creating and maintaining our event system. The biggest contribution I made was the "Choice Event" update. Prior to this update, events always ran sequentially; a player would be enrolled into an event and be placed into the first node. Upon completion, the next node data would load and they would progress to the next node, and so on, until the event was completed. With the "Choice Event" system, players could now select which node they would progress to. While conceptually simple, this change required the dialog system to be refactored. We could no longer load up the next node's data, since we didn't know what the next node was! Changes were required to update the event data as the dialog was open, as well as populating the dialog's animator appropriately. I also took this opportunity to clear up some tech debt, such as abstracting the event button, separating the purchase system from the dialog scripts, and cleaning up the Unity inspector window with custom editor scripts.
Another major refactor I did was changing the LiveEvent server call stack. It originally ran entirely on coroutines which, while functional, was an obstacle to program around rather than a real help. I moved the LiveEvent system to using async/await, which let us keep the same functionality, but made the code much easier to maintain and follow, and didn't require any coroutine-set gates to ensure the data was received.
One skill I learned that was unexpected was using the Unity animator state machine. As the work pace for LiveOps is brisk (to put it mildly), we needed to rerun older events in order to fill the calendar. The tech artists were focused on new content, which left engineering with this task. With 12+ of these refreshes under my belt, I'd say I'm pretty confident in using animator parameters, layers, and blend trees now.