Saturday, May 21, 2016

Learning To Be A Better Programmer

I have a confession to make. Despite being a game developer and having programmed lots of games, I've always considered myself a game designer rather than a game programmer.

The truth is there have always been way better programmers than me in the business. People who can squeeze every little bit out of a game engine or who can write faster, more elegant code. As a result I've always shied away from personally programming fast action games.

I made the original Halloween Harry on the Microbee in BASIC in the mid eighties. Writing it in assembly was beyond me so I designed the game around the limitations of BASIC and it ran fine.
Halloween Harry for the Microbee (1985)
In the early nineties I did the original prototype for the reboot of Halloween Harry in AMOS on the Amiga. It ran okay, but wasn't shaping up to be a game that could take on the world.

Thankfully the talented Rob Crane and Tony Ball took over the coding of the game engine and graphic engine respectively and made fast, slick code that brought Halloween Harry to life and landed us a deal with Apogee. I focused on design and level building for the remainder of the project!

When I did program, I chose games that didn't require high frame rates. Flight of the Amazon Queen was a leisurely adventure game that didn't rely on multiple levels of parallax scrolling or cutting edge particle systems. It was the sort of game that I felt comfortable building.
Flight of the Amazon Queen (1995)

I tended to focus on puzzles games too - Word Shake is an early example.
Word Shake (2005)
I followed this up with other puzzle/brain training games like Brainiversity, Smart Attack, Snappy Word, Stroop Attack and Brainiversity 2.

Even the more recent Save Our Village was designed to move at a leisurely pace, focusing on town building and exploration.
Save Our Village (2016)
But now, with great tools like Unity3D and XCode and languages like C# and Swift I have the opportunity to work with high level programming languages that also produce lightning fast code.

And  thanks to the internet and the many excellent programming resources like I am learning a lot more - and doing it faster and easier than ever before.

In fact, I now think of myself as a game designer AND game programmer.

I reckon I've earned that.


Saturday, May 07, 2016

Revisiting Old Games In Development

Like every game developer I have a lot of game ideas.

Most are ideas jotted down in notebooks, on scraps of paper or as notes on my phone. Sometimes the ideas progress to prototypes on the computer/smart phone to test out. It's here where I find out that some ideas are better left as just ideas.

I also have a few games that I've built out to a reasonable level of completion - but not released. There are many reasons for not finishing them. Sometimes they aren't working, other times the market has shifted and they don't make sense to pursue, and other times better opportunities take precedence.

I have a playable version of a text adventure game called Return of the Amazon Queen on the iPhone and Apple Watch. It's designed as a paid game, but sadly the market for paid games has really dried up - at least on mobile. So this game has been shelved until I can work out a way to make a story driven text game work as free to play.
Return of the Amazon Queen

Another game I developed to almost completion was a simple endless runner. I shelved it when I struggled to find a way to make it compelling beyond just a few days of play.
Endless Runner

That's the problem with quick twitch games - they need a meta game to engage the player beyond the initial thrill of play. There are so many free games competing for players attention that a game needs a reason to come back. Crossy Road does a great job with the overall Pokemon/Skylanders collection mechanic of engaging the player's desire to want to collect every character and thus re-engage in the game.

It became obvious that building out such a mechanic was a big job and was at odds with the idea of quickly developing a fast twitch game  The core game could be produced quickly, but the meta game (especially for sole developer) could take a lot of time. With that realisation I put the game on hold.

I've just finished a huge update for Save Our Village, a free to play game that has good retention, a strong meta-game and a monetisation system that works . As a result I've got time to go over some of my old shelved games to see if a new perspective can help solve old issues.

I have some ideas on how to make a narrative text game work as free, and I've reconsidered ditching the meta game for the endless runner.

So for the next few weeks I may make some progress on either one of these two games... at least until Save Our Village launches and work begins on preparing the next update for that game :-)