Ooops! I forgot a title

Posted by (twitter: @Catsweb)
December 9th, 2014 9:16 am

In the game I created, you play as the security guard for the High Brow Museum.  Unfortunately, you only have one screen to see all four floors of the museum.


The game play:

Each floor has a number of objects.  There are visitors that walk around the museum.  One visitor on each floor is a thief that will steal an object then stand there with a slightly different icon.  The player must hit the alarm button before the delay timer.

What did I learn:

The hardest part to code was having the visitors walk around in a somewhat sensible manner.  I eventually decided to use an A* pathfinding library.  Each visitor picks an object to visit.  It calculates the best path avoiding walls, objects, and other visitors current position. Each tile on the route is stored in an array and it tries to get to each tile in turn.  If it runs into something, it jumps to the center of the closest tile and then waits for a random amount of time.  At that point it recalculates and starts again.

I had to reprogram the library to not let it cut corners if there was a wall there.  I also had to program the visitors with a fudge factor to decide how close was close enough to the way-point. Nothing too difficult, but it did suck 6 hours of programming time since I went in knowing nothing.

What went right:

I used a JavaScript game library called Quintus. Once I got used to how it did things, it was a pleasure to use.  The best part was using Tiled to make my levels – objects and all!  There was a lack of information about how to do it, but I figured it out using the examples.

level_1What I would do to improve the game:

– different kinds of visitors
– thief wouldn’t steal the first object
– Thief would have to run away instead of a delay time
– prettier interface
– intro video

I had fun making the game.  This was my first time making a 2D game in JavaScript.  I think I might explore Quintus some more and see what I can do with it.

Game page:

Play it here:


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]