Battle of the shmup bosses

Started by
11 comments, last by Fournicolas 17 years, 3 months ago
This is an idea I had after playing Warning Forever, a nifty space shoot-em-up ("shmup") where the player faces off against an unending stream of bosses, which attempt to adapt to the player's attacking style by changing their designs. So for example, if you attack from the front, then the boss will increase armor in that area. The boss is essentially a collection of modules with varying stats and abilities; after each round it adds new modules of various types and in various places. What I wanted to do was make a similar game, except that the player gets similar access to modifiability. Originally I was going to go with a game where, after each round, the player could buy upgrades for their single-ship fighter. But that seemed rather unimaginative. Much better, it seemed, to allow the player to take command of their own massive boss ship! So here's the basic idea: both players in the game (one human, one CPU, since I'm not worrying about multiplayer) start with a basic ship that has an energy core attached to some basic struts with forward-firing guns and an engine on the struts. After each round, the player gets some money with which to upgrade their ship (and can sell back used modules). Modules must attach to existing hardpoints on the ship, but they may also include extra hardpoints. Here's the module types I thought of (discussed in more detail here):
  • Struts: hold things together and provide extra hardpoints.
  • Armor: Has unusually high strength and mass. May provide extra hardpoints.
  • Weapons: Mounted directly on hardpoints, have energy or ammo requirements to fire, and firing arcs (including fixed and all-range)
  • Magazines: stores ammo for ammo-using weapons; explodes nastily when destroyed. May provide extra hardpoints.
  • Engines: Mounted directly on hardpoints; possibly need to be mounted to multiple hardpoints (thus making the ship graph non-planar; oh well). Turns energy into thrust based on the ship's orientation, and may also cause spin if engines are fired asymmetrically.
  • Generators: Mounted directly on hardpoints; possibly need to be mounted to multiple hardpoints. Generate energy to run weapons and engines.
  • Batteries: Store energy when there's an excess; generate energy when there's a drought.
In battle, the player and enemy ships basically attempt to destroy each others' power cores. Any modules that become disconnected from an energy source are destroyed, and any modules that become disconnected from engines are stranded. The AI would track how damage is dealt to each of its modules, how much was lost when each module was destroyed (due to lost links to generators), and when in the fight the module was destroyed; it would use that information to prioritize protecting modules. I have some plans for how it would decide what modules to plant onto its chassis, too, though I suspect that will require a lot of work. I'm also not certain how it will decide how to add new offensive capabilities. What I'm mainly wondering is if this game sounds like it'd be fun. Most shmup games tend to feature the player dodging obscene amounts of firepower while picking away at his opponent's defenses; however, boss ships of this sort are typically not nearly as capable of dodging incoming fire, so the player would almost have to accept that some components would be lost in the battle. My main fear is that the game would simply turn into what amounts to two turrets shooting at each other, with the one that has the best armor and offensive guns winning. I want maneuvering to be important, while still retaining the idea that these are massive, heavily-armored battleships instead of tiny single-seat fightercraft. Any ideas on that front? Does the game sound fun? Any other input, for that matter? I'd love to hear what you have to say. EDIT: I forgot about controls. I'm planning to allow the player to simply bind module actions (e.g. guns and engines) to as many keys as they like, with some default bindings set up for them. This would allow for a great deal of flexibility and strategy in how weapons are used, though I'm a bit concerned that it's too complex. Ideas here are also appreciated.
Jetblade: an open-source 2D platforming game in the style of Metroid and Castlevania, with procedurally-generated levels
Advertisement
I like the idea. The idea of a ship controlling what upgrades go where based on what damage is done. But what about those who like to micromanage? Like you already have the key bindings set.

Maybe in a MM (Micromanaged) mode, you can provide statistics to the user, and allow the user to decide based on this (for comparison, the enternal argument "Automatic transmission vs. Manual Transmission").

It would be nice to see boss style fighter pitted against boss style fighter in a game.
[ Six Hour Game Contest | ( Thread | Blog | Wiki | 6hour Bio ) ][ Website | (Blog | Gallery ) ]
Outstanding idea (but, well, I guess I'm a long-time fan of Warning Forever).

A two elements I think would be useful when making mobility a better idea:
  • Rams: armored edges that can be used to damage the enemy through direct contact.
  • Hull: make some modules harder to destroy than others. This way, it becomes interesting to rotate the ship to display the armored side, and to aim at unarmored sides.


What's nagging me is that as a ship gets destroyed, it has fewer and fewer weapons (making the battle uneven), so the slightest initial unbalance might set the outcome. To allow for more strategies, I would do as in Warning Forever, and award victory through a point system (bonus when you destroy modules, bonus when you destroy the core, bonus when you destroy certain special targets). This way, even though it's losing modules, a ship may still be able to concentrate fire on vulnerable enemy modules.
DakeDesu: the automatic module placement was for the AI's ship. The player will be manually placing all of their modules. The goal basically becomes to see if you can design and pilot a better ship than the AI can.

Each module will have its graphic (either prerendered or as a vector line drawing; I haven't yet decided), and a set of hardpoints with orientations. To attach a module, you need to place it so that one of its hardpoints aligns with a hardpoint already on the ship, and so that it does not overlap with an existing module. I'm hoping to allow some hardpoints to swivel, which would allow for transformative ships (e.g. a wing swivels out, bringing an array of lasers to bear), though I think that's probably more complexity than I really want for starters.

ToorhVyk: I actually had ramming modules planned (the idea being that the AI would place them on sides of their ships that are "opposed" to strong engines), though I forgot to mention them. And armor is, of course, already in the module list. :) Good point on the unbalanced nature of combat. One way to account for that (which Warning Forever already does) is to encourage the player to leave as many modules intact as possible. Say, the player salvages the enemy ship after it's been rendered unoperational, and intact modules provide more materials than destroyed ones. So while you could simply destroy every module and then take down the defenseless core, you'll get much less "money" that way, whereas the next computer opponent faces no such disadvantage.... That way, the player is encouraged to leave as much of the enemy ship operational as possible, which means that he'll be facing down heavy fire for most of the fight.
Jetblade: an open-source 2D platforming game in the style of Metroid and Castlevania, with procedurally-generated levels
Quote:Original post by Derakon
DakeDesu: the automatic module placement was for the AI's ship. The player will be manually placing all of their modules. The goal basically becomes to see if you can design and pilot a better ship than the AI can.


Sorry, my bad.
[ Six Hour Game Contest | ( Thread | Blog | Wiki | 6hour Bio ) ][ Website | (Blog | Gallery ) ]
It's an excellent game idea (another Warning Forever fan here :D ) but I'd be concerned about the controls. The AI can control any number of weapons simultaneously, but what is the poor player going to do? You could set his weapons to fire automatically unless he's controlling them, but as the ships grow, it's going to turn into an AI-vs-AI fest, with the player's actions increasingly irrelevant. Perhaps you could permit him to fire several weapons simultaneously at the same target; or set aim points and assign different weapons to them. I don't know if it fits with what you had in mind, but you could also consider going away from the action-oriented original to something more strategic, with the player having the ability to pause while giving orders to the submodules.

Another point to consider is screen real estate. In WF, the boss ship starts taking up enough screen space that it's difficult to maneuver even your little fighter at levels 10 to 12; with two such behemoths duking it out, well, you're going to need more space, and that means smaller ships, losing some of the nice graphics impact of the original.

As an added possibility, how about the AI controlling the little fighter, with the player having the job of blowing that pesky little annoyance out of space? An interesting switch if you can write a good fire-avoiding AI for the fighter. You'd have to make the weapons slow enough that they could be dodged, so that the player needs to set continuous-fire guns to block off sections of screen, just like the AI eventually does to you in WF. An AI with its literally superhuman reactions should be really good at dodging and aiming simultaneously, too. You could make the goal "How far down can you keep the cost in battleships?", and let the player do his own ship design between levels.
To win one hundred victories in one hundred battles is not the acme of skill. To subdue the enemy without fighting is the acme of skill.
Take a look at Stratosphere:
http://www.gamespot.com/pc/strategy/stratosphere/review.html (blame me for not finding a better link).

It's pretty much the same thing you are thinking about, building a fat fortress in the sky with guns, reactors, walls, shields, science-stuff and a command point (and more stuff). Once the command point dies, everything dies.

The game itself rocks pretty hard, but I got stuck in the second or third mission of the campaign, because it was so ugly hard...

Anyway, a pretty difficult point whould be creating good controls for the fortress, but maybe you could turn that into a feature. What about this:
You have to buy controllers and can associate a key with this controller. Furthermore, you can attach several items - engines, weapons, shields? - to this controller.
If the associated key is pressed, the items are activated. If the controller is killed, the items cannot be activated. However, the controllers should be repaired automatically after a fight, otherwise, losing a controller might be a game-critical move.
Thanks again for all the comments!

Your points are all well taken. I am concerned about the difficulty of controls. As Hk suggested, the plan is for players to be able to bind module actions to as many keys as they like, which, while allowing for control to become way too complicated, should be sufficiently flexible for players to do what they need to do. I have some ideas for fire control, too - some special modules would augment your targetting systems so that you can e.g. fire at the mouse location, automatically target enemy gun modules (or other module types from a list), and so on. Gameplay-wise, what I'm looking for is probably something one or two levels up from an RTS - the player decides high-level strategy, but leaves the firing of individual guns down to "fire/don't fire" switches. The level of abstraction should scale with the sizes of the ships, so at the start you'll be micromanaging everything, but later on you'll mainly be doing high-level strategy and maneuvering. Right now I don't really like the idea of pausing, though simply slowing down bullets and lasers even more than they usually are might well be a good idea.

The plan for dealing with screen real estate is to steal an idea from Star Control 2, where ship combat is done in a huge arena that continually zooms to keep both ships in view. Fights would start out as fairly intimate affairs, with short-ranged weaponry and small ships, and grow to cover more of the battlefield as the game progresses.

As for letting the AI control the fightercraft instead of another boss ship, that's definitely something I'm considering, but in my opinion it'd be basically a different game (or at least an expansion). I'm more interested right now in coding a reactive shmup boss AI than a fightercraft AI.

One of the things I'm considering is having a UI/HUD that evolves as your ship grows more complex. Certainly at the start, you'll have one generator, one engine, and a small suite of forward-firing guns, for example. As you add more generators and batteries, the perimiter of your UI will get populated with extra information. When you get detailed fire control, a list of potential targets will appear that you can select for your guns to autotarget. A scanner module might show a scaled-down version of your enemy with weak points highlighted (a weak point being a module that, when destroyed, would take a lot of modules with it). If I do this right, it will add immersiveness. Of course, if I do it wrong, it'll just look cluttered.

I think right now the main thing I like about the game is that the concept is simple, but there's lots of room to grow. At its most basic, all I really need to do is have a "strut" module and a "gun" module (ditching concepts of ship mass, energy generation, and so on); even that would provide for fairly interesting gameplay. Adding more modules simply increases options.
Jetblade: an open-source 2D platforming game in the style of Metroid and Castlevania, with procedurally-generated levels
Well, here's my suggestion, based on my own ideas of what I like in games.

Don't let the player control a huge, boss-like ship. The "screen real estate" and "AI battle" issues brought up will probably kill your design. Instead, allow the player to acquire and upgrade (through some sort of point/cash system) different ships to add to his fleet. He can field, on any level, a certain number of ships (probably 4-5). The player can control one or none of these ships, but he customizes the ships and assigns them their own local AI.

For instance, you have your basic shmup level. Let's say the player takes into the fight three ships. The first ship is player-controlled (let's call it "the hunter"). It's got a few weapons, let's say a heavy laser and a spread-gun attack. The second ship (let's call it "the cleric") is AI controlled. It has huge upgrades to frontal defense, a sort of offensive shield/EMP pulse and it also has the ability to heal/reload ships that are directly behind it. The third ship (let's call it "the warrior") has homing missiles and a straight ahead machine cannon.

The player can adjust the AI of any of the ships under his command on the fly, or during a pause. This adds a huge element of strategy to the game, encouraging the player to "draw up plays" and create ships that will play the roles he desires. For instance, here would be the general assignments for the three ships:

The Cleric will continually move left to right a few ship lengths from the bottom of the screen (assuming vertical scrolling). It will use it's EMP/shield on enemies that get close to it. It will heal itself when not engaged, and heal either of the other two ships who fly behind it.

The Warrior will take out "light" enemies, such as your standard waves and those generated by motherships. If it is hurt, it will take refuge behind the cleric and be healed. This command could also be given by a hotkey, as could a command to target a certain enemy or a part of an enemy.

The Hunter, usually controlled by the Player, is faster than the Cleric and slower than the Warrior. The player uses it to take out tougher enemies and strategically important areas. It's AI, should the player relinquish control, would be to hunt down and assault major targets.

In addition to the Cleric, Warrior, and Hunter, you could at the Rammer, Sapper, Healer, Tank, Kamakaze, ad infinitum.....

Ideally, the player would have several different "plans" to which he could switch to...for instance, if the primary tank is getting low on health, he may switch places with the cleric, to heal himself...but perhaps he does not heal other ships as well as the primary cleric. Meanwhile, the overall attack by the player becomes less aggressive, due to the non-optimal roles being fufilled by the player's ships. A good player would be able to time his "recovery" formations during relative lulls in the action.

Boss battles vs. multiple allied ships would be fun to design, I think.

This would require a robust AI system, of course...but how much more complex would it be than what you had?

Anyway, I read this thread and thought that. It would probably make a good game, but take it for what it's worth

EDIT: And of course, the distribution of enemies on different levels, as well as the bosses, could adapt to try and defend against a player's general strategy, as in WF.
all around the world today, a kilo is a measure;a kilo is 1000 grams, easy to remember
Interesting ideas, Thunder, but they'd be a completely different game from what I have planned. My concept has two goals:

1) Allow the player to design and control a huge boss ship in the style of space shmups everywhere (and ideally, make the player feel like he is controlling such a huge ship).

2) Allow the enemy to react to the player's tactics and adjust its design and AI accordingly.

I feel that these two points are really the keystones to the game idea I have, and I'm not really willing to relinquish them. A classically-designed shmup where the player can order multiple ships around could be very interesting indeed, but it requires elements of game design that I simply don't feel like getting involved in (namely level design, graphics, multiple AIs, et cetera) and doesn't include those that I do want to get involved in (resource management, high-level strategic realtime battles, "learning" AIs, modular gameplay). I encourage you to work on it if you're interested in the idea, though; we need more space shmups!
Jetblade: an open-source 2D platforming game in the style of Metroid and Castlevania, with procedurally-generated levels

This topic is closed to new replies.

Advertisement