I never got the chance to play with Unity but I am seeing more and more games developed entirely with it. I thought that Unity requires developers to pay a license but it seems that the free personal version gives enough stuff to do the job. I found it when I have looked to the game Dungeon of Zaar. I was very surprised to see that the game was developed with this type of license. The game looks neat and is available on several platforms.
So I have decided to give it a try and see how fast/easy it is to develop with Unity. This could give me some idea for future development.
So finally i have tackled this nasty bug in my game which makes all my animations really weird when using a tool like a shotgun… it was very difficult to find it because there was a mix of action cleaning stuff with states check routines and, at the end, my code was really difficult to understand.
So to track it, I have refactored a lot of code in order to make me understand what happened. The final code is still complicated and I am not satisfied with it but at least I can now continue to implement ranged attacks.
The cool thing is that to track the bug, I am now able to decrease/increase the speed of the game with a keyboard shortcut. I am sure this would help me a lot for future bug tracking.
All this thing make me realise that it is very difficult to debug a game because of the real-time process:
- you can’t really use breakpoint because they will stop the process on every frame.
- you could use a conditional breakpoint to reach a bad state. You will be able to see the context but you will not be able to track all the history.
- forget to log every step, you will have zillions lines of logging where it will be difficult to find any relevant information.
- some would tell me to unit tests but as I explained above, it so dependent on the context that it is difficult to reproduce it.
I don’t know how real game studio are working but I am sure some technics (that I don’t know) exist.