Reflection #3
For Design Challenge #3, I decided to create a simple 2D platformer. At least, when I was envisioning it, I believed it would be simple, but in reality it turned out to be a lot harder to construct than I had initially thought. Although I’ve made a few games in Unity, both 2D and 3D, I had only ever experimented with the physics engine while making 3D games. In this environment it feels very natural, and I never had too much trouble getting everything to work the way I wanted it to. I had believed that things would be even easier in 2D, but the exact opposite was the case.
Very early into testing I realized that the collision detection in my game was a bit wonky, especially when moving to the left and to the right. The built-in Unity Physics seemed to handle collisions just fine when moving up and down, but my character would get stuck on walls if I tried to move into them from the side. After a few failed attempts at fixing this, I decided to make it an intended gameplay mechanic, and I designed the final level with that in mind.
When I recorded the footage for my design challenge, I mentioned that my dad had been able to break the level by spamming the jump button. I even said that this was a silly oversight on my part and that I corrected it later, but I forgot to mention one small detail. I had always intended for there to be a cooldown on the player’s jump, and I had tested to make sure that it was working while designing the first two levels. However, when I was attempting to implement the wall jumping mechanic for the final level, I ended up changing the code, and this resulted in the jump cooldown breaking unintentionally. Since I didn’t realize this, it was still broken by the time my dad tested the entire game, and he managed to discover it while playing. This was an especially valuable lesson for me, as it made me realize that it’s important to test EVERYTHING about my game when I make a new version, rather than just testing the new things that I added.