Programming responsibities:
I was responsible for creating various systems for the Age of Zombies remaster.
1) The save system - This uses the Unity component system to help with saving all objects in the scene.
An object needs to have a Save component attached, and the first time this is applied in a scene it will give that object a unique ID which it will be saved with and will reuse when the data is being loaded.
Any data can be saved in this system through using a dictionary and saving the dictionary in the save system as an object. This does mean you have to be very specific with the data types when loading the data back to where it needs to go but it's not bad for a first attempt.
The data is saved using the C# binary formatter conversion.
2) Achievements - Created an achievement system that handles the tracking of stats and the checking of when the acheivements have been achieved. This includes creating a pop up notification that uses a queue to load up any sequential achievements that the player has gotten.
3) Wave system - This handles the timing, max number, tyoe of zombies and bosses that spawn in every level. This was the system that took the longest to get feeling correct and working as well as the previous version. This involved a lot of interation and playtesting to get right for the game.
4) Leaderboards - This involved working with external api's in Google play services and iOS GameCenter. The leaderboards work slightly differently on the two different operating systems. With the iOS leaderboards for horde mode, you will see the 10 ten scores and your score will be added to the bottom if you're outside of that, if you're good enough to get into the top 10 then it will show correctly.
The Google leaderboards show the 10 scores around you're best score.
The connections needed for the leaderboards also integrates with the achievement system and the relevant services.