Let the Game Time Begin

A couple weeks ago at the Turing School of Software & Design, I was about to start the project I was most excited about: Game Time. Game Time is the project which really plunges us deep into the depths of the JavaScript jungle, armed with only the debugger and the all powerful console.log(). I was excited to finally dive head-first into JavaScript, hopeful of coming out a better developer. My project partner, however, had other plans.

“Hey, Jon!” he said. “Let’s do our Game Time project in Java!”

Being the inquisitive programmer that I am, always ready to take on new challenges, I did what any other person in my position would do.

“No.” I said. And that was that.

Three days later we were ready to start our project in Java. We’d set up Eclipse, we’d done a bit of a trial run in Java over the weekend, and we’d found a Java mentor (seeing as no one at Turing had enough Java experience to help us, or they wanted no part in the dumpster fire that was sure to come).

This whole ordeal was an interesting conundrum. On the one hand, we wanted to stand out with our project, and to take a risk that would benefit our programming education. On the other hand, neither of us knew Java. By the time this really sunk in, it was too late. The project had started.

We started off by reading/watching various tutorials on 2D game development in Java, and found a few good ones which we would reference for direction throughout the beginning stages of our Java adventure. Unfortunately, we lost an entire day compared to our JavaScript counterparts; we had to implement the window and the canvas on which we’d render our game. Not only were we behind in terms of technical knowledge of the language, but we were now just behind in general. Fortunately the process was fairly straight forward and we were able to implement the window and canvas without any major difficulty.

By day 3 (out of 9), we found our development speeding up to match the JavaScript projects. Once we got comfortable with the syntax, and became comfortable with the flow of the language, we found that Java is not all that different from Ruby and JavaScript. Our thought processes were the same, and our implementations similar, we just had to deal with things like statically typing everything, abstract classes and functions, and Java’s visibility/access system — having to decide for every function or class level variable whether it should be public, private or protected.

By the beginning of week 2, it was starting to feel automatic for me, and I was actually starting to like the language a lot. While we were learning on our own, we were also getting important information regarding the intricacies of the language from our mentor; stuff we’d never figure out or know to look up. We were practically done with all tutorials, and implementation was done with our existing understanding, or quick trips to the library’s docs. It was looking like we just might be able to pull it off.

About two days before the project was due, we finally had a bit of a working prototype. We had a player which could move around the screen and shoot bullets wherever the mouse was pointing. We had enemies that swarmed and followed the player around the screen. It was MVP status, and we were finally able to really appreciate what we’d accomplished. The list of things to implement dwindled as quickly as the deadline approached.

Finally our day of reckoning arrived. Our game was not even close to being the prettiest or the most inventive, our classmates far exceeded us in that regard. However we managed to accumulate one of the highest scores in the class because of the risk we took by making our game in a language neither of us knew at the beginning.

Our risk paid off big time, and I absolutely walked away from Game Time better for it.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.