Archive for February, 2010

iShoot 2 developer diary 2

Thursday, February 4th, 2010

Since my last post on iShoot 2, things have come a very long way. The game is basically playable now, in the sense of “tanks take turns shooting, can kill each other, and most of the in-game UI is there and working”. There are around a dozen weapons working at the moment, though some of them are just testing various features of the new weapon system and probably won’t make it into the final release.

And since iShoot is all about weapons, that’s what I’m going to talk about today. For the purposes of this discussion, I’m assuming at least passing familiarity with the weapon editor in iShoot 1. Naturally, there’s going to be a much more comprehensive weapon editor in iShoot 2, so this post is of the most interest to people who plan to build iShoot 2 weapons.

The original iShoot weapon system was very limited (hey, I wrote the whole game in six weeks, after all). You could take various basic types of weapons, such as “cluster bomb” or “shell”, and combine them in various ways — a cluster bomb of shells, or even a cluster bomb of cluster bombs of shells, if you so chose. And you could tweak the weapon’s settings, such as how many submunitions they created and how far they shot them. And that… was really about it.

In iShoot 2, the main goal of the weapon system is to make it more modular, so you can access smaller subunits of weapon behavior and alter or replace them. To illustrate the difference, we’ll start with a “Shell” from iShoot 1. iShoot 1 shells, such as the Mini Mortar, are weapons that fly in a ballistic arc and explode into a circular blast upon striking a solid object. You can tweak various settings, such as the color of the explosion or the sound it makes, but all of those behaviors are tied together into a single chunk and can’t be separated. You can’t create a shell that doesn’t travel ballistically, or one that drops bombs as it flies, or one that can travel through dirt but not tanks, or anything else not covered by the existing weapon effects.


iShoot 2 takes a completely different approach. First, the behavior when a weapon blows up is much more granular. Rather than the all-in-one “Shell”, the equivalent weapon in iShoot 2 actually has six different warhead effects:

1) Play Sound
2) Create Explosion Particles (configured to create a burst which looks like a fireball)
3) Destroy Terrain Circle
4) Apply Damage
5) Create Smoke
6) Create Debris

There are many, many different effects you can apply as part of a weapon exploding, they can all be freely combined, and there is no limit on the number of effects a weapon can have.

As another example, the “Cluster Bomb” from iShoot 1 is handled in iShoot 2 as a “Linear Weapon Burst” effect. You can now specify the angle of the line along which the submunitions will be shot, and since you can create as many effects as you like, you can easily create (say) a bomb which explodes into an X-shaped blast of shells simply by creating two linear bursts at right angles to each other.


iShoot 2 introduces the concept of “triggers”, which cause effects to happen when certain conditions are met. The most basic trigger, and one which all weapons have by default, is “Struck solid object”. By default this trigger is wired up to the “Explode” effect, which simply runs all of the weapon’s warhead effects. You can delete this trigger, in which case the weapon will happily travel right through solid objects, and you can also wire it up to different effects (for instance, maybe you want a weapon which behaves differently when it bursts in midair vs. when it hits the ground).

Other triggers include “Struck Terrain”, “Struck Tank”, “Reached Apex”, “Proximity”, and “Delay”. Triggers can be armed and disarmed, so for instance you can have the “Reached Apex” trigger arm the “Struck Solid Object” trigger — your weapon will travel through solid ground until it reaches its peak and begins descending. If you have a delay trigger re-arm itself, it fires again after the appropriate delay. This allows you to have an effect which runs every <n> frames, such as dropping bombs.


All weapons in iShoot were ballistic, period. In iShoot 2, you will be able to disable the effects of wind and gravity on a weapon, control its speed and direction via effects, enable homing, and many other settings. Weapons can change appearance mid-flight, and there are even animated weapons now that reconfigure themselves on their way to the target. I’m not ready to spoil all the surprises here, but iShoot 2 is going to have some cool weapons.

Weapon Exchange

Where’s the fun in building all of these world-destroying weapons if you can’t share them? So naturally you will be able to share your custom weapons online. We are also planning on hosting a contest to design the best set of weapons, with a sizable cash prize. So go ahead and start thinking about weapons now :-)