I am not particularly gifted when it comes to all things technical. In fact scratch that, I’m useless with anything technical. Even the Sky remote has reduced me to tears on more than one occasion. So whilst for anyone else your response of ‘meh’ would be warranted and appropriate, I am particularly pleased with myself that recently whilst at work I have been learning how to write visual basic. Obviously, I haven’t managed anything impressive at this stage; it’s a case of clicking a button, running a few dozen checks on a couple of Excel spreadsheets and emailing the report to couple of people, it isn’t rocket science. Even so, I’m feeling particularly pleased with myself for being able to tell it to do something, and after a couple of re-writes it does it.
Whilst I’ll try not to bore you with details of my first faltering steps into writing code, I am now at the stage where I am adding in conditions such as ‘if this cell is blank, go look over there and check what’s in that column. If it’s not blank though, look at those two columns over there, and see if they match the template saved in the folder called ‘technical stuff don’t bugger about with’, and if it doesn’t match add it to the report’. It’s hardly Call of Duty I know. However, whilst I was mindlessly keying in endless conditions I found that I was starting to build a relationship with what I have extravagantly christened ‘The Device’. With every extra rule added, I found myself less pleased for myself that I was able to make it work, and more and more proud that The Device had learnt a new trick. It was becoming like teaching my son to talk; repeatedly saying the word over and over again until he says it, lavishing praise on him, then growing weary as it is repeated constantly for several hours after.
Why, through tears of boredom you may be asking, am I telling you this? Well having done this I started to think about artificial intelligence, and how it actually works. As with all cognitive thought, artificial intelligence all comes pre-programmed; it isn’t actually thinking for itself, it is drawing on what it has been taught previously to overcome a new obstacle. Like I’ve told The Device to check another spreadsheet if it can’t find the information it’s looking for in one particular column, it’s the same as a robotic car looking for a different route if the one it had originally gone for is on fire, and the same as you buying chips to go with your pizza as the shop has run out of garlic bread.
Now let’s think about something else. Let’s think about FIFA. Do you remember FIFA 96 where the box had the picture of the goal keeper diving in an ‘ultra-realistic’ way? That blew my 11 year old mind to bits that did. That was complicated in itself, as the goalkeeper exists in a four dimensional plain; the ‘ball’ has to be hitting certain four-dimensional theoretical markers in the code to make the games engine know that it’s time to fire up its new fancy diving goal keeper code. This columns empty, look over there. The ball travels here, dive to save it; it’s the same principle, just with a lot more learning attached to it. Now spin it on to modern day FIFA, and think about how much more advanced everything is. Players making intelligent runs for the ball, all the sickening skills you can pull off, the players facial expressions, the ever increasing realism of the kicking motion; its all exactly the same. Whilst many advancements have been made in how coding takes place (the majority of it I believe is now done by computer, using problem solving software to teach the characters face how to react to certain situation for example), ultimately it all begins with someone somewhere teaching their programme how to interpret the world around it.
Now I have laboured that for long enough, let me get to the point of this article. I was recently talking to someone who I shall politely refer to as an idiot, who was vomiting their IQ deprived opinion that indie gaming isn’t worth bothering with and you may as well only buy triple A games these days. After I had finished pounding his head into the coffee machine, I then politely explained the many reasons why he was wrong. Obviously he couldn’t hear me because of all the blood in his ears, but that’s neither here nor there. Think about this; imagine how much money Infinity Ward have spent on the developing department that makes that dogs fur realistically respond to movement. Motion capture software, obscenely powerful rendering engines and dozens of people to make the fur on a dogs arse react to movement. Now think about an indie developer, sitting in an office, coding hundreds of lines teaching their character how to interact with its new world. Think of the love that they are investing in their creation, think of the reward that they get from seeing Ian (When Ian Fell In The Machine), Barry (Jetpack Joyride) or that guy who drives the car in Hill Climb Racing actually do what they’re supposed to do. Think of the satisfaction that must be felt every time the rider is flung off into a pile of barrels in Trails HD. This is ultimately the point of the article, the amount of effort and love that goes into any gaming experience is staggering, regardless of how shiny the end product is. Don’t just dismiss it because it’s not as pretty as other games, appreciate what has been invested in it.
Now if you’ll excuse me, I’m off to teach The Device how to ride its first bike.