I spend most of my time at Alterego Games working on a yet to be released sports simulation game. Within the game the user interacts with the physical simulator, allowing to be used as a training tool for amateur to semi-professional athletes as well. Therefore, one of the main goals for the game is to be as realistic as possible.
After 10 months on the project, I was assigned as the lead developer. In a development team of 6 programmers, and total team size of 15 people across 3 companies and locations.
The full code architecture is module-based, which means that all the code is split up into standalone chunks. Where individual modules are only able to communicate with each other through a custom event system. This setup certainly had some major advantages but also disadvantages. It was generally easy to work with multiple developers at the same time, because you would encounter no merge conflicts when people worked in separate modules. However, it proved difficult to keep the modules as standalone as possible. Over time, dependencies between modules would slowly start to creep in. So, one of my main tasks as the lead developer was to identify and prevent these issues.
We delivered a closed alpha build of the game. Which includes full playability of singleplayer and local multiplayer matches in the essential game modes. And communication with a remote database to retrieve online level and localization data. With the next milestone being implementation of the online multiplayer. Unfortunately, shortly after this our company stopped working on the project, due to a change in collaboration between the companies.
Things I have worked on include:
- Unit localisation system
- Syncing compressed level data with server
- Offline lobby system
- POC crowd system
- Camera movement system
- Material detection system for physics calculations