Overview
Game:
G.I. Joe: The Rise of Cobra

Platform:
Nintendo DS

Developer:
Backbone Entertainment

Work done:
I designed all of the player character behaviors for the game and scripted most of them myself in XML. Many of the characters had their own unique weapons whose behaviors I also scripted. Everything was continually tweaked and tuned throughout the course of the project.


G.I. Joe's top-down gunplay is built around 3 old standards for this style of game, shooting, dodging, and throwing grenades. But my implementation of all 3 is a little different. The shooting mechanics make the player character behave like a turret, letting them to fire in more directions than the 8 allowed by the directional pad. The controls for dodging and throwing both work off of button release, which lets the player direct the action after pressing the button, not before.
What I was doing was trying to make controls that worked well for the hardware and our software and gave players a lot of power and flexibility in a fight.
Shooting
Pressing the “B” button locks the character in place and makes them start shooting. The character can't move and shoot at the same time. The player can still rotate the character with the directional pad, aiming them like a turret. Most weapons have an ammo limit. If the weapon runs out of ammo, the character will automatically reload when the player releases the “B” button.

     Shooting states
  • Fire while the “B” button is pressed
    • Directional pad rotates the character
    • Character is immobile
  • Character stays in firing stance until button is released
    • Even if weapon runs out of ammo
      • Weapon will not reload in this state

The reasons I went for the unconventional turret style shooting was part personal preference and part pragmatism. Personally, I prefer my action messy. I like spraying enemies with bullets, and that's how G.I. Joe is built to be played. On the practical side, the engine we used for this game only allowed for a very high camera angle that limited what the player could see to about a 7m radius around their character. In tests that was not far enough for real run and gun action.
Dodging
Players can dodge by pressing then releasing the “A” button. While pressing the button the character is immobile, but during this state the player can very quickly choose the direction of the dodge. After dodging, the character can't move for half a second. So that this delay doesn't make the character feel sluggish during a firefight, the player can still shoot or throw grenades during the pause.

     Dodge states
  • Crouch, ready to dodge, while the “A” button is pressed
    • Directional pad rotates the character
    • Character is immobile
  • On release, leap in the direction last facing at 200% speed
    • Character is non-collidable to bullets during this and the next state
  • Decelerate to 75% speed as the character’s feet hit the ground
  • Half second recovery and transition to idle
    • Character is immobile
      • State is interruptible by firing or throwing a grenade

With the dodge mechanics I wanted to avoid players exploiting it for fast, invulnerable, movement while still providing them with a means for quickly evading enemy fire and escaping grenades. How I accomplished this was by working with movement rates and tweaking animation timings to make certain that, despite the initial burst of fast movement, the character's speed over the entire dodge averaged out to only 80% of their walk speed.
Grenades
Grenades and other secondary weapons are aimed and fired with a mechanic similar to the dodge. Pressing and releasing the “Y” button throws a grenade in the direction the character is facing. While pressing the button the character is immobile, but during this state the player can aim the throw using the directional pad. A reticle shows where the grenade will land.

     Throw states
  • Arm back, ready to throw, while the “Y” button is pressed
    • Directional pad rotates the character
      • A targeting reticle tracks the character's rotation
    • Character is immobile
  • On release, throw grenade in direction last facing
  • Recovery and transition to idle
    • Character moves at 60% speed
      • State is interruptible by firing or dodging

Grenades were only one type of secondary weapon, some characters had rockets or mines, the ninjas had charge up sword attacks. Cobra Commander had the most unique weapon. He would drop a nanomite grenade at his feet and stand gloating, immobile and invulnerable, protected by a forcefield from the deadly cloud around him.
Special abilities
Each of the characters in the game is also armed with one of four special abilities. Most of the effects are short, but powerful, limited time power-ups. These abilities are usable once the player had acquired enough “action tokens” from fallen enemies. The amount of tokens required is balanced against the relative power of the special ability.

     Action tokens
  • Every enemy drops an action token when they die
    • Action tokens are worth 1, 3, or 5 points each
      • Late game enemies drop tokens worth more points
    • Rarely, an enemy will randomly drop a 1-up token instead
  • Collecting the tokens fills the special ability meter
    • When the meter is maxed out the special ability can be used
      • The maximum amount the meter can be filled varies depending on the effect that it activates

     Invulnerability
  • A forcefield around the character renders them immune to all forms of damage
    • Lasts 10 seconds
    • Costs 40 points

     Devastation
  • A single burst of massive damage destroys everything on the screen
    • Instant effect
    • Costs 75 points

     Firepower
  • The character's weapon fires at a greatly increased rate and neither their primary nor secondary weapons can run out of ammunition
    • Lasts 5 seconds
    • Costs 50 points

     Marksmanship
  • Every shot the character fires is instantly lethal to any target
    • Lasts 5 seconds
    • Costs 50 points
Camera shake
It seems like a minor thing, but adding camera shake to the weapons fire went so far towards making the weapons feel really powerful that it's worth mentioning. The camera shake gives the weapons a visceral kick that sprite based action games rarely have.


The example above shows how much difference a little detail like camera shake can make to simple gameplay.