Episode 2: The Framework

In this post I’m going to talk bit about how and why I chose my programming language, IDE, and framework.

JavaScript

When I started this project, I was familiar with a number of languages including Java, C++, and PHP, but I had recently spent a lot of time using JavaScript for some web stuff, so I was kind of in the JavaScript zone. In addition, I really liked the idea that I could just upload the game to my website and let people play it in a browser, regardless of platform. I also love the fact that rebuilding my project means saving a text file and refreshing the browser. The console is also pretty awesome for debugging.

For these reasons I chose to use JavaScript as my programming language.

Sublime Text

I’m going to say something controversial right now. I use Windows. I’m sorry, and I regret it every time I talk to other programmers. I know I should have a MacBook Pro and be using the Linux terminal for everything, but I’ve always owned a PC with Windows, and I never used the Linux terminal until university.

Anyway, I had used Nodepad++ and other text editors in the past, but a friend had recently told me to check out Sublime Text, so I did, and I liked it. Sublime Text lets you open multiple files at once, save projects, search and replace in multiple files, customize colors and highlighting, and much much more!

Phaser

As I mentioned in the previous post, I had never used a game engine before, so I really had no idea what I was looking for. I basically Googled “JavaScript game engines” and quickly chose one that had good examples and documentation.

Having only used Phaser, I can’t really speak about its strengths or weaknesses. However, it seems easy to use, especially for 2D sprite-based games like Zyrian. I’ll talk more about Phaser in future posts, including examples and everything.

Introduction: Cloning a Classic

Tyrian is a top-down scrolling shooter released in the mid 90s, and it’s one of my favorite games.

It was developed by Epic MegaGames, which produced memorable titles like Jazz Jackrabbit, One Must Fall: 2097, and Solar Winds. Tyrian is beautiful and polished, filled with interesting and diverse enemies, worlds, and weaponry. It also features an interesting mana mechanic that uses generators and power consumption.

into-gameplay

Having grown up playing video games as a kid in the 90s, it’s hard to separate the appreciation for a well-crafted game from nostalgia, but if you’ve never experienced the wonder of DOS games, I highly recommend installing DOSBox and heading over to Abandonia.

I could go on about how much I love Tyrian, and I will in future posts, but the point here isn’t simply to praise the original game, but rather to document the creation of a new game – my game.

Before I talk about this new game, you should probably know that I’m an amateur programmer who enjoys thinking and talking about games more than actually playing them (and I enjoy playing them very much). Rather than tell you my life story, here are some of my stats:

  • Born and raised near Vancouver, BC
  • Can eat the same thing every day
  • Diploma in Computer Information Systems
  • Married with a cat and no kids
  • Terrible at remembering dates
  • Awesome and remembering movie and TV quotes
  • Fisherman and fan of mixed martial arts

Now that we’re close friends, let’s talk about my game.

About a year ago I began writing down my game ideas in a text file. After accumulating over one hundred pages, I finally began to bring one of the ideas to life, and thus Zyrian was born.

game-ideas

That’s right, I called it Zyrian. I chose this name because I wasted a lot of time trying to think of an awesome name, but I couldn’t.

I’ve started many programming projects over the years, and like many amateurs, I finished very few of them. Also like many amateur programmers, I tend to spend more time thinking of cool new features to add rather than working on existing ones. And after working Zyrian for about a month, I dropped the project to pursue other interests.

After watching some presentations on the importance of finishing projects and developing a portfolio, I decided to force myself to finish Zyrian. So 6 months later, I picked up the pieces.

On a side note, it becomes clear just how bad your code is when you have to dive back into an old project.

It’s now 5 months later, and I’m still plugging away at the game. I’m not sure how close I am to being finished (probably because I’ve never done something like this before), but I’ve definitely come a long way.

This is this the story of the making of Zyrian – a Tyrian clone made by an amateur programmer who’s never published a game. I’ve learned a lot so far, and I hope I can pass on some of that knowledge to you.