Making a start on your first game

Making a start on your first game

All my life I’ve been a computer nerd. I love networking. It’s challenging, and ever changing. Through the day I work as a Network Security Engineer and love my work. But somehow I wanted new IT challenges. I also love my trusty iPad, and am addicted to my iPhone, but a while back while scrolling through the limitless App choice, it’s shocking that no one created the games I wanted to play. This led me to an inescapable conclusion – the games I want to play don’t exist. If they were going to exist, someone would have to make them. But how would any developers know what I want to play?

Perhaps unsurprisingly, I’ve started my first indie game, and I’ve decided to keep this development blog so that other people can learn from my mistakes. There are so many decisions to make when you enter the frustrating and amazing world of indie game development, but one will be more important than all the others – what will you develop in? First things first – I tried to get going on several development platforms in my time – I find Objective C confusing and overbearing, I find JavaScript sloppy (but easily understood) and whatever you code in locks you into a particular series of devices that can run that code. I am a networking guy; programming in the traditional way hurts my head – this means whatever I write needs to be “object oriented”, preferably with the code directly interacting with objects in the game space.

I decided a cross-platform game engine would be essential for my efforts. It makes a lot more sense to write code once that will run on iPhone, iPad, Android and Windows Phone once. Using a cross-platform engineer makes porting to other platforms as easy as testing, correcting any issues and clicking build. Your game art, GUI, enemy AI and everything else can be automatically reused across all mobile, web-games, consoles and traditional PCs if you pick the correct development engine. A game engine puts a layer between your game and the hardware – so that moving to a different type of hardware is as easy as changing that middle layer.

About ten years ago I was impressed by Torque engine, but it was beyond my capabilities. I looked at it and threw my hands in the air and went back to my university studies. Along the way I found the Havok engine, it was so impressive, but so hardcore – Project Anarchy the indie-developer centric offshoot is also awesome, but a lot to take in if you’re just starting out. The Unreal Engine looks gorgeous, gets featured in every Apple WWDC keynote, but it’s very expensive for someone just starting out. I realised that my first game would be in 2d, and so I stumbled upon Corona.

It was time to start, I read a few books on developing in Corona  and started developing in Corona – and I loved it instantly – Corona is great – it’s a rock-solid development platform, LUA made sense and really broke down the barriers I had built about writing code, but Corona is a 2D environment and is designed for people who can create their own art.

This isn’t me – I am a computer nerd, I can’t draw to save my life.

After fumbling through a few ‘proof of concept’ games to convince myself I could write something that would run, I started looking for affordable artwork for my games. This led me to the Unity Asset Store – here were all these top-notch 3D assets available, many for free or for ‘reasonable’ prices (from a few dollars to about $50 per model). Suddenly I had something that looked really well documented, had a free edition, that provided a community to plug into and art that was ready to go. How could I resist?

This is how my adventure with Unity began. My starting point was Sue Blackman’s excellent book “Beginning 3D Game Development With Unity 4”. Her writing style was easy to understand, and made me feel like I could conquer a 3D engine. The first quarter of the book is genuinely amazing – the instant result had me hooked. Unfortunately, such good things can’t last. The first quarter of the book is brilliant, the next quarter has a few version skew issues but at about the half-way mark it turns into bug-hunt. It’s as if the publisher, APress, didn’t give Ms Blackman a decent editor or a decent tech reader.  I was about to give up and then my Mother told me it was time to start and give myself permission to fail. This was remarkable – my Mum isn’t comfortable with technology (she is getting better since she got an iPad though).

That was a week ago. And I have made progress!

The wisdom I gathered so far:

  • Your first game engine matters far more than your first game. Pick something that will help you get results quickly, with a large online community and lots of well-documented examples;
  • Your first ‘test games’ should be games you write to learn the principles of writing code, then you should throw them away;
  • Your first ‘to be released game’ should be something you really want to play;
  • You can study too much. If the book you’re reading has turned into a hard slog, put it down and try and write something, solve each problem as you go; and,
  • believe it or not, YouTube is really a great resource for development tutorials.

 

So, I’d like to present you my first week worth of progress – it’s humble, but it is a start 🙂