The Old Oilhouse
  • Home
  • Podcasts and Youtube
    • Welcome To Kimia >
      • Welcome To Kimia
      • Room 113
      • The Iacon Archive
    • CyberRitz >
      • Cyberritz
      • All Kaiju Attack
      • Into The Basement
    • The Abyss Stares Back
    • Speed Reading
    • The Old Arcade
    • The Creaks
    • The Fluffenhammer
    • The Art Of Noise (Vol 2)
    • The Art Of Noise (vol 1)
    • The Lock-In
    • The Skully and Gruffet Show
    • The Smarks Nest
    • Happy Hour
    • The Vault
    • YOUTUBE
  • Articles
    • Exaggerated Elergies
    • Tea and Tentacles
    • Galleries
    • Ex Rental Reviews
    • The Irish Thoughts
    • Bad Movie Apologist
    • Past Audioplays
    • Exclusive Audioplays
    • COMIC COLLECTIONS
  • FACEBOOK GROUPS
    • Old Oilhouse Facebook
    • SMARKS NEST FACEBOOK
    • KIMIA FACEBOOK
    • The Fluffenhammer
    • Cyberritz Facebook
    • The Creaks

MAKING A GAME IN GAME MAKER

3/14/2016

0 Comments

 
In this article I try to bungle my way through explaining the trials, tribulations, and techniques of writing a home made 1990's style video game using the Game Maker software.
PictureThe Philips Videopac. On a shag carpet where it belongs!
Ancient
​

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. 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. However, the games library was healthy, and most titles were somewhat fun albeit EXTREMELY basic.

​Things heated up when on a day trip to Glasgow in 1983 (or '84), my brother came walking 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 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 a year later which 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, and Sega Megadrive enter our home, and the gaming journey finally ended with the Sony Playstation in 1995. This is around the time where pubs and music started to become lifestyle staples, and so the interest in games somewhat faded out.

The itch

Fast forward another twenty odd years (.....!) and 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, and left it at that. However, 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 five minute Google search I came across exactly what I was looking for, and that was Game Maker.

Picture
The mock up picture that kicked it all off!
PictureTwo enemy instances and one player instance in the room editor.
Tool
​

Game Maker is a software program written by Mark Overmars WAY back in 1994 (known then as Animo) as a simple animation tool. This grew into a fully fledged video game making software package complete with it's own graphics, and animation studio, plus its own 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 five minutes using the drag and drop icons for absolute beginners, but you can also create a modern 3D FPS type game using advanced mathematical code, shaders, and texture mapping. 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.

Mechanix

A game is made using certain...things, and there are a lot of these things. The five 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.

Sprites in Game Maker 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 consciousness, and the soul. A sprite must be assigned to an object in order to do anything, and it is the object itself that stuff happens to.
​
Instances are copies of an object which do their own thing. 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. 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).

Picture
Just your average block of code. Not too taxing. Not exactly crayon chewing either!
PictureThe object event. This is where the magic (code) happens!
​All I see is blonde, brunette, redhead....
​

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, and 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 even I don't quite get yet.

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), plus lots of 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 pain 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, using the built in variable is like children's potty trainng.

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 this often leads to sticky walls and floors if the collision masks aren't set correctly.

Piss take

The only problem I foresee for the future is really Game Maker itself. It is an AMAZINGLY flexible tool that is so easy and addictive to get in to. However, from what I can see, the current owners, YOYO games, need to make a huge step with Game Maker - and soon!

The V1.4  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. Some users were getting so pissed off that 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, and recently they seem to have become infested with unhelpful Gatekeepers.

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

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 pis out of the consumer.

However, taken as an educational tool 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 far more than stuffy Basic programs.


The Legend Of Kitsune Mifune is still under heavy development and play testing to a select team but a polished demo should be available at some point in the near future.
Picture
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.
0 Comments



Leave a Reply.

    Archives

    June 2019
    May 2019
    April 2019
    March 2019
    February 2019
    January 2019
    December 2018
    November 2018
    October 2018
    September 2018
    August 2018
    July 2018
    June 2018
    May 2018
    April 2018
    March 2018
    February 2018
    January 2018
    December 2017
    November 2017
    October 2017
    September 2017
    August 2017
    July 2017
    June 2017
    May 2017
    April 2017
    March 2017
    February 2017
    January 2017
    December 2016
    November 2016
    October 2016
    September 2016
    August 2016
    July 2016
    June 2016
    May 2016
    April 2016
    March 2016
    February 2016
    January 2016
    December 2015
    November 2015
    October 2015
    September 2015
    August 2015
    July 2015
    June 2015
    May 2015
    April 2015
    March 2015
    February 2015
    January 2015
    December 2014
    November 2014
    October 2014
    September 2014
    August 2014
    July 2014

    Categories

    All
    AON ALBUMS
    Artist Acknowledgements
    Art Of Noise
    Auto Assembly
    Back To The Hammer
    BAD
    BAD MOVIE APOLOGIST
    Behind The Toys
    Blog Post
    Carded Histories
    Collected Comics
    Community Board
    CYBERRITZ
    Daily Comic Book Covers
    DHD REVIEWS
    E3
    ExaggeratedElegy
    Ex Rental Reviews
    Favourite Franchies
    Fluffenhammer
    Found Around The Internet
    Freebies!
    Galleries
    GAMING
    Generics Watch
    Gigabeetle
    Glyos
    HAPPY HOUR
    HISTORY OF BRITISH SCI-FI
    How To Trans Your Formers
    Komikz X Treme
    Lock In
    Mayor Jackson
    Memories
    MEMORY VAULT
    Motu
    Movies
    Oilhouse Video Challenge
    Old Arcade
    Past Posters
    Podcasts
    Pratchett
    Prototron
    Puppets
    Rider Ruminations
    Room 113
    Skully And Gruffet
    SMARKS NEST
    Tales O The Old Oilhouse
    The Bard
    The Creaks
    The Fluffenhammer
    The Geekmith
    The Lenten Experiment
    The Old Arcade
    Top Ten
    Toy Art Archives
    Toy Fair
    Toygrind
    Toy Stacks
    Trailer Park
    Tricky Tries
    TUESDAY TOY STACKS
    Video
    WELCOME TO KIMIA
    WONDERS OF THE FRANCHISE COMIC
    WOULD YOU LIKE TO KNOW MORE?
    Wrasslebrawl

Powered by Create your own unique website with customizable templates.