I've been a gamer since around.......1981 or thereabouts. My older brother was the gamer back then and the various systems we got in the house were really his but being the quintessential brat I wanted a slice of the action too and our first gaming system was the wonderfully retro Phillips Videopac (also known as the Odyssey in the US) . The Videopac was a clunky, oversized thing with a plasticy silver finish, chunky cartridges and and pygmie dick thin joysticks. The whole package looked like a prop out of Space 1999 or Moonraker and absolutely reeked of 1970's tech but the games were somewhat fun albeit EXTREMELY basic. Things heated up when on a day trip to Glasgow in 1983 or 84 my brother came stoating across the car park at the back of John Lewis with a strange black rectangle thing with rubber keys.
That of course was the famous Sinclair ZX Spectrum, the machine that almost single handedly launched the UK teenage bedroom game making market. In 1987 we upgraded to an Amstrad 6128 and I had my first experience of a floppy disk drive which at that time and being used to loading games on cassette tape was tantamount to extreme witchery! We then moved to the daddy of the 16-Bit computers in 1989, the Commodore Amiga and then stumbled into the world of consoles and with that took a step back to 8-Bit with the Nintendo NES in 1990. The following years and many mowed lawns and washed cars later saw a Nintendo gameboy, Super Nintendo, Sega Megadrive and finally ended with he Playstation in 1995 which is around the time where pubs started to become a staple interest so the games somewhat faded out and the booze and playing in bands started.
Fast forward another twenty odd years (.....!) and as I was messing around on Paint Shop Pro as I sometimes do I made a small mock up of a scene from one of my favourite games 'Golden Axe II' depicting a three player mode and the addition of buckets and buckets of gore! Pretty snazzy I thought an left it at that but in my brain there was a small itch and a voice that kept telling me " I wonder if there's any software out there to actually make it a reality? After a 5 minute Google search I came across exactly what I was looking for and that was Game Maker.
Game Maker is a software program written by Mark Overmars WAY back in 1994 (known then as Animo) as a simple animation tool but grew into a fully fledged video game making software package complete with it's own graphics and animation studio and unique programming language known as GML (Game Maker Language). The program spans a user experience range I don't think I've ever seen before. You can literally make a (very simple) game within 5 minutes using the drag and drop icons for absolute beginners but you can also create a modern 3d FPS type game using advanced and mathematical code, shaders, texture mapping etc. It's all there, everything you have ever seen in any game can be done with game maker depending on your level of experience. For me though, it was retro games that I wanted to get wired in to!
A game is made using certain.......things, and there are a lot of things but the 5 main ones are called objects, sprites instances, collisions and rooms. Gamers will instantly recognise the word sprite as being the term for things on screen that aren't background graphics but sprites don't actually do anything in the game, they are simply pictures or animations designed to be purely visual.
Objects on the other hand are completely the opposite. This is really what you are seeing
on screen and it's where you put your code which controls movement, speed, events and of course graphics. Sprites are nothing more than the graphics in which objects use to make themselves visible. Imagine a sprite as a human body but the object is the personality, the conciousness and the soul. A sprite must be assigned to an object in order to do anything and it is the object that stuff happens to.
Instances are copies of an object. You will make one enemy object and give it it's graphics and code etc. but you can pop two or more instances of that object within a game otherwise fighting and killing just one enemy in the whole game would be seriously dull. These instances all share code with it's master object but there are ways to manipulate them individually with code.
Collisions are just what they sound like. They are when two or more objects collide with each other and something happens (which you need to code). This could be saying what happens when a player object punches an enemy or it could be what happens when a player or enemy object touches a ground or floor object after a jump. Collisions happen by the object using the sprite's collision mask (also known as hitbox or bounding box), which is basically just a selected area of the sprite that can be 'seen' by another object and when the masks of two objects touch or cross then that is considered a collision. Collisions with invisible objects can be used to trigger off fades, room transitions, effects health point increment or decrement and many others.
Rooms are where you put objects and it's the area in which your game happens. Room could be seen as game levels or stages and can indeed be used that way but you can use multiple rooms for the same level if you wish either as sub-stages or just to connect slightly different looking places (outside then into a house for example).
In order to make objects come alive you have to code them using GML and while this can be tricky to start with it becomes increasingly clearer with experience.
GML Like all programming languages uses statements, functions & variables:
The 'if' statement is your bread and butter. It basically sets a condition that if met will do something. "If hungry then eat" would be a crude example but that's all you are basically doing. You will use the 'if' statement to change sprite animations for example push a button to punch or fire, or to set up what happens when a collision occurs with another object (play a hit animation). Other statements can be used with 'if' in order to expand and refine the condition. Statements such as 'else' 'with' 'for' or 'while' can be used to pinpoint, refine, loop and all sorts of other shit that I don't quite get yet but it's there.
Variables are basically containers to which you assign a value such as health =100. Game Maker comes with a shitload of built in variables such as gravity, hspeed and vspeed (sets how fast you fall or move horizontally or vertically) and others. These native variables are ok and there's nothing wrong with using them as it's the end result that matters but you can also create your own custom variables too and in that you can create your own gravity system and variables for movement. It's a cunt to do but I'd say this is more advisable as not only does it give you complete control over every single aspect of your game engine but for a control freak like me it's like being skepled in the face and saying "There there, you just use the nice spazzie variables that we give you!" and then handed a challenge of doing it another way.
Game maker also has it's own native collision system for objects and this means that the objects can be flagged as 'solid' or 'non-solid'. This just means that when you collide with a 'solid' object you won't pass through it which is ideal in theory for floor or walls objects. The reality is though that the built in collision code for 'solid' objects is inefficient and clumsy when it comes to being pin point perfect with the pixels and often leads to sticky walls and floors if the collision masks aren't set correctly.
The only problem I forsee for the future is really Game Maker itself. It is an AMAZINGLY flexible tool that is so easy and addictive to get in to but from what I can see current owners YOYO games need to make a huge step with Game Maker.....and soon!
The program needs a MONUMENTAL overhaul and is rife with bugs, glitches and simply just doesn't help the workflow. The GUI is terrible and still looks like it was written in the original Delphi in windows '95 and the room editor (Level editor) is one of the most frustrating tools I think I have ever used in my entire life. YOYO keep promising a total overhaul of the GUI and program in general and to be fair small fixes do happen with updates but it never quite seems to get anywhere, with some users getting so pissed off they even created their own third party external room editor application. Now if I was head of a company that made a product, that information alone would have me thinking a bit. The community forums, while full of amazingly helpful fellow game makers and loads of superb tutorials, are a little too strict for my liking albeit they are very fair.
Another big issue is compatibility. Functions are removed and new one's added every so often which makes the YOYO site awash with tutorials that are now outdated, obsolete and fucking useless. Also every time a new version of the program comes out there seems to be major issues with projects made in previous versions which are now incompatible with the new build which is piss poor.
In saying that I still think the good FAR outweighs the bad in Game Maker and you may think I'm being unnecessarily hard on YOYO games but at nearly £800 (Holy fuck!) for a copy of Game Maker: Studio with all these really crap and frustrating flaws is really ripping the cunt out of the consumer.
Taken as an educational tool mind you I can probably say that there is nothing that will get you familiar with the world of coding so fast as with game maker.
Seriously they should have this in schools to get children familiar with computing terms as it's guaranteed to hold their interest.
NEXT PART II: The Personal touch
Striding forth from his lair at Castle Stareskull one morning, Prototron decided to not reign down terror on the villagers, but instead go back inside, crack open a beer and load up Streets Of Rage 2. One hundred years later, he's still there. A avid music maker (of TERROR!) and retro gamer, he can be found whooping any and all heroes at all manner of SNK-based challenges.