Sunday, June 30, 2013

Where Starships Fear to Tread

I've played more than my fair share of starship combat games, so I thought I'd talk a little bit about cinematic action combat INNNN SPAAAAACE.

Specifically, let's talk about Star Trek Online's strength: their starship combat. While I wouldn't say it's actually superb, it is at least more fun than any other MMORPG's starship combat.

The big strength of their starship combat is the exposed angles system. You have four shield quadrants that take damage separately, and you also have arcs of fire which are distinct depending on the weapon. The result is that you're constantly jockeying to angle your ship so that your intact shields take the brunt of the enemy fire, but also so that your weapon arcs can fire on the enemy. This can get quite hectic depending on the cycle rates of your weapons, how many enemies you're facing, and how fast your turn rate is compared to their speed.

Of course, the topological challenges of trying to put your ship in the right place are only part of the fun. The other half are the long-cooldown/one-use special abilities - usually granted by officers. This isn't like a shmup where your bombs are there to get you out of a tight jam: your officer abilities are part of your core gambit. You go into the middle of the enemy fleet knowing that your engineer can do a shield overcharge and keep you relatively unharmed. You knock down an enemy's facing shield knowing that you can fire an overcharged torpedo down that gap for massive damage.

I was thinking about it. What if we were to build a similar game, but with a bit of my design preferences instead of what they went with?

First off, the vertical maneuvering seems halfhearted. If it was actually part of the gameplay, you'd have dorsal and ventral shields so it could be made part of the orientation play. I think that adding dorsal and ventral shields would complicate things, so what I'll aim for is more like Star Control - a 2D system. The camera will be full 3D, but the space combat happens on a 2D plane. This also allows players to keep a sharper eye on complex tactical situations such as fleet battles, and allows us to overlay arcs on that 2D base plane so you can clearly see who is in what arcs.

This camera/play leaves us with two options: a faster play (like Star Control) or a slower, more tactical play. For cinematic's sake, let's go with the slower play. What's the slower play?

Well, the angle play needs to be more ponderous and predictable. So what we'll do is we'll make it so that your engines have two settings: driving forward very fast without being able to turn much, and not driving forward much at all, but able to turn fast. Switching between the modes leaves you with the worst of both for five or so seconds.

This means that your maneuvering is significantly "heavier" without actually making it any slower. In fact, we can make it feel more fast-paced than STO's movement, even though for our purposes it is tactically "slower", because you can only really adjust position or angle, not both. It also leads to some ships preferring a "torpedo dive" and others preferring to stick and shoot.

The other half is, of course, the shooting. In this I'd propose using the mouse to click on the part of the map you want to fire on. Your fire angles are clearly displayed, so you just click on a ship within one of those firing angles, and you'll fire all those weapons at it. Maybe left-click for one weapon type and right-click for the other.

Rather than have distinct regen cycles, I would propose that you can hold down the mouse key to perform sustained fire - whether this means a continuous beam of energy or a long slew of torpedoes. However, sustained fire will quickly shake, heat, or drain that weapon, meaning it gets weaker or less accurate the longer you fire the shot... and takes longer to recover to full afterwards. So it's always a tradeoff - do you prefer lots of little stings? Is it time to go in with a barrage? Are you close enough that the lower accuracy will be okay?

This allows starship captains to have more control over the timing of their weapons - instead of a simple counter where you're wasting time if you aren't firing them every three seconds, this lets captains choose to hold their fire in the heat of battle and gain a benefit: better/longer firepower when they need it.

Now, about those crew.

The heart of any cinematic starship battle system is, in my opinion, how you work the crew in. Human faces are critical. Even in STO, you never see them... even though in Star Trek OFFline, every battle is at least half faces. Here's my suggestion:

Every crew member generates a tactical option at a specific rate, depending on level, specialty, stats, and exhaustion. This rate is never very fast - at fastest, you're looking at 30 seconds. Once a crewmember has generated a tactical option, they are ready to use it, and will recover exhaustion slowly if you wait. Using the tactical option, of course, creates loads more exhaustion.

When you tap a crewmember (presumably linked to the number keys), you are telling them to take their tactical option. They are clear about what they can do up-front, so you always know what tactical option they've generated. When a tactical option enters play, the battle freezes (or slows to a crawl) while the top half of the screen is replaced with a view of that ship's captain telling that specific crew member what to do - it's maybe five seconds at longest.

IE, I tap my navigator. The screen pops up with me saying "Sulu, microjump behind the Defiant, let's end this."

During the time the cut scene is playing, other ships may trigger their own tactical options. This isn't first-come first-served - out of everyone who taps a tactical option during the scene, the one with the highest priority (closest to target ship) will happen.

So if you see my cutscene playing, you can counter by, say, tapping your weapons officer. "Mzikk, they're coming in for a taste, give them the full course!" This means that my cutscene on the top half of the screen is shunted to the bottom-left, and your cutscene takes the top screen... but the tapping could continue, each time squeezing the original cutscenes down.

"The Enterprise is walking into a trap. Put us between them." Same kind of maneuver, but because the cutscene makes the tactical situation transparent, the system adapts it to be better aimed.

When the cutscene chain finishes, there is a quick few seconds of automation while the involved ships perform their various maneuvers (each only takes a few seconds, and often happen simultaneously). Then battle resumes.

Another key element is that you can tap different crew at the same time. For example, if I tap Mr. Sulu and command him to get behind the Defiant, before that cutscene is up I can tap my weapon's guy and the cutscene continues, cutting to me turning slightly and saying "Then, Lt., give us a full salvo right up his backside!"

At no point is the battle actually removed from the screen - it occupies the lower-right quadrant at all times.

Anyway, I think it sounds like it'd be fun!


Anonymous said...

That sounds really great. What you said about some ships moving around quickly while it's more efficient for others to stay put while firing sounds a lot more like Star Trek than anything I remember from STO.

The cutscene idea is interesting. For a singleplayer game, in particular, I think that could be great. "Interrupting" cutscenes by adding input from different crew members could make it feel more like an episode of one of the shows.

My main concern, I think, would be that I wouldn't have enough time to figure out what each crew member has in mind and utilize them properly.

In a simplified version of your idea, I could see certain crew members adding their input automatically, requiring you to say "Yes. We'll go with your idea," or "No. I'm sticking with my plan." That way you don't have to take time reading what each person has to offer.

Maybe the first-officer speaks up automatically like that while other, lower-ranking officers need to be manually asked for input. I do wonder how much detail you could put into something like this, though. I feel like the more options you give the player, the more options they'll want.

For example, if my first-officer can help me pull off some fancy maneuver, maybe I would want to pull off some other fancy maneuver, but there wouldn't be an option for that. This sort of situation would make the limitations of the system more apparent. How would you deal with that issue?

Craig Perko said...

I think those are good points - good enough that you shouldn't be afraid to attach a name to them.

Starting from the last question. My conception was that every officer would start with only 1 tactical option, but that you could add more as you leveled them up, in sort of a "Pokemon can learn X moves" sort of way.

They choose a random tactical option each time they're readied. If you really don't want that option right now, I'm thinking you could shift-click them or something similar to tell them to forget it, in which case they'll restart the generation process, but without the high exhaustion cost of actually using the tactical option.

Now, in terms of keeping track of the crew and what it is offering, I'm thinking of ramping it up slowly. In the beginning, you'd probably only have one named crewmember, and they'd only have one tactical option. You certainly won't get lost in that!

You build your own complexity as you go, adding more tactical options and crew members. Also, there's always the briefing screen available to you if you need help - just mouseover the crew member and it'll give you a long description of what they are offering.

So if your tactical officer has a microjump ready, you would see "microjump!" hovering over their heads. If you aren't sure what it is, you could mouseover it for a longer description. Whether you could pause would depend on whether it's single player or not.

I think this option is better than having them actively volunteer and you turning them down or accepting, because it allows you far more control over exactly when to use the techniques and doesn't interrupt the flow of battle.

Quicksand-S said...

Actually, the reason I made myself anonymous was that I couldn't remember what name I might've used on here before and didn't have time to check. I'll go with Quicksand-S, I guess. I like to have some semblance of privacy online, so I don't use my real name. I co-developed a little game called We Want YOU a couple of years back. We've worked on other projects since, but haven't released anything else.

Anyway, I may be in the minority here, but I really dislike leveling requirements in games like this. If I'm expected to play strategically, I want a wide variety of options from the start.

Also, I just find it frustrating when a unit/crew-member/whatever can't do something that they should logically be able to do, just because they haven't "unlocked" the ability. That issue can be remedied by changing the setting or tone of the game, though.

You mentioned Pokemon. That's a nice example of a game where the concept of levels and experience matches up with the setting and story. You are, after all, training these creatures. I realize that most games have some sort of experience system these days, but I feel like it's important to have gameplay and story/setting fit together logically. For example, maybe your game is about cadets that are still learning the fancy maneuvers and aren't quite ready to take crazy risks with the engines. They gain experience and confidence as the game progresses.

I like what you said about seeing words above officers' heads. In your original post, I was imagining huge walls of text to read through in order to figure out the available options. A single word or short phrase is great and would let the player see at a glance exactly what options are available.

I do think there's something to be said for more active crew-members, though. Maybe proposals don't need to be made with cutscenes. The first officer can say "Captain, maybe the Picard Maneuver would work here," or the tactical officer can point out that "The warbird's rear shields are weakened" (leading to some fancy trick that gets you behind them). That doesn't have to interrupt gameplay, and it could still be combined with the "words above their heads" idea to let you have access to all the options while also having some interaction with your crew.

Another benefit, if we're talking about actually developing such a game, is that recording a sentence or two for each option would be cheaper and easier than making entire cutscenes. I think gameplay feel and ease-of-use are the priorities here, but I like to also keep ease-of-development in mind at the same time.

Craig Perko said...

Hm, I think we're going to have to disagree about your last points, but in the end it's a relatively small tweak and you could easily test it both ways.

As to leveling, in my opinion the only valid purpose for leveling is to guide the player into the complicated parts of the game smoothly.

And that's the point here. The idea isn't to take all your time grinding: it's to let you get accustomed to the concepts without feeling overwhelmed.

Quicksand-S said...

I get the feeling I wrote a bit too much there. Ah well. Blogs like this really get the creative part of my brain going.

Yeah, it's true that leveling does help to slowly introduce new gameplay elements as the player gets used to the game. I can certainly see the merit to your way of handling this starship idea.

Do you think you'll prototype it?

Craig Perko said...

Well, I sometimes run a series of tutorial videos on my YouTube channel, and I've started prototyping it there. It's not very advanced yet, though.