The archived Session 3 board includes the announcement and all entries, minus attachments.
As the winner of the second session, I chose the theme of the third session.
Start Date : 11/8/2008
End Date : 25/8/2008
Theme : Chain Reaction, with enemy explosions damaging or destroying other enemies (like Missile Command or Every Extend).
I'm sincerely hoping for more participation this round. A short-term, rapid prototype like this is quite honestly the best way to improve and the best way to unearth good game ideas. No one should worry that they can't complete a "finished product". You can't, but that's not the point. The idea is to experiment, and get a single idea or two expressed in some sort of interactive way. It's summer, and we're all busy, but it's fun and might produce the next Crayon Physics! I think the theme's a good one, too.
Maw won the session with Die Fütterung ("The Feeding"), a biology-themed game inspired by Spore.
My entry into the session was Rocket Bomb, a top-down shooter built around Missile Command style explosions and chain reactions.
Missile Command meets Geometry Wars meets Stargate
Competition Build (2008-08-25)
The game requires the Visual C++ 2008 Redistributable Package, but is otherwise completely self-contained. Just unpack the archive into a folder of your choice and run Test.exe. (I need to rename that...)
Of course, I have to participate in this one.
I spent my first day getting sidetracked by the game shell and major revisions to the core infrastructure, but I finally started working on the central play mechanic. The idea was for the player to launch missiles at reticule position that explode into large fireballs like the anti-ballistic missiles in Missile Command. Enemies destroyed by a fireball explode into identical fireballs, which can in turn destroy other enemies. One well-placed explosion can chain-react an entire group.
I got the missiles and explosions working within a day, but found that they aren't nearly as easy to use as I originally expected. Part of the problem is that they fly relatively slowly, comparable to the missiles launched by the left (Alpha) and right (Omega) bases in Missile Command, so the player has to lead their shots. They don't work well against agile enemies (which evade the line of fire) or in confined spaces (with walls blocking shots). The player ship lacks immunity to the highly-damaging explosions, and so can easily destroy itself with one misplaced shot.
This isn't entirely unexpected, though, as I've barely started the design process.
That idea sounds horrifying.
I cannot wait until I have a chance to try this! :D
It plays like the love child of Missile Command and Geometry Wars with Defender/Stargate enemies, though it's currently way too hard because the attacking enemies are fast and agile, and fire with deadly accuracy. I need to add a bunch of "fodder" enemies that don't shoot back but explode nicely, and give the player ship a "grace period" after being hit.
Time-releasing enemy spawners and capping the enemy counts greatly helped the difficulty curve. I can actually play it now, and it's a lot more enjoyable than getting slaughtered by huge packs of fast-firing, deadly-accurate enemies within seconds of stepping outside of my base.
The game now starts with incoming flocks of slow-moving "bomb" enemies that don't shoot back and serve as both "fodder" and (later) explosion chain generators. The "bombs" aren't worth much on their own, but tend to start waves of explosions with increasing point multipliers that wipe out the higher-value enemies mixed in with them.
I'm currently using a variant of the sandbox level first seen in "Galaga Has A Posse", complete with heavily-fortified "base" in the center, but that's just for testing. It's far too large and spread out, but was a good place to start. Here's a screen shot of what I have so far:
The little "x" indicators show where the rockets will airburst into those orange explosions, which will incinerate the player ship and allies just as readily as enemies. This is most relevant when the player ship is moving in the same direction that it is aiming, where it is all too easy to fly through a lingering airburst.
I finally got the hit combo mechanism working, though it isn't completely obvious in action because the initial explosion tends to expand beyond the chained explosion. The trick is to lead targets by a large enough distance that the explosion has reached full size by the time the target gets there. Then it's just a matter of luring enemies into the cloud of explosions. :D
Lots of explosions are good... great theme
That's exactly why I picked it. Everything is better with explosions! :D
I like the fact that other participants have come up with some really clever and different takes on it. I'm coming at it almost as a very simple simulation, but other people have gone in pure-gameplay directions that I definitely appreciate.
Those graphics are sexy
I feel bad now, looking at my game's graphics.
But oh well. It's the gameplay the counts here.
I really like the way you're doing this, I can't wait to actually play it.
Glad you like it. :D
The only items specifically created for this prototyping session are the player ship's missiles, the orange "rocket bomb" enemies, and the circular explosions. Everything else is prior work, and much of it has appeared in previous sessions. On the plus side, the data-driven application design makes it fairly easy to add new things.
I've been spending more time working on code infrastructure and shell interface than actual design, but that's what this week is for. :)
I like how you reuse your graphics. I think it's good practice when it comes to prototyping :)
Blue&Orange are my favourite color scheme so that's a plus!
I basically start each new level by duplicating my sandbox level and stripping out the things I don't need. If I actually planned ahead better, I'd convert the duplicated elements into shared import files. I've gotten this far without doing it, but it's getting harder and harder as the level files grow and I make wide-ranging changes.
I've been using the red/orange/yellow versus blue/green/purple color scheme from the beginning because it makes team affiliation really obvious. It was especially important for "Galaga Has A Posse" because you could change (red-team) enemies into (blue-team) friends.
I suppose it's time for another progress update. With the core play mechanic and combo multiplier done, I've dedicated this week to level design. While it still has traces of its "sandbox" level origin, it's changed drastically and introduces enemies at a more gradual pace. Though not a sheer cliff like before, the difficulty level still ramps up far too quickly. Making the player ship more agile and immune to its own airburst explosions helped, as did reducing the rate the level adds additional enemy bombs. The fundamental problem is that the shooting enemies fire fast-moving projectiles with deadly accuracy.
On the plus side, the game doesn't get boring after two minutes like my previous entries when the difficulty stops increasing. This one will take at least ten minutes to get to that point. :)
Reducing the enemy shot speed by 25% but leaving lead value alone made the enemy ships and turrets much less deadly yet still a credible threat. While it's still very easy to die, you tend to earn extra lives just as quickly if you chain-react enemy bombs to kill the higher-value enemies. Late in the game, this comes down to blind luck as the arena becomes too crowded to "herd" the bombs or plan your shots. Still, it's at least possible to get all the way to the end of the enemy sequence now. That means I need to start adding new spawns to keep things moving. :D
OK, I'm getting happier with how things are turning out. I made difficulty ramp up much more slowly than before, so I've been able to play for a long time without it degenerating into a chaotic free-for-all. Part of that resulted from reducing the search radius of most enemies so they don't all come after you at once. They meander around until you get close and then start trying to come after you; get away and they switch back to meandering.
Actually, the biggest problem now is that the high enemy density late in the game makes it too easy—you earn extra lives faster than you lose them. I'm going to look into reducing the rate at which the game awards extra lives.
Perhaps do it by a geometric progression? Each time you earn an extra life, the number of points you need to gain before you earn the next one becomes twice as much as the number of points you needed for the last one, for example? So if you award your first extra life at 100, then your next one comes at 300 (100*2 + 100), then 700 (100*2*2 + 300), then 1500 (100*2*2*2 + 700) and so on?
I thought about that, and that would be appropriate if I had a continuously-escalating score multiplier like Geometry Wars: Retro Evolved 2. In the end, I found that awarding the first extra life at 20000 and subsequent lives at multiples of 50000 worked well enough.
After a few last-minute tweaks and fixes, I'm very pleased with how things turned out. I ended up making two distinct types of enemies: plentiful but low-value "rocket bombs" that chase the player ship and explode into destructive fireballs, and a variety of higher-value enemies that shoot back but explode normally. I tried having all enemies produce fireballs, but that took away the distinctive feature of the rocket bombs and I didn't like how it played. As things stands right now, the game centers on herding rocket bombs into long strings, luring them towards higher-value enemies, and then setting off one end of the string to achieve a high multiplier. If anyone feels that this arrangement violates the spirit of the session theme, I still have the variant level file where everything explodes into fireballs.
I might as well post it since I'm not going to work on it any more. :D
I ended up putting a lot more effort into it than I strictly should have, staying up late almost every day until lack of sleep and general obsession started interfering with work. On the plus side, I've made more progress in the past two weeks than I have in a long time.
i can't seem to get it started, keep getting a prompt for msvcr90.dll and i've just copied that to the system32 directory and where the game is... any ideas?
Simply running the redistributable package should install that. I used it at work and it works fine for me.
Argh! This is both briliant AND addictive! I hate you! How am I going to get back to work now?!?! Seriously, You've done a great job. A radar would be icing on top of this very tasty cake though.
Thanks for sharing!
Thanks! I see my work here is done... :)
I spent the last third of the project working on enemy behavior and spawn schedule, and it really paid off. It made the game a lot more fair, since enemies no longer chase you relentlessly or shoot from off-screen with deadly accuracy. Most enemies will leave you alone until you get within visual range of them, but herding (or evading) enemy bombs tends to put you in range. I started getting obsessed with it myself as the level started coming together during the middle of the second week.
A mini-map radar is far and away the most requested feature, so it's near the top of my list of game features to add. I'm currently working on a sound synthesizer that will let me replace the arcade game wave files with procedural descriptions; I've already duplicated the Missile Command sounds, and am now working on the Stargate sounds. That means I'm digging through uncommented M6808 code in the MAME debugger to figure out what the sound board is doing. Fun times! :D
Preliminary missile and explosion testing...
Too much is never enough!