Plan. Plan. Plan. Plan. Plan.
If I have learned anything this week is that you need to be planned out before you start. It almost seems unfair, because the things I didn’t know I needed to be planned for were the things that hindered me, but that’s why I’m doing this, so that I can conquer ignorance.
Because of my hours I work I new I really wasn’t going to have any lengthy amount of free time until Saturday and Sunday. Knowing this I did a lot of setup during the weekdays so that once the weekend came I could really get to work. Since this is the first week, I planned to create Pong. I have never “finished” a game, let alone published one, so I wanted my project to be super easy so I could figure out what I needed to do to deploy, publish and release a game for the first time. I was very frustrated finding a lot of unhelpful posts on various websites on how to “fix” deployments for html and android and I felt like I wasn’t going to be able to ever figure it out. I ran into small issues like not having the correct plugin for my IDE and just straight up not understanding a lot of terms, feeling like an idiot, and getting lost.
But, now I do know…at least a little more than I did before.
When I set out to do this my focus was set to be on finishing a game. I found myself wanting to add a feature here or there to spice up something as bland as pong. For example: letting a second player option exist, having particle effects on the ball, or making the AI better. All these things were doable, with just a little more time. In fact, I realize that’s always been my approach in the past. That with enough time I could finish something. By taking awake “infinite time” as a resource and making a set deadline, I was really focused on getting to an endpoint.
The one feature I did modify from regular pong is that every time the ball bounces off a paddle it increases speed slightly. It didn’t take much time to implement and it was just on a whim, but I found myself play-testing the amount of speed increase to what felt right and realized I was just wasting time. A feature that took all of two extra keypresses to enter ( “speed *= -1” became “speed *=-1.1”) was costing me a lot more time than “it’s just two keypresses”. The code didn’t take the effort, it was me trying to understand the effect it was having. Additionally, the wanting to add a second player option was taking up too much time. I thought about how you let the player choose that option, likely with buttons. Where should these buttons go? How should they look? What should they say? Should they animate when pressed? Do they need a sound effect? And then it takes time to test out each of those answers…and sometimes there’s more than one answer…which is the best? Could I have done these things? Sure, given enough time.
Lessons learned: Plan ahead and Adding features cost more time than you think.
Week 2 coming up!