All content © 2022 DigiPen (USA) Corporation, all rights reserved.

Solo Project (DES301) -
Marble Rush Racer

Technical Design
1/20-4/20
JSON Serialization and Deserialzation - Unity

One of the challenges I tried to push myself on with this project was creating a system of dynamic JSON files that would save player data and react according to this saved data. The system is two-prong in that there are two files necessary to play, but otherwise the game is self-sustained. The Rank Times JSON file allows me to remotely set what each of the time thresholds are for each rank of each level, and the High Scores JSON file informs the game of what the top scores of each level at each rank are, and will display them where appropriate.

One of the side-affects to this system is that when we turned to remote learning, I could use the High Scores JSON files to get an idea of where players were scoring within levels remotely, and can put them into a spreadsheet that will give me the breakdown of what numbers times players are scoring at for each level.

This system is complex but relies on a couple of scripts for writing and reading, and everything else references these scripts. I've included the spreadsheets that illustrate this data being extrapolated. I wanted Gold rankings to be achieved by around 30% of the testers, to make it more challenging. Silver is a broader category that should be closer to 50% to allow for that improvement, and Bronze should be around 80% so that players don't feel like they are incapable of improvement. Showing up on the leader board at all is better than not being given a rank, without making it so easy that it includes all and detracts from the challenge experience of the game.

Code samples of this system are below.

Additional Documents - Code Samples
Collapsible Achievement Display
JSON Serialization of Scores
JSON Deserialization of Scores