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 raywenderlich.com 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.

-Johnno

1 comment:

Samuel Freiholtz said...

Perhaps if you had spent more time wrestling with the code for the Halloween Harry reboot, until you got it working to your satisfaction, you would have felt mote confidence earlier. I think you deserve that confidence! =)

I am new to game development and I know I am a simple programmer, lacking masterful code instinct, but I like it. I like keeping things basic/childish. I like to write code that is simple enough I can come back later on and quickly understand what it say (instead of feeling I am about to interpret hieroglyphs). Sometimes I wanted to write sophisticated code, but then looked at it and said “no, what a headache”. When I read about the multitude of bugs modern triple A game contains and that the programmers have a hard time completely get rid of them, I think simplicity can be a blessing – less bugs, less work afterword to fix it =).

I made a simple platform game – I think you played it – and when I used my game engines gravity I got bugs, and the only way to get rid of them was to stop using the engines gravity. That told me, that if something as simple as gravity give me bugs that I can not fix, I want to stay as simple as possible.

But that said, congratulation to your more advance game development – it looks really nice! =)