Role: Unity Developer
Technologies: Unity, Firebase, Xcode, Android Studio
Duration of my involvement: 2.5 years - from the initial idea, well into LiveOps (mid-2019 - early 2022)
Team - Varied in size: 3-12 developers, 10 writers, 5-10 artists, 1 game manager
Company: Webelinx Games
Storytelling gameplay with short cinematics and choices that branch the story
Configurable main menu and gameplay parameters using RemoteConfig
Configurable live events and episode releases through RemoteConfig
Dynamic asset loading with assets that can be individually updated server-side
Simple per-story main character customization at fixed moments in the story
Player progress saving (current episode, customization, choices) for each story
In-app purchases
Identifying and defining tasks for the team to work on and validating the finished work afterwards
Recommending, implementing and supporting a Git branching model for ~50 contributors across different disciplines
Implementing and incrementally releasing asset caching using Cloudflare in coordination with the CTO
Fixing and refactoring a faulty Unity editor module for story customization
Implementing A/B testing capabilities for game settings and features
Aggregating technical ANR data and extracting meaningful conclusions
Implementing a currency system for tickets and gems
Google Play was reporting a big number of ANRs, but gave no specific data on why it was happening
Used BigQuery to extract the game screens where the ANRs happened and summarized the findings in a document for the rest of the team
Tracked releases and ANR rate over time to try and pinpoint their cause to specific features
The team was using a single-branch Git model, creating technical problems for the content teams when the development team was collaborating on an unfinished feature
Recommended that all content contributors use a "content" branch, and the functionality contributors use a "develop" branch, which are merged periodically, taking into account the state of the develop branch
Oversaw this change and adjusted the Git model as needed
The main game loop code was overly complex, using recursion and flags to traverse the story, making any change difficult due to the complexity of the method
Defined the expected behaviour and unit tests and delegated the task to the dev team. After implementation, the system was easy to understand and to modify