Upping the Stakes – Bonus Points [Updated]

Many arcade games make use of transitory opportunities for gaining bonus points. Gaining Bonus Point can make all the difference if you are trying to make it to to the top of the High Score table!

In Catch a Clown, bonuses might take the form of the appearance of a special clown that attracts a large number of bonus points – or penalty points – if it is clicked on. In this post, I’ll describe how to add a bonus clown to your game.

The bonus clown is a fast moving clown that appears every so often at a random location, and moving in a random direction. Clicking on the clown in the normal way gains you a generous bonus points score, to reward the fact that you managed to click on this hard to handle visitor! In the example below, the bonus clown will:

– appear half a second after the game starts;
– remain on screen for 1 second, changing direction after half a second;
– disappear for two seconds;
– reappear on screen for 1 second (changing direction after half a second);
– disappear for two seconds;
– reappear on screen for 1 second… and so on.

If the bonus clown is clicked it will disappear, and the player will receive bonus points.

To start with, duplicate the normal clown object and name the copy obj_bonusclown. We shall modify its settings in a moment.

The appearance of the bonus clown is handled using a special controller object. If you have already added a controller object to keep tabs of the High Score, the bonus clown controller will be the second controller object in your game; we could just use a single controller object, (adding additional commands to the original control object to manage the bonus clown’s appearance as well as the high score), but for now we shall find it convenient to keep control actions for different game functions in their own controller objects.

Like the score controller object I introduced in Who’s Best? Keeping Track of High Scores, the bonus controller does not have a sprite associated with it, although it does need to be added to the main room. The bonus controller object has two events associated with it. The Create event, which is used to start a timer/alarm that will be responsible for creating instances of the bonus clown.

Digital Worlds - Catch the Clown - bonus controller object

And an alarm event that triggers a ‘Create Instance’ action – in this case, the instance should be an instance of the Bonus Clown object. For convenience, use Alarm 2 in the controller object.

Returning to the bonus clown object, the collision event and Alarm 0 event remain the same as before, but we need to modify the other events as follows:

– if the bonus clown is clicked on, the player should receive a generous points bonus and the bonus clown should disappear rather than relocating. In the bonus clown object, modify the Left click (Left Pressed) event actions by deleting the Jump to random and random move actions, and modify the Set score action so that 25 points are added to the player’s score:

Digital Worlds - bonus clown - i call this spoonfeeding

You also need to add a Destroy Instance action (It can be found in the Objects panel of the main1 tab).

– when the bonus clown is created, we want it to start moving quickly in a random direction. Select the Create event and add a Jump to Random position action. In the Start Moving action, use a higher speed than the original speed of the normal clown. I used a speed value of 8 for my bonus clown. We also need to add two more alarm actions, Alarm 1 and Alarm 2. Alarm 1 will destroy the instance of the bonus clown, and Alarm 2 will tell the bonus controller to start counting down to the creation of another bonus clown.

Just so we’re clear, we now have three alarms. In the original clown, Alarm 0 was responsible for changing the direction of the clown every half a second or so. It included two actions – one to change the direction of the clown to another direction, a second to reset the alarm itself. In the bonus clown, we just want Alarm 0 to change the direction once, so we can delete the reset alarm command:

Digital worlds - catch a clown

Because the bonus clown will only appear on screen for a short period of time, we need to find a way of removing it after the bonus period. Alarm 1 is responsible for destroying the current object after a given time – set it to apply to the self object with 100 steps:

Digital Worlds - Catch the Clown - alram 1 setting

and then invoke a destroy action when it is called:

Digital Worlds - Catch the Clown - Alarm 1 actions

If you recall, Alarm 2 is associated with the bonus clown controller object. When Alarm 2 fires, the bonus clown controller object responds to the alarm and creates a new instance of the bonus clown object. We could reset Alarm 2 within the bonus controller object, but I thought I would take this opportunity to show you how we can also reset it from within the Bonus Clown object itself.

Return to the action list for the bonus clown’s Create event, and if you have not already done so, add another alarm action, this time for Alarm 2. Set the number of steps to 200, but this time apply the action to the controller_bonus object.

Digital Worlds - Catch The Clown - Alarm 2

To summarise: Alarm 2 is used by the bonus controller to create a bonus clown; when the bonus clown is created, it resets Alarm 2 within the bonus clown controller to determine when next bonus clown will be created… got that?!;-)

Try playing your game again. How does the addition of the Bonus Clown affect the way that you play the game, if at all? Try to modify the time the Bonus Clown appears on screen, how fast it goes, how quickly it changes direction, and/or how much time elapses between consecutive appearances. How does this affect the gameplay?

Combined with the High Score feature, are you any more (or less) likely to play the game just one more time, (or keep returning to it over a period of time), compared to the version of the game that did not include the additional scoring features? Why?

How might you add a poison clown to your game that appears for a short time every so often and inflicts a penalty on the player if they click on it? As game designer, how might you try to entice, or even trick, the player into clicking on it by accident?

Even whilst the literal design of a game may stay largely the same, you will hopefully have found that by changing the game parameters the game may be be made harder or easier, and possibly more or less enjoyable to play. Modifiying colour themes can also introduce variation that keeps a game fresh over several different screens, even if it’s underlying mechanics are the same.

Many traditional arcade games have exploited these techniques to provide a series of levels within a game that provide progression through it in terms of increasing difficulty, as well as providing some sort of narrative – for example, the design of the room backgrounds may chart a journey from a village, through a wood, into a mountain cavern, out onto a grassy plain, and then into a despot’s castle – all whilst retaining the same ‘mechanical’ game design underneath.

Anyway, that’s it for Catch a Clown as far as tutorials go… I have a new game for you for the coming weekend… (That said, some of what we’ll be covering will still be applicable to Catch the Clown, so you can keep on polishing it and customising it further if you want to…:-)

Feel free to post a link to your ‘final’ version of the game – it’s good to share :-)


27 Responses to “Upping the Stakes – Bonus Points [Updated]”

  1. 1 louise March 12, 2008 at 11:19 pm

    I had fun with Catch a Clown — and I’m looking forward to having a go at whatever you have planned next!

    Although I already have penalties in my version of the game, I quite like the idea of a poison clown. I think a player would quickly learn to recognise a poison clown if it was just visually different, but that might not be a problem. Alternatively, perhaps the poison clown could be made to appear with and stay close to the bonus clown so that a missed grab for the bonus points might result in lost points instead.

  2. 2 Tony Hirst March 13, 2008 at 1:09 am

    “Alternatively, perhaps the poison clown could be made to appear with and stay close to the bonus clown so that a missed grab for the bonus points might result in lost points instead.”

    That’s quite a nice idea – the poison clown essentially chasing the other clown – so if you miss *you* are likely to get stung by the poison clown…

    How would you code this do you think?

    Alternatively, maybe you could have three good clowns, and a bad clown that travels slightly faster than the good ones. If the bad clown catches a good one, the good one disappears; game is over when bad clown has caught all three good clowns;

    if you click on bad clown, you lose points? or maybe ANOTHER bad clown appears?

    Here, the difficulty is increased when you mess up? Hmm – so maybe that’s not so good for a beginner player?

    • 3 Jon Breen October 20, 2011 at 4:53 pm

      Hi Tony,

      That’s exactly what I did before reading this post – introduced another bad clown when one was clicked on. Eventually if the player clicks on too many bad clowns then they can end up with an entire screen full!

      I’ve made it more difficult by making the bad clown change colours so he sometimes looks like the good clown. My wife agrees that it makes the game more challenging :)

      The bonus clown is tiny in comparison with the other clowns which makes it even more challenging. However I discovered that -sometimes- the bonus clown will jump to a random location that is undesirable, i.e., the wall!

  3. 4 Nikki May 5, 2010 at 1:50 pm

    how does one post a link to the game?
    or put it on a website so that my friends can view and play it without me having to send it to them each time?

  4. 5 Tom May 14, 2010 at 12:02 pm

    I’ve been able to understand the other tutorials, prior to this, but this one is ridiculous.

    It needs to be more specific, and i’m really not happy following this, purely because I can’t understand what it’s asking, and just confusing me…

    • 6 Tony Hirst May 16, 2010 at 8:14 pm

      So can you elaborate a little more – what don’t you follow….?

      • 7 John Walsh May 31, 2010 at 5:38 pm

        The section dealing with the creation of the controller_bonus object is especially fuzzy, i.e “The Create event, which is used to start a timer/alarm” and how exactly might you do that…? The alarm for that section is clear from the image but the create is guesswork.

      • 8 Adam October 10, 2010 at 6:53 pm

        I agree with this. The other tutorial was very easy to follow where as this one seems all over the place. It is missing steps and bearing in mind some of us are new to this, I have not ever used game maker before and I have a bit of a programming background and I found the tutorial very confusing. You show us a screen shot of controller_bonus on one of the events but not on the other, you cannot assume that people know it all. This is only the second week of game maker and people are still getting to grips with the whole mechanic, in a months time yes I don’t expect to be spoon fed but for the second week it could be made so much easier.

        It took me a good hour of trial and error to sort of get it to work so maybe there is something that has gone wrong there?

      • 9 Nikita Kesharaju October 24, 2010 at 12:58 pm

        I’m not going to lie, this tutorial is actually pretty poor compared to the standard of ones before it. Even I struggled to understand bits and I’ve taken nearly 2 hours so far to do this task. I don’t like how this tutorial assumes you know everything about Game Maker 7.

        I’ve been working like a lab rat for the past 2 hours trying to get the bonus clown to appear and I’ve had to guess half the stuff on this.

        For example, what action am I supposed to add for the Create Event in the following paragraph?
        “The Create event, which is used to start a timer/alarm that will be responsible for creating instances of the bonus clown. And an alarm event that triggers a ‘Create Instance’ action – in this case, the instance should be an instance of the Bonus Clown object.”
        I’ve added a ‘Set Alarm 2 to 0’ action to it so far and absolutely nothing is happening. HELP ME PLEASE!! I feel like I’m going to give up soon :S

  5. 10 Danny October 21, 2010 at 3:50 pm

    Sometimes when my bonus clown appears, it appears in the border and gets stuck in one of the wall squares for its duration. Is there any way you can create a parameter for it to avoid spawning in a certain place?

    Also, i can’t figure out how to make my cursor a sprite when it comes onto the game room, is there a way to do this? just tell me if i am getting ahead of my self here!

  6. 11 Matt Knightley October 27, 2010 at 5:00 pm

    Hi, i followed everything up this. I did everything you said but i’m having a problem in getting the bonus clown to return. Its there at the beginning, without clicking it disappears (correctly) but then never seems to comeback.

    I’ve gone through the alarm settings several times within the object for the bonus clown. But i think the main problem is that you haven’t covered what’s exactly needed within the ‘Create’ event, within the controller_bonus object. Can you explain what alarms need to be set here please?

    Matt x

    • 12 Chris October 12, 2011 at 6:04 pm


      I seem to be having the same problem as you and like wise I have gone through the tutorial several times. If you find the answer please let me know and ill do the same



  7. 14 Kirsty October 28, 2010 at 3:04 pm

    “I’ve been able to understand the other tutorials, prior to this, but this one is ridiculous.”

    I found it the same, its needs to be a bit more precise and spelt out, thanks,

    Kirsty :)

  8. 15 Leona November 14, 2010 at 2:15 pm

    Did anyone ever manage to complete this tutorial?


  9. 16 Niall December 9, 2010 at 2:29 pm

    I agree with the other posters, not really following how to get the bonus clown working at all, this tutorial def seems to be a bit more rushed than the others, which are great.

    • 17 Tony Hirst April 8, 2011 at 10:10 am

      I seem to have completely failed to manage expectations on this post! My original intention was that the preceding steps in the tutorial would give everyone the confidence to start trying to work out how to do the harder stuff, but on reflection, I think that was a mistake on my part! (There does come a point in every subject, though, where the teaching runs out and if you want to do the harder stuff, you have to figure it out yourself…;-)

      I’ll update the post with a couple more steps to see if it makes things easier next time round…

      • 18 John Lodge May 2, 2011 at 11:58 pm

        I was confused for a moment but I quite enjoyed trying to figure it out on my own, experimenting with something and then running the game to test it. Once I realised the alarm inside the bonus clown object resets the alarm inside the controller object, and when that alarm inside the controller object reaches 0 a new one is created, once I realised that it worked well.
        Tony could you answer an earlier question about the clown appearing stuck in the wall as I am also having this issue?

        Also while Im asking questions, I experimented with making it so when a bad clown hits a good clown a new bad clown is spawned, however at times they seemed to get stuck together and thousands of bad clowns are spawned at once and I have to terminate the program before the bad clowns pull an agent smith and ruin the matrix, how do I stop that happening?


      • 19 Tony Hirst May 3, 2011 at 8:51 am

        John – ah, a dodgy mechanic, maybe?! Isn’t this approach likely to mean that if you get caught, you’re even more likely to get caught?

        To mitigate it, how about looking for a way to set a timer that disables the ability to spawn a bad clown for a period of time? Or a counter that limits how many bad clowns an individual clown can spawn? You may have pathological situations, though, for example where clowns are being spawned in the same enclosed area and setting up a chain reaction. So one possibility here would be to create the new clown somewhere else? Or have a global counter that limits how many new clowns can be created? Or that only actually creates every n’th possible clown?

      • 20 John Lodge May 3, 2011 at 10:44 am

        Thanks Tony I’ll have a play :)

  10. 21 Isaac April 27, 2011 at 9:27 am

    I think you lot are being a bit harsh. It wasn’t that hard to follow. Admittedly, it wasn’t quite up to the standards of some of the others, but I didn’t really have any problems with it.

  11. 22 Daniel May 4, 2011 at 9:56 am

    How about if a poison clown comes up then you have a few seconds to click it before it turns a good clown bad or creates another bad clown?

  12. 23 Chris May 12, 2011 at 6:29 pm

    I think the problem is that all of the first sets of tutorials take you through it very much step by step, where as this one is less clear. I got stuck in the same way (creating one clown at the beginning). If you follow the diagrams precisely (rather than the words) then it works. (it’s about what the create event does and what the alarm does).

    I agreet that it could be worded better, but it is possible to work out on your own (I have no programming experience)

  13. 24 Abi May 24, 2011 at 3:17 pm

    The timers are tricky. I think a diagram would help as these objects events and actions are hard to keep track of for newbs.

    I managed it though. I did forget to add the obj to the main room. Took more than just a few mins to work out what I’d missed. whoops.

  14. 25 Chrissie (OU) June 8, 2011 at 3:51 pm

    I made my game as a load of squeaking kittens running about. But I forgot to set Alarm 1, and I got overrun with squeaking, irritating kittens! The moral of this story is to read the tutorial thoroughly. VERY CAREFULLY. It’s all very well creating objects but sometimes it’s good to destroy them as well!!! :)

  1. 1 blog in the basement » Blog Archive » Catch the Bat Trackback on March 12, 2008 at 11:02 pm
  2. 2 Three Lives, Then You’re Out… « Digital Worlds - Interactive Media and Game Design Trackback on March 20, 2008 at 1:05 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s



%d bloggers like this: