Yearly Archives: 2013

Game Maker – Basic Looping Background Music Player

Have you played a game with no background music/sounds? In most cases it makes the game feel quite dead. So in developing my game Multi I needed a basic looping background music player of sorts which filled the following requirements:

  • Tracks needed to be played one after another starting from the first track to some n number of tracks.
  • Through this iteration of tracks, tracks must only be played one time.
  • On reaching the end of the final track the first track would again be played creating an infinite loop.

For clarity purposes heres a diagram:


Following the blue arrows from Track 1, tracks are listed in play order from left to right then restarting from the last to the first. Put simply I wanted to have a looping background music player. With this in mind, I began the project with some research and found this post on Steam Community.

The basic summary of what’s suggested in the above link is:

  1. Combining all your tracks into one long track with a program like Audacity, then play that and loop it.
  2. Running a queue of songs using Game Makers alarms, then looping it.
  3. Using simple logic based checks, play one song after another then repeat to form a loop.

All the above are valid methods which have advantages and disadvantages, but for the foundation of this music player I went with option three.

Building the Music Player

To start create a persistent object. Name is whatever you want, it doesn’t need a sprite either, but it will be need to be placed in the room you want your music to start in. If this object is not persistent and the music player gets reinitialized at any point, it will lose its place and start from (track 1) the beginning again. For a looping music player this is not what we want.

Now give the persistent object a create event, and add this code:

OK the first line makes sense, it starts the loop, but what’s with that counter? Good question.

Continue reading Game Maker – Basic Looping Background Music Player

Chowder the Storm Crab – League of Legends Champion Design

Hey everyone this is my first time posting a champion on the forms. So here is an idea of mine and I’d really like to know what the community thought of it. Any and all feedback is welcome!

Chowder, The Storm Crab v3.2


1. Appearance
2. Lore
3. Characteristics
4. Abilities
5. Abilities Notes
6. Capabilities
7. Countermeasures
8. Change-Log

1. Appearance

Here’s this great art by radiationboyy. It captures the bulky, powerful, yet lumbering sea crab style that I envisage for Chowder. As a small addition though I would add some chains to his claws for a better fit with his lore and Q.


I do not own this art, for the original posting please follow the link below.

2. Lore

Worth their weight in gold, the deadly Storm Crabs of the Guardian Sea were a short-lived Noxian delicacy. Taken from the depths of the Guardian Sea to the bustling Ivory Ward Marketplace, such a prize brought Noxus’s lowly fisherman much needed respect.

Some say the crabs had learnt the ways of the storms when Runeterra was young, that’s why they lived in the heart of a seemingly endless one. Hearing the tales of the Storm Crab hunters, a promising young Noxian saw an opportunity to magnify his strength and end an indulgence that he saw as a sign of weakness. Arranging two ships he set off, and after two perilous weeks on the sea the storm was in sight.

He brought death, overseeing the systematic destruction of the Storm Crabs. When all the crabs were either slain or captured, he left, leaving the remaining petty work to his crew of weaklings. The crew gorged themselves on crab. Arguing amongst themselves about how to cook the last Storm Crab one dish stuck, Chowder, that crab took it as his name and as a reminder.

Having watched the annihilation of everything he knew and held dear drove Chowder insane, a mighty storm was brewing. With new found strength Chowder broke free of his chains, and with maddened frenzy shredded whatever was in his path, including the ship.

With nothing left Chowder roamed the seas indiscriminately destroying, soon becoming a threat to the trade routes of Blue Flame Island. Fizz the savior of Bilgewater sought out this new menace. On finding the it Fizz was capable enough to stave off its attacks long enough to communicate with the monster.

On Hearing Chowders tale and learning of his desire to find the young Noxian soldier, Fizz informed Chowder that what he sought could be found on the fields of justice. Thus Chowder joined the League of Legends to find and destroy that young soldier that started it all.

Continue reading Chowder the Storm Crab – League of Legends Champion Design

Game Maker – Dynamic Teleport

When searching for a teleport system in Game Maker, I often find the following  suggestion. When object A collides with object B at position (x,y) change object A’s position to (x_new,y_new). This works perfectly if you require a fixed position teleport system.

Though, what if you wanted (given any character position) to be able to teleport to a location that is not pre-defined. A dynamic teleport. What do you do? I asked myself this, and here’s a simple solution that I used for my puzzle platformer Multi.


First lets define a few terms and variables:

  • Ideal Teleport – A teleport  which results in the character being where you most want in a regular scenario.
  • Teleport – A boolean variable that determines whether the character can teleport or not. It is reset with the use of an alarm.
  • Teledist – A fixed integer that determines the position change of the ideal teleport. I used the value 96 pixels.
  • Par_solid – The fundamental solid object of my game (I did not use Game Makers solid variable, this article explain why.

It also helps to know  the basics of Game Maker Language’s (GML), and how one of its functions place_meeting works. If not I suggest you check out this great post in the Game Maker forums by Torigara.

Continue reading Game Maker – Dynamic Teleport

Planning in Games

At University my final year project involved building a plan recognition agent for the board game R.I.S.K. Since then, reading about plans in games is a past time of mine, and AiGameDev is a great place to do that.


For those of you with an interest in A.I. in games, AiGameDev is one of the best resources I’ve come across. Whilst browsing through their impressive collection of articles I came across a gem on planning in games written by Alex J. Champandard.

Check out the full article here!

Reading this article and watching this video was a joy. It reminded me of nights spent learning about STRIPS and HTN’s from Game Developer magazine. So if your interested in planning in games, this is definitely a great place to start.

The Creature A.I. of Black and White

Black and White is where my interest in A.I. in games started. (A little context) Black and White is a god game designed and created by Lionhead Studios under the directive of Peter Molyneaux. In Black and White you are a god born of the prayers of people, free to do whatever you please through the islands of the game.

In your journeys you are eventually given a creature. A tiny little thing, it behaves just like a child – curious yet inexperienced and frightened of the big bad world. Similar to a child you can teach it, it will then think and act based on what  was taught by you. Invest enough time and your creature can become your ultimate agent. It was a fascinating example of A.I. in games.

The Creature Cave

Black and White’s Artificial Intelligence was designed and implement by Richard Evans, and in my opinion it was the creature feature in particular that elevated the experience of certain aspects of the game. Employing sophisticated A.I techniques, it gave deeper meaning to your relationship with the creature, you felt responsible for it (well at least I did) having to train and look after it while it grew up.

Notable features related to the creature included:

  • Leashes – Which gave the player some behavioral control of the creature.
  • Creature Combat – Where creatures would fight autonomously when not commanded by the player.

A battle from Black and White: Creatures Isle. The Crocodile is controlled entirely by the game.

AiGameDev, who listed it as the most influential AI game, summed up the technical innovations as:

  • The gameplay is focused on the interaction with a large AI creature which can learn from examples, and takes reward and punishment.
  • The design integrates artificial life within the context of a strategy game.
  • The engine uses a solid AI architecture, rooted in cognitive science, known as belief-desire-intention (BDI).
  • Machine learning techniques such as decision trees and neural networks are used with great success.

If you are interested in learning more about the innards of Black and Whites creature A.I. then check out this great paper by James Wexler.

Two Great Books on Game Design

If you interested in learning more about game design, here are two great books you should definitely check out.

A Theory of Fun

Written by Raph Koster, A Theory of Fun Given was a great gift from a friend. It’s exactly what it says it is ‘A Theory’ about Fun. After reading it I’d describe it as actually quite light reading; a short and colorful book filled with plenty of pictures that’s well worth a read for those new to game design.


Art of Game Design a Book of Lenses

Written by Jesse Schell, The Art of Game Design is a comprehensive look into exactly that The Art of Game Design (it’s a good sign a book does what it says). I’m actually reading it at the moment, and so far it’s a joy particularly because of the authors writing style. The book is giving me an holistic look  into game design that’s changing my perception of how I look at everything surround games. Another book well worth your time.


Game Development Society

Game Development Society is an official society at the University of Edinburgh that I help found with two good friends of mine, Nick La Rooy and Richard Cassidy.

Sadly now that I’ve graduated from the University of Edinburgh I’m no longer part of the committee, but I’m happy to say its been left in very capable hands. If your interested in game development then I highly encourage you to get in touch with them through either their website or email (, as well as subscribe to their mailing list.

By the way they have an upcoming Game Jam sometime next week  (details are at the bottom of the page) so if your in Edinburgh around then go check it out!


Hi all,

First off, welcome to all our new members, great to have you with us. This is just a quick reminder of our first (and main) event this Semester, which I’m sure Scott or Paul mentioned at the Freshers’ Fair – our 1st Semester GameJam.

So, what is a GameJam? Basically, you spend a weekend rapidly producing a short game, based on a given theme (revealed on the day). All the games are then judged by the community with a prize for the winner! The event is open to students and non-students alike, regardless of skill level, and free for members or just £3 otherwise. Turn up in a team of up to four, or on your own and we will organise teams on the day. Programmers, artists, sound designers, writers etc. are all welcome (and appreciated!).

It will be in the The Pentland Room at the Pleasance Student Union on the 21st and 22nd of September, starting at 11:00 – that’s this weekend. We have the room booked till 23:00 on the Saturday, and it will reopen at 12:00 on the Sunday. The games will need to be complete and playable (on your machine only) by 21:00 on Sunday for the judging. You will need to bring your own PC, contact us if this is a problem. Once again there will be an exciting new theme, and a fabulous cash prize.

Regarding rules, you can use any language, framework or program you like, provided you are not simply completing an existing game. We encourage everyone to judge based on the game, not the tools used to make it. As an aside, we will also be there to help novices if they choose to use GameMaker. If this is you, we recommend doing the “Your First Game” tutorial here so you’re ready to go as soon as you arrive.

As usual, if you’ve any questions, please don’t hesitate to ask us.




Plan Recognition in R.I.S.K.

Whilst at The University of Edinburgh I self-proposed my final year project on Plan Recognition in R.I.S.K. I was supervised by Dr. Michael Rovatsos (an awesome supervisor I might add!). The research I did was fortunately noticed by the great folks over at the CREST Center UCL in their BSc Final Year Computer Science Project Competition 2013, and it had me shortlisted as a finalist.

The project involved the design and implementation of a plan recognition agent for the board game R.I.S.K. The implementation was done in a game called Domination, a Java version of the classic board game R.I.S.K. developed by Domination is freely available and you can download it through Sourceforge here.


The agent that was created is based on Geib and Goldman’s Probabilistic Hostile Agent Task Tracker (PHATT).  Acting as an observer to the game it’s goal is to infer the unknown missions cards of players based their actions in real time. In my project report I evaluated the plan prediction accuracy of the agent with four experiments, the results of which I presented and analysed. I then went on to discuss the project outcomes and future work.

You can read my report here (brace yourself its a long read). Additionally the source code for the project is available from GitHub here.

Thrillseeker – Game Jam Project

Thrillseeker is a game jam submission on the theme “You Are Your Own Worst Enemy” designed and created by my friend Sangseo Lee and I. The core mechanic of the game is that whilst flying close to passing asteroids gives you a higher score, doing so greatly increases your chance of crashing. It’s like Burnout in that the player is rewarded for high risk game play.

In-Game Screenshot

To play it, download this zip file and run the executable inside (it’s a GameMaker exe file)!

Immunity – Game Jam Project


White blood cells play a vital role for our health, without them we’d be easy pickings to the likes of even the common cold. Play a moment in the life of a white blood cell and battle against an ever growing hordes of viruses and protect the red blood cells to keep your heart beating. Even better, do it with a friend! Happy hunting!

Immunity is a coop game that I worked on with Sangseo Lee, for the Global Game Jam 2013 at Edinburgh. It took second place in the local competition and was noted by the judges for best design. At the moment it’s written in Java using the Slick framework and can run on Windows, Linux, Mac and Solaris. Check it out at the Global Game Jam website here!

A Trial of Platforms Part 2 – Building a Simple Platformer Engine in Game Maker


Writing a good, feature rich platformer engine takes a lot of work. Building a simple platformer engine is considered a case of ‘reinventing the wheel’. So it makes sense why some choose to find a pre-built engine to plug in to their game.

The trouble with this can be:

  1. Getting it plugged in.
  2. Figuring out how it works.
  3. Finding it doesn’t do exactly what you what.

Seeing as the feature needs for a game I’m building are simple. I instead decided to learn the basics then build such an engine in Game Maker. For now, I’ll briefly run through the resources that helped me build a major part of what I’ve implemented. Collision detection.

Implementing collision detection can be a head ache if your new to ‘game physics’. So to help you on your way here is a good video by Shaun Spaulding which gives an in-depth look into how to create a platformer in Game Maker. I’d recommend watching the whole thing, in particular where he explains the basic concept of collisions at about 22:30.


The system he describes is basically a method of checking several pixels ahead per frame. If a situation arises where two objects intersect, move the moving object to a point where they are next to each other but not intersecting. This is the method I choose; there are many many ways of doing it.

Continue reading A Trial of Platforms Part 2 – Building a Simple Platformer Engine in Game Maker

Smooth McGroove


Have you ever relaxed into your chair, listening to a song that takes you somewhere far away? Somewhere simpler; carefree. A place before you knew shades of grey.

Video Game Music does this for me. It’s my music therapy.

So on my travels surfing the vast expanse of the internet I sometimes encounter music practitioners, people who give my dose. Smooth McGroove is one such person. With his all original a-capella arrangements of primarily video game music I can fly away; if only for a moment.

Thank you Smooth McGroove.

Check out his work. You wont be disappointed.

Cheesy Mushroom Pull Apart Bread


Here’s a great bread recipe for Cheesy Mushroom Pull Apart Bread that I tried recently. Now it’s great as is, but I decided to make a few changes. Instead I used:

  • Portobello Mushrooms.
  • Extra Mozzarella Cheese.
  • Black Olives.
  • 1/4 cup of butter rather than 1/2 cup.

Pre-Oven Pull Apart Bread
Pre-Oven Pull Apart Bread

The only thing I’d suggest when making this is to scoop out some bread from the inside of the loaf. More space = More filling! Additionally I suggest adding a decent amount of good quality olive oil into the filling area before placing it in the oven.

Nonetheless it proved to be a hit. So give it a try and let me know what you think!

Macadamia Shortbread with Lemon Sorbet, Strawberries and Syrup


This creation has three parts:

My friend Abdul Aziz and I first started with the Lemon Ice Cream the night before.

Lemon Ice Cream
Lemon Ice Cream Pre-Serving

We slightly deviated from the reciepe by stopping heating when the mixture had become silky smooth rather than a custard texture, the result; an ice cream with a similar consistency as a thick sorbet.

The next day we prepared the shortbread, preparing it an hour before we baked it. We made a small addition to the reciepe by adding about 100g more of butter to the shortbread mix.

Pre-Oven Shortbread
Pre-Oven Shortbread

Leaving it in the oven for about 25 mins, we prepared the strawberries and syrup while we waited. To make the syrup red, instead of dipping the strawberries in the syrup mixture to glaze them, we put the strawberries back in the saucepan and heated the sauce pan for a few minitues.

Strawberries and Syrup
Strawberries and Syrup

Plating was done first with a slice of the shortbread, then a slice of the lemon ice-cream with the syrup poured round it and strawberries for a decorative touch.

The result.



So what do you think? Please let me know in the comments below!

Spider Queen and Company

Here’s an painting project I did several years back when I was playing Games Workshop Lord of the Rings table top board game. The models are the Spider Queen (without her swarms) and four Giant Spiders.

Spider Queen and Company

To paint these models I followed the Fall of The Necromancer Sourcebook painting guide on page 25, so a big thanks to Games Workshop for such a great book. Unfortunately it’s no longer available, but there are of course still ways to get a copy…

Continue reading Spider Queen and Company

League of Legends

League of Legends is described by some as the equivalent of electronic basket ball, by others like AngryJoe as “crack”. I agree. This Multiplayer Online Battle Arena (MOBA), where team work is essential to success has players take control of a single unit in a multi-player match up, with the goal of destroying the opposing teams ‘Nexus’.

The Nexus

A Short History

League of Legends or LOL (though well executed) is not an original idea. In fact it was originally conceived as Defense of the Ancients (DOTA). Based on a mission from Starcraft, DOTA was a custom game created by Eul on the popular Real Time Strategy game Warcraft 3: Reign of Chaos. Unfortunately Eul did not update his map, and so others created spin-offs; it was Steve ‘Guinsoo’ Freak who got it right.

Guinsoo created a variant of DOTA calling it DOTA: Allstars. He then put in an enormous amount of work in to adding new champions, items and game features. He later handed it over to Abdul ‘Icefrog’ Ismail who continued his work. At present IceFrog has gone onto become a lead designer at Valve working on the sequel DOTA 2.

DOTA: Allstars

Continue reading League of Legends

A Trial of Platform’s – Part 1

So I’ve decided to start creating a game (about time). This isn’t the first game I’ve made, but it will be the first time I’ll try to document my design process through this blog.

Here are some important questions that I’ll need to answer:

  1. What kind of game do you want to make?
  2. What will be your major design concepts/mechanics?
  3. How are you going to build it?
  4. What are you doing for art?
  5. What are you doing for sound?

These five questions I think are the beginning of a good place to start for a project. Now you may not have the answers to them from the get go, and heck they will probably change throughout the projects life cyle, but giving them some thought is a must.

Continue reading A Trial of Platform’s – Part 1