GameMaker Design Document

In order to create a 2D game prototype, demonstrating the mechanics of a 2D game, I used GameMaker.

In order to create my game, I first had to set up a project, which I appropriately named “GameMaker_Prototype”. The first things that I created were the various rooms which would be used in my game. These rooms were:

  • Main Menu
  • Control Screen
  • Game Screen
  • Game Over Screen

After creating the rooms, I went into Photoshop and created appropriate backgrounds for each room, making sure that all of the images were the same size as my rooms (640px x 385px). The next step was to create my other resources, such as my character sprites. The sprites which I needed were as follows:

  • Player
  • Enemy
  • Bullet
  • Top left wall corner
  • Top right wall corner
  • Bottom left wall corner
  • Bottom right wall corner
  • Horizontal wall corner
  • Vertical wall corner

For the Player, Enemy and Bullet sprites, I used the in-engine sprite editor, as I believe this saved me a little bit of time due to the fact that I didn’t have to go through the process of saving the Photoshop files  .PNG files and importing them into GameMaker. I used Photoshop to create the wall segments though, as they required a bit more detail and work.

Once all of the sprites were created, and imported into GameMaker, the task of creating objects for each of the sprites began. Without objects, you cannot populate the game with anything, so this was one of the main stage of development of the game prototype. I created objects for each sprite, and then linked then to their designated sprites.

Adding all of the Actions and Events was probably the most difficult part of development of the prototype, as I encounter many errors when trying to add particular controls. The actions for each object varied. For example, obj_player (the “player” object) had to have Actions and Events for the player to actually navigate the room which they were in, amongst other Actions and events such as firing and colliding with the room walls. Whereas the enemy object (obj_enemy) had to have a basic AI programmed in order for the instances to follow the player, even when he was stationary.

Some of the issues which I encountered with the Actions and Events were simple things, such as small mistakes in pieces of code, being unsure which action to use, and then which event went with it.

In order to make my game and actually executable file, I used the in-engine exporter. As this is only a 2D Prototype, I only exported the prototype for Windows, but would be happy to export it for Mac and/or Linux

Leave a comment