Game Design

Focused on the conceptual & design aspects of game development.

RSS feed for this section

MultiRogue Dev Log – AI Beings Brainstorming

I’m going to soon start developing some enemies for the map. I’m thinking that my first goal would be to create a being that moves towards the player when he becomes visible, and as soon as a collision occurs, the player is disconnected. Gotta make it somewhat risky, you know?

I came up with a reasonable way of implementing behaviour in an easy to understand way. The AI beings will have different “modes”, that represent their immediate actions. Example: still, wandering, berserk, run away. Berserk would mean finding and following the target using the fastest route possible (using A* algorithm, probably). Run away would mean the opposite.

On top of these modes, different behaviours could aggregate a few modes, and activate the modes under certain circumstances. For example, one behaviour, “wait and attack”, would give the being a “still” mode until a player becomes visible, which would then give a “berserk” mode.

More coming.

HTML5 Tower Defense Game using EaselJS – Part 1 – Planning & Setup

You’ve been entrusted by a great and mighty game designer with the task of bringing his original game idea to life.
Because of the slow death of Flash technology, and its replacement with canvas HTML5 technology, you have chosen to learn and use it.
You also chose EaselJS
as Javascript library to make your transition into the canvas world easier.

Game Concept

Orcs are coming to destroy your castle. You must train and position archers to slow their advance until the cavalry come.

Game Elements

  • Orcs come in waves.  At the end of the wave, if the castle is still standing, the player wins.
  • Orcs come in different varieties: slow, fast, strong, weak, gold loot.
  • Archers come in different varieties: strong, long range, slowing effect, cost.
  • Orcs follow a predetermined path leading to the castle.
  • Archers stay from one round to the next, but can be sold back for half its cost.
  • Archers can be positioned anywhere on the map not within X feet from the path.

Now that the requirements are put down on paper, let’s make a quick sketch of how this game is going to look like.
This will give us some insight on which visual elements will need to be defined, and their relationship to one another.

After some quick white-boarding, the game’s concept is much clearer in everybody’s mind. This is often a good way of brainstorming an interface and game flow, especially for visually dominant people like me. If you don’t already have a white-board in your office, I strongly recommend you purchase one.

Please note that for the sake of simplicity, I’m not putting a lot of emphasis on the game assets, such as the images. In other words, I know I’m a crappy artist, give me a break here…

Setting up your project

I’ve chosen to use WebStorm, an IDE specializing in Javascript. You can, of course, use whichever environment you’re comfortable with.


In order to correctly run this application, it’s going to need to be accessed through a web server (even your localhost will do). The reason for this being that the application will fetch image files in a different way than a normal HTML website. What I did was download an use WAMP, an easy to install Windows linux server. I then moved my project folder inside C:/wamp/www/, and access it through the address http://localhost/tower_defense/.

I like keeping my file hierarchies simple and standard. Generally, I’ll keep all my source files inside a folder called src, and I’ll have a folder called vendor in the root of my project where I’ll put all third-party libraries inside. You can download the EaselJS library from either their Github repository or directly from their website. You can then place the contents of the library inside a folder called easeljs inside vendor.

This being a Javascript project, we’ll only need one HTML page to display the canvas. Per convention, we should call that one index.html.

Here’s a quick look at the file structure so far:

The index page will need to reference both the EaselJS library as well as our own game code. EaselJS ships with a minified file  containing the entire library. One of the reasons they do this to make it easy for programmers to include it in their project. The minified file is contained inside the lib folder, and is called something similar to easeljs-0.4.2.min.js (yours might be a different version).

Lets also create a blank Javascript file inside src called main.js which will later be responsible for initiating the game, and putting all the game components together.

Lets modify the index.html file to include both easeljs and our main JS file:

    <title>HTML5 Tower Defense</title>

    <script src="vendor/easeljs/lib/easeljs-0.4.2.min.js"></script>
    <script src="src/main.js"></script>

So far so good. To complete the setup, lets initiate a canvas, and draw a shape into it using an EaselJS function to make sure our pieces are working well together.

We’re going to add a canvas to the index file, call it main by setting it an ID. We’re all going to run a function called loadGame on body load. Here’s what it will look like:

<body onload="loadGame()">
    <canvas id="main" width="800" height="600"></canvas>

In our main.js, we’ll create a loadGame function that will simply initiate the canvas scene and draw a circle inside of it.
Don’t worry if you don’t understand what’s going on in this function yet; the tutorial will go more in depth in the later posts.
This is mainly used as a test to make sure the setup is correct.

loadGame = function() {
    var canvas = document.getElementById('main');
    stage = new Stage(canvas);

    var g = new Graphics();
    var s = new Shape(g);
    s.x = 100;
    s.y = 100;

If when you visit the web adresse (http://localhost/tower_defense/ in my case), you see a small red circle, your setup is complete. If not, open up the Javascript console (Ctrl-Shift-J in Chrome), and verify that the page isn’t throwing any errors.

That was the first part of the tutorial. Let me know in the comments if you have any comments, suggestions, or need help.

Here’s a link to part 2.

Xtreme Game Programming Method

I’m taking an opportunity to write about my Xtreme Game Programming method. Perhaps I’ll gain some insight on how to improve it.

Basically, this method is meant to insure that adequate time is spent on the most important aspects of game development. Also, by keeping the iterations as short as humanly possible, I’m injecting as much feedback into the loop as I can.

The first step, the design phase, lets the developer plan out the next feature of his application (or the basic outline if he hasn’t already done so). I estimate that this part shouldn’t last longer than 25 minutes. This step should ideally begin with a mini-brainstorming session, followed by filtering the most captivating feature out, and expanding on it. It should focus on the user experience, and not the technical aspects. However, a gut feeling of whether it’s a small enough enhancement will definitely come in handy to keep the iteration short.

The second step is the planning & redaction of a set of function tests to ensure the correct functioning of the feature. This forces the developer to imagine and expand the end result before committing to it. I anticipate this step to take 15 minutes. According to TDD (or test-driven development), this is an essential exercise in order to forge a perfect user experience. Also, the test will make sure that the feature isn’t broken when come the time to add more. However, an iteration might be chosen to re-work/replace a feature, in which case perhaps the functional test will be re-worked itself.

The third step is the planning & redaction of a set of unit tests to ensure the correct functioning of the individual units inside the application. I anticipate this step to take 10 minutes. This step, like the last, forces the developer to be proactive, and to imagine the simplest set of objects that should be required to accomplish this goal. This is also a TDD practice. At this point, the developer should have began imagining how this feature will fit into the application, and its exact implementation. However, the thinking should remain abstract, in order to make the application easy to understand to prying eyes.

The fourth step is to finally start implementing the feature into the application, and make the new function & unit tests pass. According to TDD, at first, the developer’s sole purpose should be to make the tests pass, no matter how simplistic the code chosen to do so might be. The relevancy of this is to keep the implementation as simple as possible, and not code things that don’t need to be coded. I’m thinking that it should take around 10 minutes.

This fifth step(s) of the method are the refactoring steps. This step is repeated 4 times in a row, each lasting 5 minutes. During the phase, the developer sets out to make the code more robust, clean, and separate the responsibilities where they belong. Now that I think about it, this step should definitely be clocked at no more than 20 minutes, but can be divided in smaller cycles (2-4 minutes), or bigger cycles (6-8 minutes) depending on the size of the re-factor.

The sixth (and my favorite) step is to play the game! If the developer isn’t ready to take his creation out on a test run, he should perhaps rethink his initial purpose in creating a game. Plus, this lets him see the application from the user’s perspective, which will let him better design the next feature when come the next iteration. Even if the game is small/simple that that point, I think it’s important to at least spend 10 minutes playing through the actions, and giving yourself feedback on the strong points/weak points of the game. One should focus on having fun at that point, but also imagine possible improvements to the game.

The developer should ideally move directly to the feature design step after having test-played the game. The reason for this is that the game experience is still fresh inside the developer’s psyche, so designing the next feature will definitely be more effective. A break can be taken afterwards.

Hope you enjoyed this!

Acheiving Personal Goals – Video Game Style

The majority of us are easily distracted from our personal goals. We don’t see immediate value, so we stop achieving them.

We just don’t see the benefit until it’s staring at us in the face!

You’ll be glad to know that I’ve found a cheat code to achieving life goals. Read on if you’re ready to change your life for the better!

The Secret? The Same Way Video Games Keep You Hooked

Remember the last time you completed a level in a video game? Satisfying, isn’t it?

Can we apply the same mentality to personal goals? Yes!

I’ve developed a technique inspired from video games. Let me show you how it works:

The Principle

Our goals get forgotten about because the value is too far to keep us motivated. Video games know excellent techniques to keep you playing to the very last level.

Here are the primary ones:

  • Visual progress bar
  • Incremental rewards
  • Specific & achievable goals

I’m going to introduce you to a goal achieving strategy that uses all 3 of these elements.

1. The Mighty Progress Bar

When you’re doing the right thing, video games let you know right away. Most games use a progress bar to do this.

When you can’t see progress being done, your brain sees the goal as either being 0% done, or 100% done. We’re all wired this way.

However, progress is always incremental! And making progress obvious is the key to giving yourself immediate feedback. This is why progress bars are so effective.

Here’s a basic progress bar I currently use for one of my goals:

Step 1 in Setting Goals like a Video Game

2. The Incremental Reward System

Visually showing goals being achieved is motivating, but not as much as obvious rewards.

The brain also needs to be constantly reminded of it’s purpose. That’s why good game designers use rewards to keep players motivated.

I’ve added 3 incrementing rewards. Here’s my updated progress bar:

Step 2 in Setting Goals like a Video Game

Your rewards don’t need to be excessive, but they need to be convincing.

Ideally, these rewards compliment the effect of achieving the goal. IE: the mountain bike is enjoyed more fully in a fit & exercised body.

Take that, evasive mind!

3. The S.M.A.R.T Goal

S.M.A.R.T is an acronym for the most important characteristics a goal must possess in order to maximize it’s power:

S pecific
M easurable
A cheivable
R ealistic
T ime sensitive

Video games are no fools when it comes to defining goals. If they were, the players would quickly get confused, discouraged, or annoyed, and leave!

Isn’t that what often happens to personal goals?

Don’t fall for it. Be smart! (pun intended)


Use this tool wisely – You may actually get what you wish for!

1. Choose 2 Goals to Begin

By choosing too many, you risk overwhelming yourself. Oh, and remember to make sure your goals are S.M.A.R.T!

2. Draw a Huge & Fancy Progress Bar on a Big Paper, or Whiteboard

Notice that I didn’t mention using a computer/PDA? That’s because our brains have an extremely short attention span when it comes to computers/gadgets.

Trust me. Offline is better for our purpose.

3. Fill in your goal, units of increment, and progressive rewards

Think long & hard about your rewards. Make sure you will deliver the promise.

4. Display the bar where you’re sure to notice it everyday.

The office or bedroom is often a good idea.

5. Make marking down progress a daily ritual

When you get a part done, mark it as soon as you can.

6. Always deliver your promised reward

Very important! If you skimp out at that glorious moment, you risk losing motivation & momentum.

In Closing

Please comment out your thoughts & feedback. I really wants this strategy to work for well for me as for everybody else reading this article.

If I can get enough positive feedback, I will post a second part to cover more information & scenarios.


4 Good Reasons You Should Make Video Games

If you’re not convinced that the process of making video games is worth the time and sweat, please allow me to convince you otherwise.

So… Why make video games?

1. To Spread Your Creativity

Don’t tell me you’ve never had a good game idea. Everybody them.

That’s how every single video game in existance started off at one point. By thinking of a fun game concept. The secret to making them come true is opening your mind, and running with the idea (sit down… I meant with your mind).

Afraid your game isn’t going to be popular? If you find the game concept fun, so will millions of other like-minded individuals. That’s why games are so contagious.

The reason video games became so popular is because it gave people an easy means of channeling the product of their fun creativity to others in the world. “I think it would be fun to command a spaceship, and blow up asteroids all day long.” became Asteroids!

If I gave you the means of creating your idea of a perfect game, don’t tell me you wouldn’t want to do so. Your right brain is craving it!

2. To Gain Bragging Rights

What if tommorow, you learn that your best friend is the brains behind the next big mobile phone game.

Don’t put yourself in that position. Take the initiative, and make it first!

You might be suprised at how many positive comments you’ll get once people find out you made a video game. Even my first game, QuickTank, got me alot attention. Just the fact that you’re responsible for somebody else’s entertainement (referring to video games of course), no matter how brief, is a good feeling.

3. To Get A Full Brain Workout

Personal development-wise, game development can turn you into a very well-rounded person. This is probably the reason why most people in the game industry are very down-to-earth.

Even if working on a game project in a team, you’ll most likely be using both halves of your brain to get the ball rolling. By both halves, I’m of course referring to your creative side, and your logical side.

It requires your creative side because you need to look at the big picture in order to make sure the game turns out fun.

It also requires your logical side because games revolve around rules and variables.

4. To Vanquish Boredom

Not only for you, but for the entire world. Image that kind of responsibility!

By giving people that 15 minute escape from reality, you’re assuring the well being of the human race.

I hope you now have a greater respect for game developers. Soon, I’ll be posting blogs on how to become one yourself. Make sure to subscribe for email updates!

What’s Indie Game Development?

Short Answer: An indie (independent) game developer is an individual, or a small group of individuals, who come together to make a video game, often with a small budget.

Long Answer: Indie game development is a rather new concept in the game industry. Since the game industry is now moving out of the basement and into cubicles, the world of  bedroom coders is now falling back on smaller scale operations to satisfy their creativity. Instead of focusing on ground-breaking graphics technology or cookie-cutter million dollar MMORPGs, it often concentrates on simplicity, innovation, and healthy addiction.

Some big players in the industry started off as independent game developers (look up the story of Casual Collective). Games don’t need to cost thousands of dollars to be fun.

What successful independent game developement teams need is:

  • Passion into making fun games
  • Determination
  • Artistic abilities
  • Programming abilities
  • Teamwork

One word of warning: Don’t jump into the indie movement thinking of making lots of money from very start. You might not earn a penny until 1-2 years into the business.

Review – Mario Kart DS


The game has no real intro other than the main interface menu. It leads you straight to the action you’re looking for. It gives you the choice between several different game modes, which are fairly self-explainatory.

I knew what to expect from the game because Mario Kart SNES was my favorite game of its time, but non-players might be thrown into confusion. This could have been avoided by giving the game even a short intro movie.


The controls are easy to figure out. During the first race, I started reving my engine too early, and ended up spinning out, which was a little frustrating. This could have been avoided by giving you a hint on the interface of how long you should rev your engine for.

The interface is also easy to figure out (laps, race position, power-up). The power-ups arn’t all obvious as to what they do, which is part of the fun of the game. Overall, this game is easy to get into, and gets fun really quickly.


The variety of obstacles, courses, characters, vehicules, and power-ups makes the game fun for a very long time. The various levels of difficulty adds a challenge of the game, and the race unlocking adds an element of acheivement.

The new elements of this Mario Kart game, relative to its predecessors, still held suprises for me. I found that important to the game, because otherwise I would have found the game to be bland.


I enjoy the cutscenes at the start of the races, giving you an overview of the map. The bright (or exceedingly gloomy) landscapes are very entertaining to race through. The mix of 2d and 3d elements is clever, and gives an impression of surrealism. The cartoon feel of the game makes it very fun.


The intelligence of the computer players isn’t impressive. I don’t consider this game a test of wits so much as a test of quick reflexes. Most of the time, I felt myself playing the game instead of the challengers.

Without adding more elements to the game, I don’t think it’s possible to add more intelligence to the computer players. Adding more elements to the game would make it clumsier and more complicated, so I think the game is right the way it is.


The cut scene at the beginning of each race makes it easy to become immersed into the game from the very start. The vivid environements and sound effects also help.

The immersion lasts from start to race to finish. I found that if the race was on a too easy level, the game seemed repetitive, and I felt less immersed. The more constant the action is, the more immersed I felt.


The camera is fairly straight-forward, and easy to get the hang of. The camera follows you directly from the back of the vehicule, on the exeption of when drifting (which is clever; otherwise it would make me dissorientated).


The controls are easy to learn and use. However, I felt a little confused at the start of the game, since there were no instructions or tutorial to guide me. I had to figure out a few controls by myself.

I would have added a short tutorial (capable of skipping) at the beginning of the first race to avoid this frustration.


Half the race courses being reruns of the old Mario Karts was clever, and gave me some nostalgia. Being able to choose your vehicule is a fresh idea. There was nothing dramatically new from the first Mario Karts, which dissapointed me slightly.


I’m left wanting to do some intellectual, because of how unstimulating the game gets after awhile. I find it conveniant for Mario Kart DS to be made for a portable console, because it gives me access to a portable quick action fix.

I would describe the high point of the game as being: “A fun racing game with a couple of twists. Vivid worlds and simple yet elegant game controls offer a couple of minutes of satisfying fantasy action.”

Review – Half-Life


The introduction cut-scene, although a bit too long, adds a lot of suspence, foreshadowing, and wonder to the start of the game. The fact that you can move around in your lift also puts you into character. It being one of the first games of its genre, I can only imagine how much awe the introduction put into the players of its time.

I also like the fact that the tutorial isn’t built into the game, giving experienced gamers the choice to skip it altogether.

If I could change one thing about the intro, I would shorten it a little bit. After 2 minutes, I started to get a little restless, and annoyed.


The learning curve was dead on. The game requires you to use certain actions to move on to the next stages, making the eventual fights challenging only to intuition and reflex, and not as much to prior FPS experience.

The lack of “out-of-character” guidance (messages poping up on the screen) kept you immersed in the game, even through the “pre-action” stages of the game.

I found the foreshadowing a little excessive, however. I don’t consider the storyline a big element of the game.


There were a lot of suprises, which most of the time got my heart beating fast. The game definitely keeps you on your toes, almost never letting go of your nerves. At one point, noises around my house made me jump.

The challenges in the game are very intuitive in nature, which makes even the hardest ones fun, and not frustrating. If there was one thing I would have added to increase my experience: more hidden ammo/health, and a bit more NPC interaction.


The occasional darkness gives you suspence, a sense of caution. The flickering flashes of “energy” gives you a sense of the supernatural, which makes the game very freaky.


Some enemies in the game have a primitive intelligence (See live thing, jump on live thing), which suits them well. Other more evolved enemies prefer to attack from a distance, which makes the combat more tactical in nature. I enjoy the variety of different AI attributed to different enemies.

The NPC AI is also suitable; the fight/flight instinct is displayed well.


The combination of visuals, sounds, and constant need for alertness makes for a very immersive game. My curiousity also becked me to keep playing to find more weird alien things.

A couple of things that could have enhanced my level of immersion would have been a more complex background story, and more safe areas to relax in. Playing the game felt like a test of endurance for my nerves, since I almost never got a break from the action.


The game only incorperated a first person view of the action. I think it’s a good thing they did, because I think a third person view would hurt the immersion in the game.

There were no camera problems that I could find.


As with most first person shooters, the controls are very straight-forward, and easy to get the hang of. I wouldn’t change anything about them.

The in-game interface is well done. I like it how the weapons menu only appears when you want it to. I also like the feeling they gave you that the interface comes from your biohazard suit (the interface only appears when you slip it on).


I like the concept of a parrallel universe, with mutated things travelling between it and our world. It gives the game a supernatural and wonderous feeling. It made me want to keep playing, so I could experience more surreal events/creatures.

In-game advanced technology is nothing new to the gaming world, but I like it how Half-Life introduced the modern day “Frankenstein” to it. By that, I mean: What if we meddled so far as to corrupt the fabrics of time/space?. When the events in the game led to that discovery, a small feeling of uneasiness came over me for that reason.

The game doesn’t have much in the way of customization/freedom, but I think they did a good job at dragging you through the horrors in the game.


After finally closing the game, I was left feeling a little shaken, but still curious to see what other strange things the game holds in store. Because I feel compelled to, I’m definitely going to play it until completion.

I would sum this game up like so: A horror first person shooter game, where you’re always left wondering, and most of the time fearing, what’s around the dark corner.

Review — Grand Theft Auto: Chinatown Wars


The intro dialog really throws you into the story, and the theme of the game (street life). It introduced the character well, an overview of the story, and foreshadowed events to come. The intro screen makes it easy to start or load games. I definitely “felt” like the character from the start.

However, I found some of the starting dialog a little too overwhelmingly “gangster”, compared to the rest of the storyline. It might potentially turn off some players who arn’t that crazy about the setting.


The game teaches you seamlessly about the controls and interface as you go along the storyline. For example, as soon as it shows you an action your character can you, the story beckons you to use it. It gives it less of a concrete “tutorial” feel, which are often painfully long. The controls and interface are easy to figure out, and the more complexe functions don’t overwhelm the gameplay until either you figure it out or the game teaches you about it.

I found some of the dialogs a little dragged on. I wish they had cut to the action a little earlier in those cases.


As a whole, this game is more addicting than sugar coated crack (pun intended). Most missions arn’t that difficult to beat, but need a certain level of concentration that lets the game take over your senses. In several high speed car chases, where the car needed to be intact, and in a certain location by a certain time frame, my heart rate was through the roof. The gameplay lets you use a combination of maneuveurs, tactics and strategy (up to a point) to complete missions.

Adding more fun elements to the game would be like adding sprinkles to the already delicious donut. Certainly adding interesting characters, cars, or missions would make the game a little funner.


I enjoy driving around town and seeing the different styles of buildings and roads in different corners of town. The characters during dialog are comic-book looking, giving you a surreal feeling. The interface is very crisp and easy to use, and also entertaining sometimes (clicking on your couch to save the game). The details arn’t overwhelming, but there’s just enough to keep your interest in your environment.


Feels like all criminal actions I have on the town affects it. For example, drug dealing, running over people, stealing cars will attract attention from the police. I also find the felony system clever and realistic. The enemy gangsters are fairly easy to beat, which I find a little dissapointing. Being able to beat 3 gangsters with guns and 2 with machine guns using your basic pistol seems a little unrealistic. I would have made the combats a little more tactical in nature, and harder.


Once the controls become second nature, GTA really drags you into the game by making you feel like you belong in a living and breathing environment, with consequences to every action. It makes you realize that breaking the law can be really fun, but also hard to do without getting busted or killed. The dialogs gives a sense of purpose to the missions.

The game gives you alot of freedom to do what you want, but makes the missions necessary to your development as a crime lord. You’re able to play on your own terms, and switch to “mission mode” whenever you want.

What I would have liked to see is a possibility to literally create your own gang. Being able to recruit gangsters, control territories, compete for drug trade and such would add to the immersion by 10x. However, I do understand how much more work this would involve, and that the game is already well rounded for a wide audience.


The perspective are very cleverly done, although the size of the screen sometimes makes it difficult to notice important obstacles on the road when you’re driving. For what console they were working with, I think they did the best they could. The smart camera dosn’t always point to the ideal location (in the middle of a fight), which could be improved. I think they should have added the option of clicking a button to focus directly in front of your character or vehicule.

Sometimes, I found the fact that you can’t see that much far ahead of you a little frustrating. Being able to look directly in front/behind you would definitely make the gameplay more fair.


In general, the controls are very friendly. The driving and combat controls are smooth. It’s a little difficult to control everything at once; for example, when you’re in a car chase, and also trying to see your map using the GPS; but I think that’s understanble, considering multi-tasking for most people dosn’t come naturally, and the game reflects that fact. The interface is also very easy to use, being very intuitive to your needs. A real no-brainer; in a good way.


The drug dealing system added to the game I found was a nice add-on. It added a unique business element to the game. The weapons ordering online system you could access through the game was also cool and fresh. They expanded so much on the original idea of driving around town accomplising missions for your gang. Just when I thought the idea of GTA was sucked dry, they still found a way to suprise me.


After quitting the game for whatever reason, my blood is still pumping a little faster than normal, due to the high speed action of the game. I know I’m always going to want to play more until I’ve discovered all the new unique features that GTA: Chinatown has to offer me.

If I had 50 words to tell someone the high-point of the game, it would be: “Doing crime on a whim, holding a drug dealing business, attracting 3 cops attention just because you can; that’s GTA”.

Game Design Challenge #1

I’ve decided to enter the DP Game Design Challenge. Although I admit that it will be doubly challenging to fit this in my schedule, along with developing my flash game, and finishing my board game concept.

The challenge consists of playing and writting a few paragraphs about 100 best reviewed games (of any console). I’ll have to include observations on many of the game’s elements, such as immersion, fun, intelligence (AI), visuals and ideas.

David Perry, the one who hosts this challenge, says that 95% of all aspiring game designers fail because of a lack of passion. That’s the reason he created the challenge; to help you determine if game design is really your calling in life.

I really admire David Perry. I visited his website after it being referenced in his book: “David Perry on Game Design: The Brainstorm Toolkit”. It’s an amazing book. If you plan on making game design your career, make sure to have it in your library.

I will be posting game reviews on my blog as I proceed through the challenge.