Friday, July 10, 2015

No, I Don't Want Your Help (but I will later)

The tadpoles that have been in the comic this week have actually been hanging around for quite a while. They actually pre-date the entire comic. I created the tadpole image back in November 2013 as part of my first entry in the GitHub Game Off.

I did write a post about that game back in December 2013, but it wasn't nearly as detailed as my posts concerning my entry in this year's Game Off. When I was thinking about the game, I was reminded of one of my unfortunate personality traits: I have to do everything the hard way the first time.

You can look at the source code for the 2013 game just like you can for the 2015 one. One thing you might notice if you look closely is that I used no HTML5 or JavaScript game development library back then. It's not because I didn't know of any. It's because I really need to figure out how to do it myself before I can use a library to do it for me.

"That doesn't sound so bad," you might say to yourself. But for a game competition it probably put me at a disadvantage. I could have spent more time making the game play better instead of fixing bugs with the keyboard inputs. There are more lines of code in the 2013 game despite it being much more basic. Why am I like this???

The positive side of it is that I learn a lot about what things are easy to do and what things are difficult. This usually helps me when I decide to use a library or utility the second time around. For example, when I did the Game Off 2015 using the Crafty JavaScript game engine I was able to immediately recognize why its API was structured in a certain way because I had structured my own engine the same way through many iterations of improvement. It was an excellent abstraction they used for the different "phases" of the game and I liked it. I also understood why they didn't use time-based movement of sprites but instead opted for per-frame movement calculation.

It's not just online games. I stubbornly kept implementing my own CSS manipulation functions for years before I finally decided to start using jQuery (well, I actually used Dojo first but eventually switched).

I think it really just does come down to my stubbornness. I like to do things for myself. Even when that wastes time. I need to work on this.

You can still play the 2013 tadpole game. Even though it's 100% hand-crafted, it wasn't such a terrible game. It didn't win, though.

The Frog Lifecycle Game
As an aside, once I start using a utility/engine/library/whatever I don't necessarily stick with it as stubbornly as I stick with my own code in the beginning. I am actually experimenting with Phaser now for HTML5 games. Not that Crafty was bad, but Phaser has more of what I'm looking for right now. Remember when I said I was going to make a 404-page game? Yeah, I'll be talking about that soon...

So check out the tadpoles in today's comic. This might be the last time they appear for a while. I'm not sure where that train goes. comic for 10 July 2015