Thursday, 21 February 2013

100% Machine Code Games!

   I remember, back in the 8Bit home-computer days, when this was the marketing cry for ‘quality’ games, or supposed quality at least.

When home systems like the ZX 81, VIC 20; and to a lesser extent the later ZX Spectrum, and commodore 64; ruled the home-computer markets, and first generation consoles like the ATARI 2600 were just becoming seen as ‘old hat,’ written in machine code was seen as a majour selling point. There had originally been an initial glut of games written in some form of BASIC, as the language was generally included on the ROM of most home computers, and was designed to be easy to understand and quick to pick up. Now don’t get me wrong, I’m not dismissing Basic in any way, shape, or form at all here. This was undoubtedly the introduction for many people, of a certain age-range, into a career in the IT industry. And the current IT workforce has a lot to thanks these systems for.  But back then it was all about programming games, something most people with a home-computer had attempted to varying degrees of success.

20 GOTO 10
You couldn’t have grown up in eighties Britain without seeing this (or perhaps a slightly cruder variant) running on every micro system displayed in Boots, Woolworths, John Menzies, or WH Smiths...

But the Basic language wasn’t really designed to produce arcade games, and the limitations quickly became apparent to both the programmers and to the game’s players. The solution was to include native ‘machine’ code (MC) in these programs.  This ‘MC’ code was simply code written to run directly on the machines processor, without the need to be interpreted like a program written in the Basic language. At first this often came in the form of MC-routines called from within basic programs. These routines generally performed some particularly processor-intensive task. But this trend quickly turned into the laudated ‘100% Machine Code’ game as sure indicator of quality. Nowadays we may scoff at the idea of a game hand-written in machine-code using Assembly language, but back then it really did, or at least could make a huge difference to speed of operation, and to what was achievable, on the limited hardware resources, once the limitations of Basic were removed.  The often fabled wizards of technology responsible for producing these mysterious entities were placed on golden metaphorical pedestals, and vast fortunes were made (and sometimes lost) seemingly overnight , by people who were approximately the same age as all those bedroom coders who were also the target audience for  the magical ‘100% MC’ games. At the time writing machine code games was generally perceived with an air of mystery and complexity that only a select few geniuses could master. You may scoff, but remember the technology was still very new, and a lot of these people were generally producing games either on their own or as part of a very small team, and nobody got paid until the games started selling. It was a very different time for computer gaming.

I was one of those bedroom coders, eagerly learning basic and looking with envy at the machine-code games being produced by the increasingly famous select few. Unfortunately the gold-rush didn’t last long. By the time more people were learning how to program at the level of the first ‘100% MC’ games the industry had moved on. Software houses had popped up, and games produced by teams, some even having dedicated graphics artists, started to dominate the games charts. This marked the end of the beginning for the computer games industry. But without those early bedroom-coders and their ‘100% machine code’ games we might very possibly not have the Zillion Dollar industry that’s so much a part of today’s popular culture.

So don’t forget, or dismiss the pioneering games that made it all possible:

No comments:

Post a Comment