First major update to Word Hunter

It’s been a week since I published the first version of Word Hunter and it’s going quite well. The game is not perfect but I was able to get quite some feedback and act upon it :)

What’s new ?

  • 20 new levels (double of what was available before) with new gameplay mechanisms
  • New dragback mechanism: you can drag back on the previous letter to correct the word
  • 6 new achievements
  • Bug fix for the HTC One
  • Better handling of ads, they shouldn’t show up in game anymore

LVL 21 - New Cages       New gameplay mechanism

Scoring System – Balancing and Handling difficulty

It’s been quite some time since I have posted! What have I been up to ?

  • I’ve updated my first game: Cube Overlord for Android.
  • I am waiting for libgdx free iOS publishing solution to come out of beta so I can start publishing on iOS too.
  • And….I’ve started working on a new Game !

My first game was a vertical scroller, I am happy that I did and released it. I am mostly happy about the results but it took quite some time and there are a lot of parts I am not so happy about. For my second game I want a simpler project where I can focus on those parts to improve my skills, so I am going for a puzzle game!

It doesn’t have a name yet but it’s going to be some sort of mix between Boogle and Tetris . The basis is quite simple you combine letters to make words and earn points.

I don’t have much to show yet, but I want to talk about the scoring system.

Most, if not all games nowadays have some kind of scoring system. You get 1, 2, 3…stars at the end of each level (I will refer to this as the “Star” system for the rest of this post), awards, achievements…

Cube Overlord - 3 Stars

Cube Overlord – 3 Stars

The Star System

The logic behind this is that it gives the players more goals to achieve and awards to collect, adding to the replayability of your game. Some players will be satisfied simply completing a level, but other want to beat the game 100% and get all 3 stars for each level. It’s usually good to cater to all kind of players.

Here I am not going to discuss whether or not this is a good idea but I want to talk about how I implemented and balanced this Scoring System in my new game, specifically how I designed my “Star” system

First, let’s talk about the possible criteria for this system:

Point based:

You get a star after you pass a certain threshold. The way the user collect those points is specific to your game and can vary in difficulty

Checkpoint based:

You get a star for a specific action or for filling a specific game condition in the level, there are many possibilities and of course most will be specific to your game. Here are some examples :

  • Finish the level under x seconds
  • Finish the level without getting hit more than x times
  • Collect one or several special/hidden items

This is usually a good idea when you want your users to experience your game in a different ways, explore the level instead of rushing to the exit (or vice versa), play stealthy rather than rush into the battle etc…

All is one

You might be tempted to convert those conditions into points as well:

  • The remaining time is converted into points,
  • The player looses points when  he gets hit
  • Special items gives a set amount of points.

but there are several drawbacks to this method

  1. If there are several ways to earn points, you loose the ability to “orient” the user toward a specific action/gameplay. Which is not a bad thing by itself depending on what kind of game you are going for. Leaving multiple options to earn stars means that you can play the way you want and not be punished, of course this work only if you have viable gameplay alternatives.
  2. You risk complicating the scoring system and making it too opaque for your player.

Examples

Cube Overlord

Most games will base their scoring system on points only or on a mix between points and checkpoint. Here is what I did for Cube Overlord:

  1. A star for completing the level (minimum required)
  2. A star when getting more than X points
  3. A star if you completed the level without being hit a set number of times (0 for harder levels)

What does this achieve ? Well in Cube Overlord, there is a mechanic to increase your score multiplier but it requires you to stay in the same color for long period of times, this create a whole new sets of challenges for the player that I will not detail here. If the player only wants to complete the level, then he can play it safe, but if he wants to get this extra star, he will have to use this “optional” game mechanic and engage in this new gameplay.

In this game, I play tested each level several times and estimated the point threshold to get this star based on my own scores. This was quite time consuming and required me to retest each level after a redesign. I didn’t want to make the same mistake this time so I looked into other solutions. (I am not saying you shouldn’t play test your game!).

My new project

For my new game, I decided to base my scoring system solely on points. This is a decision that you have to make on a case to case basis. For me it was quite straightforward, in my game you will get more points by making longer words. There is no reason to add extra incentives such as “Make a 6 letters word to get a star” and since there is already a time based game mode planned I didn’t want to add a time based condition such as “Get X words under Y seconds”. There is nothing stopping me from adding those as Challenges/Awards later on anyway.

Using a point system has the extra advantage that it is easier to decide the thresholds value for each extra stars using a systematic approach:

Warning: The numbers used below are used for this example and may not apply in reality, but the logic remain true.

I have the following point system:

  • 2 letters word : 15  points
  • 3 letters word : 30 points
  • 4 letters word : 50 points
  • 5 letters word : 75 points
  • 6 letters word : 105 points

It’s not linear because the difficulty to find longer words increases exponentially so the point system reflects that.

This is not set in stone but we will use this as a base, I evaluate the difficulty for each possibility:

  • 2 letters word : Very easy
  • 3 letters word : Easy
  • 4 letters word : Medium
  • 5 letters word  : Hard
  • 6 letters word: Very hard

First solution

Let’s say I want my first level to be very easy, and I want it to last about 30 seconds, I evaluate it takes the average user about 3 seconds to make a 2 letters words. So to make the level last 30 seconds, the user will be limited to 10 words (10*3 = 30, my math checks out!). So the target for my first level would be 150 points!

Now I want my players to be able to over achieve and earn extra stars,

  • so for one extra star the difficulty should go from “very easy” to “easy”
  • and for two extra stars it should go up to “medium”.

Let’s say it takes 5 seconds for a player to make a 3 letters word, and 7 seconds for a 4 letter words.

  • So for a 30 second game session, the first extra star will require (30/5 * 30 pts) = 180 points
  • And the second extra star will require (30/7 * 50 pts) = 214

This is not perfect of course, in this case I think I should increase the score for each extra letter, but it’s a good start.

Second solution (not necessary incompatible with the first one)

Let’s say I don’t want players to keep entering words after they get the minimum numbers of points required to finish the level.

Using the numbers from the previous solution:

  • If the user skills correspond to the “very easy” difficulty level, then he will finish the level (150 points required) when he uses up his last move.
  • If the user skills correspond to the “easy” difficulty level (3 letters words), then he will reach 150 points after (150/30) 5 moves, with 5 moves lefts.
  • If the user skills correspond to the “medium” difficulty level (4 letters words), then he will reach 150 points after (150/50) 3 moves, with 7 moves left.

With this information, I can give each moves a set number of points (20 for example), and set the threshold for each star accordingly.

  • Second star : 5 stars left * 20 points = 100 points. Threshold is at 150 + 100 = 250 points
  • Third star : 7 stars left * 20 points = 140 points. Threshold is at 150 + 140 = 290 points

Of course, players will find words of different lengths during the same play session but this even out in average and you should still get a star corresponding to your skill level.

Following this system, it should be quite easy to establish a scoring system adapted to your game. You will need to tweak your numbers for other factors (for example take into account added difficulty in the level design).

First Update to Cube Overlord

This is the first time since the game has been released that I have had enough time to work on it.

Listening to some feedback by players, I implemented the following:

  1. Dying animation: you no longer go straight to the game over screen when you die, the game slow down and your cube fall off the bottom of the screen, only then the GameOver screen shows up. That was much easier that I thought it would be to implement, but it still took quite some time.
  2. Replaced the confusing multi colored cube animation that lets you grow by a a “heart” PowerUp, hopefully it is now obvious that it is a positive thing to pick up :)
  3. Added two new Awards (and ingame “awards unlocked” animation)
  4. Slightly increased the speed of the first levels.
  5. Better UI for android tablets

Otherwise I am working on a Time Trial mode. Hopefully available soon.

You can get the new version here!

Android app on Google Play

Let me introduce you : Cube Overlord

  • Code Name: Cube Overlord
  • Type: Vertical Scroller
  • Platform: Android(/IOS afterwards)
  • Status: Polishing (Hope I can publish it soonish)

This is my current baby, first game to be published (see my posts about my game dev experience here : part1, part2). It is loosely inspired by Ikaruga.

The principle is quite simple, you are a cute little cube and you go through the game stages trying to collect as many cubes of your color as possible. You can change your color by simply taping on your screen. If you get hit by a block of the opposite color, the first time, you shrink, the second time, you loose :)

Classic Level

Classic Level

You get bonus points (and a score multiplier!) if you manage to collect enough cubes of the same color consecutively !

At the end of the level, you will meet the boss who will throw cubes at you, if you manage to collect enough cubes of your color (filling up the bar at the bottom of the screen), you win! :)

Monster dying

Monster dying

Power Up

You can pick various power ups throughout the game to help you! From the classical shield that will protect you to the magnet that will attract cubes of your color while repelling cubes of the opposite color.

Lightning Bonus

Lightning Bonus

Magnet Effect

Magnet Effect

Slow Effect On

Slow Effect

Zones

You will meet some challenges during your journey, such as some special zones throughout the game where the polarity effect is cancelled, you are forced into one color and are no longer able to change it until you leave the zone.

Red Zone

Red Zone

Three games modes : Stage, Arcade and Survival and hopefully plenty of challenges to keep you busy.

As always, you can follow me on twitter for updates: 

Playskool, my first Game ! – Part 1

As you might know from my previous post, or if you are following me on twitter (Shameless plug : ). I am currently working on my first Android Game!

As I have learned from my previous Android Application (a Time’s Up application). It takes a lot of time to develop and finish an application. You HAVE to cut features if you ever want to release a first version, so I was aiming pretty low (as it turns out I wasn’t aiming low enough yet!)

Inspirations:

Ikaruga

Ikaruga – First level

Younger, I once had the opportunity to play Ikaruga at one of my friends place, lucky owner of a Dreamcast at the time :) Unfortunately, I couldn’t last more than 30 or so second before dying so I didn’t stuck with the game, but the game stuck with me, or rather the principle of changing colors to beat enemies. So years later, I set out to do a game around this concept.

I also have some nice ideas about limited visibility in game (fog of war like, with light and shadows). You wouldn’t be able to see too far off and enemy behavior would change based on the fact that they were within the field of vision or not.

Constraints/Challenges:

  • It is my first “real” game. Years ago, I followed a tutorial to create a platformer game in html5, nothing really came out of it, but it was a great learning experience and helped me get around the concept of frame rates and many game effects such as parallax scrolling or sprite sheets.
  • First time I would use OpenGL, I looked around a bit for various engines/libs, I wanted to stick with Java since it’s a language I already know and also wanted to target mobiles (Android, IOS) since it would easily solve the packaging/distributions issues. I decided to pick libgdx, which brings me to my next point.
  • First time using libgdx
  • One man team, no visual designers, no artist, no ability to create my own graphics (low level of Photoshop skills)
  • While I had a basic concept (changing colors) I did not have a clear vision for the game, and I even had other ideas I wanted to implement, more or less (in)compatible with this concept.

Strengths:

  • Programming knowledge
  • Strong willingness to finish my game.
  • Very strong willingness to cut corners/features and not get distracted by unnecessary issues

Original plan

What I set up to do : A shoot em up style game (in space) but without any shooting ! The logic being the plan was that I needed to pick something very simple, and then make it even simpler. So removing the shooting would fit this needs:

  • Less sprite to display
  • Less effects
  • Less collision detection
  • Less everything :)

I would then try to implement features based on my inspirations stated above.

Hit the road Jack!

I first started by following the basic libgdx tutorial (here) then modified it to try to fit to my vision of the game. Fortunately, it turns out libgdx is quite easy to use and solves many of the problems I thought I would meet in openGL. I  but I soon hit a roadblock: Graphics, I couldn’t find images resources that would fit my theme (space, spaceships etc..) and my concepts. I had tons of ideas but couldn’t find the right art for them, and all my Photoshop attempts ended up in utter failure. For example I did find some images for a spaceships but couldn’t with my poor Photoshops skills, turn it into a good looking red/blue spaceship (if I had known about the hue/saturation option in Photoshop at the time, things might be different now >_<).

So I scoured the web for game resources that I could use freely and that would be adapted to my game, I decided to adapt the theme (spaceships) but kept the original concept (changing color/mode). For example I thought of replacing the spaceship by a boat (viking style) flowing through a river, and instead of changing colors, the boat would switch from a combat boat (to fight foes) to a fishing boat (to collect fishes ^^) by spinning on itself (the other boat mode would then be “underwater” whatever that means).

Unfortunately I couldn’t find suitable graphics for that either…

So I kept scouring, filling my file system with various resources that seemed useful, and looking for inspiration.

If anyone is interested, I used the following to find resources (among others):

I finally found something very simple (hint: it involves blocks) that would fit my needs so I based my games on that, and tried to find/make other graphics that would fit within that theme. I also ended up completely setting aside (for another game!) the light/shadow/visibility concept.

OpenGameArt

OpenGameArt – Browsing images

Embrace constraints : Constraints are good. Having too many options isn’t so, it spreads your attention between too many subjects. Limitations in one subject let you focus on another. Since I had no artists and no desire to spend too much time on arts, I spent some time looking for some graphics, letting it set the “theme” of my game, allowing me to focus on other aspects (concept, gameplay etc..). This is why one game month or game jams concepts are great, with great time constraints, it becomes absolutely necessary to cut graphics, features etc…allowing you to focus on other parts of your game.

Be adaptable : Cut corners/features when necessary, be willing to make concessions. Especially for a first game. I really liked my idea with the boat/river as the theme but once I saw that I couldn’t find any good resources and that I had no idea how I would do a good looking water (flowing effect, waves around the boat, boat entering/exiting water when spinning etc…) I changed to something much simpler for which I had available resources. Here is a great article on this subjects.

While in my case my specific problem had a lot to do about graphics, those principles can be applied in many more aspect of game design.

Just thoughts of a very cool game feature that would require you to rewrite most of your code ? Unless you are in the very early stages of your game and doing prototyping, put the idea on the side for another project and move on. Better yet, did you try to implement this feature through a little trick that would be much cheaper but yield similar results ? Something you would consider an ugly hack is actually a clever hack if it can make your game better and helps you finish it in time.

Part 2 available here !