Snake Invaders: My First Video-Game Release

Hi there, my name's Jonno. I recently started calling myself an indie developer after really knuckling down with my work in programming and game design over the last couple of years and finally deciding on a studio name: 7Space Games.

To start things off, I made a video intro for your entertainment:

To further contextualise my apparent desire for money from this project above anything, I should explain that one of the reasons I worked as fast (and hard) as I could on this project is my dire need for a new computer. Half way through development, my laptop burst into flames. This was expected, as for a couple of months I was keeping my laptop out of its case in a very risky position on my desk due to some technical issues:









I'm currently borrowing a friend's laptop and (amazingly) will be until I get my new machine.

So as the video says, this post is a little more personal than your average "play my game please" post - I wanted to relate exactly what it means to me to have developed and released a game, and give anyone who's interested in actually performing this kind of work themselves a bit of insight into the work involved.

My History: The Build-Up to Snake Invaders
I'll start off with a silly fact: I've dreamt of saying "play my game" since I was eight or nine years old. Back then, I played Prince of Persia: The Sands of Time, and that for me was the first game experience that left me genuinely stunned. Since finishing it I've known that my eventual career choice would be to make games, even if as an eight year old there's no way to comprehend what that means in practise.

The upshot of deciding something like that so young is that I've spent my entire life subconsciously building interest in the key areas I need to be skilled in to produce games while keeping a very close conscious eye on the gaming industry and absorbing as much knowledge as I can, on both the superficial and technical level. If someone asks me now "what do you want to do?" there's no thinking involved; completely automatically I will reply "make games." There is quite literally nothing else I feel I am suited for and nothing else I can imagine myself doing.

When I realised this fully, I decided to start approaching it seriously. I sat down one day during a College break and wrote down a list of things I'd need to know and be able to do to produce video games by myself as an indie developer. This is also the day that I took my programming work outside of College for the first time; I found an online, free, Java textbook called "JavaNotes 6" (by David J Eck) and began reading. I read and worked and practised day and night for the entire summer, so that when I came back to college for the second year I'd be able to produce a game for my Computing coursework piece.

For the coursework, I had to work under someone else's creative control - the premise of the project is that someone's given you a task and you have to fulfil it and evaluate afterwards. I jumped through some loop holes and ended up making a game, which my friend Mirea (the designer) called Maze Blitz. I worked on it for around six months, and as my first 'big' project I feel that it gave me the fuel and experience I wanted it to.

Maze Blitz is essentially a 2D dungeon crawler; you play as a little...thing...who moves around mazes, blasting enemies in the way for experience points that can be spent on upgrades and ultimately trying to solve the mazes through navigation. There're power-ups, five weapons to upgrade to five levels each, and a number of enemy types. The game is a little buggy, especially on level one where almost no enemies work properly, but the project was still a success.
Here's a video I made towards the end of my work on it, showing off the gameplay and then moving into the upgrades system (alpha footage):

This was all around a year to two years ago now. Since then, I've taken part in many game development competitions called Ludum Dare 48, where developers have 48 hours to produce a game based on a theme from nothing. I've also extended my individual learning to push my skill in Java to what I would call a comfortably experienced level, pick up a couple of extra languages and start working with the hardware accelerated graphics library, OpenGL.
I've also prided myself on being completely transparent with my game development; during my work I like to make videos to explain what's going on and what I'm working on, especially if the project in question is a big one. You can find loads of videos on my Youtube channel that display features, talk about issues, and generally show the games in states that you don't normally see games.


From Then to Now: Working on Snake Invaders
Just before my laptop blew up, I was playing with a concept that sprouted from my working on a Pong game that renders with OpenGL. The concept was a mash-up of Pong, Space Invaders and Snake. I talked to some friends about it and decided that hell yes, I was going to make this game.

My original concept was that each game would get its own mode, with players being rewarded for good play through power-ups that all pertained to retro throwbacks. I also wanted a modern swing in the design to add a little to these age-old designs, so I picked up a tutorial telling me how to create and render 3D scenes and came up with this:

As with any project, as it matured it changed a great deal. I realised quickly that incorporating Snake would be a challenge in both a technical way and in a mechanical way, as my vision had quickly adapted into a round-based arcade-y title that pushed players to become more skilled instead of rewarding them for being the best. I eventually went with the current design, where the player and his opponent battle it out in Pong Mode before switching to Snake Invaders Mode where the player who lost Pong Mode would have an opportunity for a power-up. I explain myself relatively thoroughly in this video, which I made while finalising the concept:

So the final design turned out like this: you and your opponent play Pong, then when bot points + player points = 5, you switch to Snake Invaders Mode. The player who lost Pong goes to the bottom of the screen, and has the opportunity to shoot the Snake that is moving around and setting up Invaders. Whether the Snake is destroyed or not, the remaining Invaders move as you'd expect them to and both players can shoot. The mode ends when there're no Invaders left, and if the bottom player got more points than the top player, he gets a permanent power-up for use in future rounds. This is designed to balance the playing field for losing players and force winning players to increase their skill level if they want to keep winning. The game is five rounds long and there is a declared winner based on total points at the end of the game.

The Workload
To give you an idea of the kind of work that went into this simple game, it took me forty four days to develop. During this period, I often spent as long as 30 hours awake at a time, working for at least half of the time I had spare, and through every single night. I kept myself sane with development transparency videos and drank inordinate amounts of coffee.
Admittedly I may have approached in a bit of an over-the-top way, but I see it this way: the game would've taken as many hours as it did to develop either way. I needed to release the game as soon as I could, and working in the way I did is the reason it only took a month and a half. I'm happy for my efforts and comfortable with the results.

In good news, the development taught me a lot, and the focussed time I spent over the last couple of months has really pushed me to challenge my skills and accelerate my own personal development within this career choice. I have taken a week or so off for "holiday leave," and have really started treating this as my job. I have working days, I have clear-set goals, and I am constantly brainstorming ideas for the kind of games that I really want to make and games that I want to play.
Snake Invaders was a game that I wanted to play, and I believe that this is an integral reason behind the determination with which I faced the project.

With all that aside, I'll leave you with the link to the game and hope that this has been a good and interesting read. I didn't want to leave a "look I made a game play it here" kind of post, as I've always approached what I do with a little more personal flare than that and I've found in the past that a surprising number of people are genuinely interested in this kind of stuff. I'll also leave some contact details in case I have reached out to anyone here and you want to follow me on Twitter and the like.

I'm planning on starting my next project very soon, as the determination with which I faced Snake Invaders only doubled when I realised it's perfectly reasonable to call myself a developer now and that in my head I have a title to live up to. So if you do decide to follow me and my progress, expect news and updates on the horizon.

Thank you very much for reading, I hope you enjoyed, and most of all I hope you enjoy my game. I am able and willing to fix bugs and implement widely-requested features within reason, so any and all feedback is brilliant for me and I love to hear how people got on with my game and fix any negative experiences.

You can find the game here: Snake Invaders
Contact details: Twitter, Facebook, Google+, Youtube

- Jonno  

Create New Account or Log in to comment