Writing Starsector

The next update will add strong narrative RPG elements to Starsector, among other things.

I feel no small amount of trepidation because this is both a change and it is a particular story about particular characters in a way the pure sandbox certainly isn’t. This necessarily constrains your – the player’s – experience of the game-fantasy and the meta-game fantasy of an “unfinished game” which has the potential to become everyone’s dreams in a free-floating quantum state… until you see it for real and it turns out it isn’t quite what you dreamed.

I suppose this seems like an awfully negative way to start off; this is what I mean about trepidation. And I am legitimately excited about sharing more of the world of Starsector, letting players dive in a bit closer and get a feel for what it’s like for people that live in this world. Find out what they think, find out a bit more about why movers and shakers move like they do. If I may say so, I think we’ve done some pretty good work!

The written wordcount has already exceeded the minimum definition for a novel (50k) a few times over by now. I’ve attempted Nanowrimo a few times in the past and always choked almost instantly. My experience writing Starsector has been a stark contrast – the words just flow! It seems so obvious, most of the time, what comes next, what feels right to be said. I suspect part of it is the constraint of the medium focusing creativity, but it may also perhaps be the very clear connection to an audience (that’s y’all out there!). A novel feels a bit like a bunch of words floating out  in (ha) space. A game, however, has a player. They must actively engage and progress. I know a player is committed in a way a reader isn’t. (Which probably isn’t at all true; people read books, after all. I’ve even read one or two in my day.)

Whatever it is, maybe I can’t rationalize it. But something works here for me in a way that hasn’t elsewhere. I’ll take it.

Let’s get to the nuts and bolts of this.

We’ve had to deal with certain constraints and design problems while adding written content to Starsector. Some of these are faced by all games which use writing, some are particular to the context of Starsector. I am not going to talk about any specific narrative beats or plot details, but I will talk about how the narrative is structured, so from a certain point of view one could derive meta-spoilers from this blog post. I think the most pure and magical way to experience Starsector would be with no foreknowledge of any of this, so I’ll give you fair warning now: if you don’t want to know anything, stop reading.

Read the rest of this entry »

Faction Relationships

Sometimes during development, you end up doing things you hadn’t initially planned on doing. Fleshing out player-faction relationships is one of those things. It was something I knew I’d have to look at eventually – the current system having two attitudes towards the player – “meh” and “shoot first and don’t ask questions”, with nothing in between, was definitely not going to hold up. Initially, though, it didn’t seem connected to the economy and events systems, which are the focus of the upcoming release. So, how did faction relationships get dragged into this?

With the introduction of trade and events, player actions carry more meaning than they did before. A successful trade run contributes to the stability of the markets involved; more so if the markets are small. Smuggling can be a hugely destabilizing force. A food shortage has long-term consequences, which depend on how severe it is, which in turn depends on whether the player got involved, and if so, how. Markets declare bounties when hostile fleets are doing damage to the economy, and so collecting on those bounties – by removing said fleets – has a real impact as well.

Not all of these are earth-shaking, and there’s still some work to do on making the consequences more pronounced and more clear. One way to do that that is to make other inhabitants of the world notice, and react to, your actions. It’s a clear way for the game to say “what you just did matters”. Provided that your standing with a faction has a tangible effect, it also increases how much it matters. We get improved clarity and increased impact – a win/win! Factions having more nuanced attitudes and responses to your actions also increases their believability.

This is all a long way of saying that if the player can do things that matter, it’s tough to separate that from NPCs having appropriate reactions, and if those reactions are limited to “attack” and “don’t attack”, that doesn’t provide enough expressiveness.  (Put like that, this seems rather obvious… ahem, moving on.)

faction_screenIf you’re going to have more detailed faction relationships, there has to be some way to see what they are. Darn it, more UI work.

Read the rest of this entry »

Automatically Resolving Battles

Picture this – you’ve built up just about the toughest merc outfit this side of the sector. Your officers are all hardened veterans. Your ships are outfitted with the best weapons and hull mods. Your skill is legendary, your reputation for prevailing against incredible odds unrivaled. Then, you encounter a small enemy convoy – they pose no threat, but the resources they carry would be a welcome addition to your cargo holds. With hardly a second thought, you order an attack – but really, does such a minor fleet action demand your personal attention? “I’ll let my second-in-command handle it,” you decide as you press the button to auto-resolve the “battle” not worthy of the name – it’s target practice, really. But a nasty surprise awaits – you’ve lost a top-line ship, and two elite officers are dead!

… and that’s the scenario we all want to avoid. Auto-resolve has great potential to frustrate the player, because it can obliterate their progress (in the form of resources, ships, and officers) – but worse, it can do this unfairly. The unfairness comes from breaking the player’s expectations of how the game world works. In our example, the player knows their fleet can mop up that convoy – but auto-resolve plays by a different set of rules, one the player hasn’t been exposed to before, one that isn’t clear. Even worse, the rules are hard to learn because they’re hidden. In the situation above, the player might assume that luck plays a big role – but it may well be that the officer skills weren’t valued as much as they should be, or the weapons you’ve equipped the ships with, or any combination of those and other factors. The player might give up on auto-resolve entirely – there’s no clear way to get better at it, and it’s not apparent whether improvement is even possible – and the player is punished for experimenting.

It’s still necessary though, because the alternative is having to fight every piddling battle yourself. Besides, battles that don’t involve the player need to get worked out somehow. So how can we address these underlying problems? Because I like lists, let’s make a list of things that aren’t fair to do to the player:

  • ignoring any improvements they’ve made to their fleet – be it weapons, hull mods, officers, character skills, anything at all that has a bearing on combat
  • ignoring the overall rules of combat the player knows – carriers increasing the effectiveness of fighters, bombers being effective vs large ships, point-defense weapons countering fighters, etc
  • destroying any ships which would absolutely never, ever get a dent put in them if the actual battle was played out. A wing of Talon-class interceptors should have no chance to take out a wing of Wasps, for example.

To sum it up, the auto-resolve system has to roughly simulate the way combat plays out, take all relevant ship & fleet stats into account, and be very careful that “adding a degree of randomness” doesn’t become “anything can happen”.

One thing we can’t take into account is the actual player’s skill at piloting (not their character’s skill, which can be). That’s ok – a battle where the outcome hinges on the player’s personal skill shouldn’t get auto-resolved to victory, anyway. More importantly, I think the player wouldn’t expect auto-resolve to do as well as they do with themselves at the helm.

In the remainder of this post, I’ll talk about the approach I decided on and give some examples of it in action. Read the rest of this entry »

Ship Loadouts

One of the main features in the next release is going to be the ability to customize your fleet before you embark on a mission, so I thought I’d talk a bit about how that works.

The are two main aspects of ships you can customize – one is the weapon loadout, and the other is hull modifications, or hull mods. Each ship has a number of weapon mounts (slots), each of which has a type and a size. For example, a small ship might have 4 small energy slots and 2 medium ballistic ones. When you fit a weapon in a hull, the size and type have to match the slot – for example, an Antimatter Blaster is a small energy weapon, and can be fitted into small energy slot. You can also put a weapon into a slot that’s one size larger – so, you could put the aforementioned blaster into a medium energy slot.

Hull mods provide passive bonuses such as increased armor and top speed, as well as more exotic ship and weapon attributes.

So, what’s to stop you from just cramming a hull full of the the best weapons and mods? Ultimately, that’s what you want to do, but both weapons and hull mods require ordnance points to install on a ship. Each ship has a maximum number of points it can support, so deciding just how to spend those on weapons and mods is the challenge in creating a good ship design (also known as a variant).

You can also spend ordnance points on installing additional flux vents (to increase the flux dissipation rate) and flux capacitors (to increase the maximum flux limit). Flux is generated by using shields and firing weapons, so a good balance of firepower and flux efficiency is critical for a successful design. Each extra vent or capacitor costs 1 point each, ensuring that any leftover points can be spent on something useful.

Here are a few screenshots of the refit screen – it’s still a work in progress (in particular, the UI to assign hull mods is missing, as are several other UI components) but it should give you an idea of how it’s shaping up.


Work-in-progress shots of the refit interface

Captain Personalities, Fleet Control Update

Ship captains (and wing leaders) can now have their own personalities. What exactly is a personality, in game terms? I’m so glad you asked!

For now, we’re concerned with combat-related aspects, so a captain being greedy or corrupt isn’t important – although it will be once you assign him (or her) to run an outpost for you. A personality consists of two parts – an overall bravery rating, and a desire to perform certain types of assignments (if you haven’t yet, check out this post to see what those are).

The following baseline personalities are in the game now:

  • cowardly
  • cautious
  • steady
  • aggressive
  • suicidal
  • fearless

It’s better to think of these as character traits that will later be combined with non-combat traits to make up a complete personality.

So, what do these *really* do?

Bravery
A captain’s bravery affects the immediate combat performance of their ship. A cowardly captain will hang back unless his side greatly outnumbers the enemy – and will be extremely careful to avoid enemy fire. A fearless captain doesn’t care much about being outnumbered (never tell him the odds), and is willing to face down the guns of the biggest battleship in the Sector if that means performing his duty.

In gameplay testing, a brave captain does much better against tough odds than a cowardly one – they’re able to commit to a a particular maneuver and not interrupt it out of fear, which, ironically, often keeps them safer. However, if the odds are too stacked against them, a brave captain’s ship is almost certainly doomed.

A cautious captain is much more likely to keep their ship safe when the odds are bad, but isn’t as useful in an even fight – unless their ship is armed with long-range support weapons, which they can use effectively while feeling safe. A cautious captain is also quite good at harassment, as he won’t force the issue and can keep an enemy tied down in a game of cat and mouse for a long time.

Assignment Affinity
As the fleet commander, you give general assignments to your fleet. For example, you can order your fleet to assault a particular objective, form a carrier group behind your lines, and patrol an area for enemy presence. The ship captains themselves organize to carry these tasks out, and their personality plays an important role in who does what.

An aggressive captain scoffs at the idea of staying out of direct contact with the enemy. They’re likely to join assaults, capture objectives, perform strikes on enemy battleships – but not hang back wih fire support ships, escort a carrier deep in friendly territory, or (gasp) lead a civilian craft to safety. Suicidal ones will outright refuse to perform some of these duties, finding any excuse to attack the enemy.

Cautious and cowardly captains are naturally the opposite. They’ll look for any excuse to avoid joining a direct assault, and will prefer sitting back in support roles whenever possible – and even retreat against your orders, when it’s not.

Thus, knowing their personalities and managing the assignments you create is important to your fleet’s performance. For example, you might want to keep an overly aggressive captain from going off on their own and getting killed – but telling them to defend a location won’t do. Instead, you might assign them to more dangerous-sounding patrol duty… in a safe location. Read the rest of this entry »

Forum Blog Media FAQ Features Digg it! Del.icio.us! Share this on Facebook Reddit Stumbleupon it! Technorati Tweet it! Download Starsector for Linux Download Starsector for Mac Download Starsector for Windows Preorder