Game Design, Programming and running a one-man games business…

Even Bigger, Better Explosions

It’s no good doing a game called gratuitous space battles without serious ship explosions. My current benchmark explosion is this one from revenge of the sith:

I’ve watched it hundreds of times, and taken about 30 still frame captures from the DVD to use as reference. I have quite a complex particle and effects system for GSB, and it’s coming along nicely. Currently, the average cruiser will have 17 distinct events as it explodes, not counting the release of escape pods

Those 17 events are scripted like this:

[explosions]
1 = 0,128,80,EXP_FRIGATE
2 = 11,97,149,EXP_DESTRUCTION_PLACED
3 = 20,199,205,EXP_DESTRUCTION_PLACED
4 = 20,196,238,EXP_DESTRUCTION_PLACED
5 = 101,108,41,EXP_DESTRUCTION_PLACED
6 = 120,143,163,EXP_DESTRUCTION_PLACED
7 = 200,47,189,EXP_FRIGATEBREAKUP
8 = 210,0,0,EXP_STARTBREAKUP
9 = 270,128,128,EXP_CRUISERDEBRIS
10 = 274,53,226,EXP_DESTRUCTION_PLACED
11 = 290,59,229,EXP_DESTRUCTION_PLACED
12 = 310,171,209,EXP_DESTRUCTION_PLACED
13 = 388,61,204,EXP_DESTRUCTION_PLACED
14 = 400,128,175,EXP_FRIGATEBREAKUP
15 = 400,128,175,EXP_PLUMES
16 = 400,128,128,EXP_BLASTGLARE
17 = 900,128,128,EXP_ANGLED_DEBRIS

They relate to particle effects and other graphics. So there are a number of different particle emitters called from different points on the hull, then at 210 milliseconds after detonation the sprite starts to tessellate into pieces. At the same point, the damaged hulk texture starts to cross fade into existence behind it, and the hulk components start to drift.  At 270 milliseconds a shower of permanent debris is spawned. At 400 milliseconds, plumes of wandering particles appear, accompanied by a bright flickering white glare which also generates a shockwave blasting existing debris out of the way. A final shower of temporary particle system debris is triggered right at the end.

This is all configured per-ship-hull, so different ships can detonate in different patterns and styles.

It looks cool :D


14 thoughts on Even Bigger, Better Explosions

  1. Screenshots no way, movie please :)

    below i post a couple of ideas i came up with when reading the post about taking control of ships.
    ================================================
    You could make one ship selectable in the fleet as a flagship
    Flagships, basicly the ship in which the player is (or his main means of communication).
    Players could give out orders to ships in a fixed radius around the flagship. This would limit the micro and make players identify more with their fleet.

    This idea could be improved futher with the addition of sub commanding vessels which could give the player a limited ability to influence the decisions made by that ship and the ships under its command.

    This is the only “not fun” part of the game i see now. Great battles but with no real coherence or command structure. Still looks great even without this :)
    Keep up the great work :)

    p.s
    as for subcommanding vessels to make it clear, it would be something really simple like
    “commence” – attack in the manner specified in the pre-battle planer
    “rush/charge” – full power to the engines, maybe sacrifice weapon output
    “hold position” – try to hold without advancing
    “defence” – slower advance with more “healing”
    “retreat” – obvious

    This could add depth to the game, giving a feel of control over your forces without forcing tons of micro to the player since there could be 4-5 max sub-command vessels in a big battle.
    Battles could be more interesting this way, when for exaple, you use those easy command to change the formation of your forces.
    The possibilities are infinite.

    and remember people those are just random ideas i`m writing

  2. Hey Cliff,

    How about this idea: When you pause the game (from the real-time aspect of it), it goes back to your fleet deployment screen – which shows the position of all the current ships. You can then change the AI of the ships, or the guard orders etc.
    When you click play, it goes back to the realtime aspect of the game?

    Nic

  3. Sounds amazing. I must admit that you seem to be doing a hell of a job here.

    As for Nyonron’s idea, how about being able to specify different fleet attack patterns before battle, and quickly implement them during battle. So maybe you will make one for right flank, left flank, offensive spear, etc etc.

    Keep up the good work though :).

  4. “This is all configured per-ship-hull, so different ships can detonate in different patterns and styles.”

    So presumably you could also have multiple explosion scripts for the same ship hull? I’d love to see a variety of ‘death animations’, so, for example, if you field a bunch of identical frigates they dont all die in the exact same way.

    e.g. some break up, some vapourise with a massive annihilation explosion, some have an engine explode sending the remaining hulk spinning off, some die relatively quietly with a few smaller explosions and just drift… etc. Conceivably you could even procedurally generate the explosions so that every one is unique. Dunno how much work this all is though :-)

  5. That would be fairly easy to add, although right now its one script per ship. The explosions are mostly groups of real-time particle effects, so every one will look slightly different anyway.
    Supporting breakup variations is certainly something I’d like to do if this game sells and I have some free time.

  6. Another comment on nyonron’s idea for a command flagship. His idea reminded me of Sean O’Connors game Firefight. Its a WW2 squad level rts game where the individual units are controlled by the player for their positioning, but act (fire, take cover) according to complex AI. There is a small HQ units that consists of your commander (player character) who acts as a relay for the player to convey orders to all the other units in the game (HQ uses a radio that is never seen so it is basically a way of drawing the player deeper into the game). The radio has a limited range, and if a squad goes out of this range, it becomes impossible to move or influence them in any way. They just remain in position and act out their normal AI. In order to keep in radio contact with all the units, the HQ unit must be positioned and move along the front line and move with the action. Also, altitude and hills affect the range of the radio, which adds another twist into this mechanic.
    All the stuff with the radio serves to draw the player deeper into the game, and adds another game mechanic / problem for the player to solve. I find it very entertaining and challenging.
    So I like very much the idea nyonron suggests for the command/flagship to have a certain range to influence ships around it. I don’t know if this ability even needs to be a positional change (ordering units to move), or just could be a behavioral change (like nyonron said “rush” or “hold”). It could even be a combination of the two.
    If you are still considering allowing the player to directly influence ships in battle, I hope you check out Firefight. I really love its mechanic for indirect control.
    -Sidenote The limited range of control in GSB could be explained away the same way Legend of Galactic Heroes space battles explain communication errors. Jamming by the enemy.

Comments are currently closed.