Racing Rivals

Racing Rivals


Platform: Mobile (Android/iOS)

Tools Used:  C#, Unity

Duration:  5 months

Team Size: 25

Role: Software Engineer

I joined the Racing Rivals team in mid 2016, and was immediately thrown into important features and optimizations. I helped take existing features and re-purpose them for new gameplay. But my most important tasks involved refactoring and optimizing many year old code that had previously been ported from objective-C to C#. Some of the my work has included:

  • Expanded existing code to create new stand alone features
  • Added in a graphics auto-detection feature to ensure older devices could play
  • Helped implement local and remote push notifications
  • Fixed issues with the socket server connections
  • Refactored different existing features in the game to allow them to be expanded in the future
  • And more!

Programming Choices:
The hardest part of joining the Rivals team was working with a code base that was aging, as well as had originally come from objective-C. This meant that many existing features/systems in the game were not written abstractly, and would be impossible to expand if needed.

One of those systems was the User Settings menu. Originally it was written so that most of the UI functionality and the logical callbacks were all in one giant file, and each setting "block" was written as an if/else statement. Basically, everything was as hardcoded as it could be. 

I spearheaded the task to refactor this entire system. I separated the UI functionality from the logic callbacks, and a system of inheritance. There was a base SettingsCell component which housed the UI display and functionality for one setting item. And there was a base SettingsDataObject that contained the information about the titles on buttons, colors, etc... as well as the callbacks for when a button was pressed or a slider was moved and so forth. Then more specialized versions of these components would inherit from their base class. Finally one controller housed the actual function calls that would happen when data for a setting was changed and so forth. 

Refactoring this system gave us cancel functionality when selecting settings, as well as making it extremely easy for new settings to be added. Just a few lines of code can add any setting that the designers/artists wanted.

Racing Rivals © 2016-17 Glu Mobile Inc. All rights reserved.

Racing Rivals © 2016-17 Glu Mobile Inc. All rights reserved.