Bug Fixing


Advise
Realisation

Design Challenge

This devlog contributes to the design challenge: "Improve the sustainability and expandability of an existing game so future developers can add and edit the game more easily in the future."


Context

Leading up to the release of a new SugarVita release, a lot of little bugs and quality of life improvements needed to be made. All of these are way too small to write about but all combined they serve an important purpose in the internship. 

How to find and solve bugs in a complex game?


Methods

Lab - Usability Testing

First, I simply started the game and started looking for unintended behaviour in the game trying out different button combinations and unexpected actions. Even though I test the game every day, there are still quite a lot of things I didn't consider being a problem until I went ahead and tested the game objectively. Out of these tests, I've created a list of bugs I found. When I fixed the bugs, I repeated this step about 3 times.


Field - Stakeholder Analysis

I asked the stakeholders if they knew about any bugs or small improvements they wanted to be made. They told me about a problem with the game being stuck on the loading screen on phones. I told them this was no longer a problem because of the upgrade of the Unity version I did earlier in my internship. 


Lab - System Test/ Workshop - Prototyping

After that, I started working through the list of (potential) bugs and got working on them in code. Most of the time, these bugs were quite simple to solve, however two bugs stood out. 

  1. The first one took quite a few days to find the cause of but the solution was rather simple. The glucose values of a virtual opponent didn't add up at the end of the game. The glucose calculation is a very complicated algorithm considering 40+ values. For the player everything worked as it should. I've been debugging manually, setting breakpoints, walking through the code in places where the graph at the end didn't seem right. After a while not finding any problems, I noticed the calculation being offset by 20 times the amount of the first dice-throw. This turned out to be the problem.  At the start of the game, the dice panel gets lazy-loaded and re-loaded to throw the dice however the virtual opponent throws their dice on enabling the panel which caused the calculations to calculate twice. 
  2. The other bug was a miscalculation on seemingly tablets which caused the game to be unplayable. Most glucose values get read from a file which works perfectly fine. However, while testing with tablets and old Android versions, I noticed the values not adding up making the game unplayable. While the problem seemed to be in the Android version, it was all due to the system language. The older devices were set in Dutch and in this language, a dot in a number is seen as a thousand so the values were multiplied by 1000. The temporary fix is to temporarily change the games language to English while reading the file and changing it back when the reading is completed. 



Result & Validation

After implementing these changes, I explained and showed the stakeholders the problems that were solved. I found some bugs that have been there since the first release. They didn't expect me to find this many bugs and were happy with the result. 


Next step

Now all bugs I could find are fixed, I can move on and focus on the release of the game. Of course, the release should include the least number of bugs possible.

Spring 2022
Fontys University of Applied Science
Jasper Cueleanere 
Mogelijk gemaakt door Webnode Cookies
Maak een gratis website. Deze website werd gemaakt met Webnode. Maak jouw eigen website vandaag nog gratis! Begin