April 19, 2014

My Game: Infiltrate the Warlocks

Infiltrate the Warlocks is an action-adventure game prototype that my partner and I made for a university project.  The game uses a two-dimensional, top-down camera angle, similar to the original Legend of Zelda games.  In Infiltrate the Warlocks, the player trespasses into a warlock hideout, avoiding the warlocks’ guards along the way.  Once the player reaches the main hallway, the player captures the warlock inside, and the game ends.

Infiltrate the Warlocks was made in GameMaker: Studio, as a requirement for the assignment.  GameMaker is a toolkit targeted towards aspiring video game developers with little or no programming experience.  Instead of using conventional programming languages, users can create game behaviours by using a drag-and-drop interface or by creating scripts using the simplistic GameMaker Mark-up Language (GML).  Using these methods, users can create functional games relatively quickly.




Working on the game with my partner went fairly well for the most part.  I was the programmer for the game.  When we first started planning the game, we quickly decided on a genre, a setting, and a general premise.  The following week, I started developing the game proper by creating a placeholder character who could move in and across empty rooms.  I initially created the game behaviours with the drag-and-drop interface.  When I did so, I noticed that the character could not smoothly move diagonally, and it made the controls feel less responsive.  After a suggestion from my teammate, I switched over to use the GML instead.

While using the GML gave more freedom of control than the drag-and-drop menu, I still felt more restricted than when I used full-featured programming languages like in my computer science classes.  The GML leaves out features that may overwhelm novice programmers, but in doing so, it makes programming less convenient for advanced programmers who normally depend on those features.




While I was familiarizing myself with the GML, my partner had drawn walls and a couple of decorative items in each area and laid them out appropriately.  So far, we had a game where our character moved from one mildly-decorated room to the next, without much in the way of obstacles.  Since one of our areas was a courtyard, I decided to add a key to a simple hedge maze in the courtyard and have it unlock the door to the next area.  I then added another key to the next room and did the same.




Our game’s future seemed promising as my partner added more objects and guards, and made the rooms look more complete.  He even created some eight-bit background music to make the game feel more like an old Nintendo game, and I really liked it.  After having done a substantial amount of work, I decided to add in another obstacle to make the game more engaging.  We went to the GameMaker menu to add another game object … but GameMaker stopped us.




It turned out that since we were using the free version of GameMaker, we were limited to only a small number of objects.  It had seemed that we had hit a roadblock.  While the game at that point was certainly playable, the player had no real objects other than to collect the keys unhindered.  I looked at our current list of objects, and I noticed the object that my partner had created to play the game’s music.  Having an idea, I looked up GameMaker’s programming manual to see how we could have the game play music without an object.  I loaded the GML script editor, wrote several lines of code to play the music, and deleted the old music objects.





With space freed, my delighted partner added an ending screen, congratulating the player.  Having created a framework that relied more on code than on our limited number of objects, I added NPC dialogue and movement for the guards so that they would chase the player.  We tested the game, were satisfied with it, and called it complete.

With Infiltrate the Warlocks finished, I can say that while working with my partner went well, GameMaker had underwhelmed me.  Even if we did not have the limitations of the free version, the limited scripting options, as well as a few minor issues with the interface, has convinced me to switch to the Unity engine for my final project.

Download: http://chrisraleighart108.blogspot.com/2014/04/my-game-infiltrate-warlocks.html