Comm Relays

Since the last post, I’ve been working on a lot of framework stuff. All of it is directly in support of the content for the next release, but until now, it hadn’t all come together in a way that would make it easy to demonstrate. Now, though, there’s a good vertical slice to talk about; a new piece of content that uses many of the new pieces – the comm relay.

We’ve talked about events and information gathering in the previous blog post, and that’s where comm relays come in. You need to be in a star system with one to receive news reports and other kinds of intel. Here’s what one looks like in-game:

 comm_relay

Read the rest of this entry »

On Trade Design

An Aside
It’s that time again when I get to talk about stuff that’s going to be in the next release. This time, though, I’m going to talk about it a little earlier in the dev process than I’m usually comfortable with. Why is that? Well, for one, I’d like to talk about it. It’s fun! For two, waiting until it was mostly done would mean this blog post would come out a week or so before the actual release, and I don’t think anybody wants that.

In short, instead of talking about the actual implementation of something, we’re going to talk about the design and the motivations for why things are going to work a certain way. This also means that things almost certainly won’t work exactly as described here, because implementation gets in the way of finely crafted theory on occasion. Consider yourself warned!

Trade
Now, what was I talking about? Oh, right, trade. The trouble with trade is that in its most basic form, it’s boring. You go someplace, buy some stuff, go someplace else, sell whatever you bought, hopefully make a profit, and then repeat that until you have enough credits to do something that’s actually interesting.

freighters_over_planet

Read the rest of this entry »

Starsector 0.6.2a Release

Update: The hotfix for 0.6.2a is now out. The changes are:

  • Fixed ArrayIndexOutOfBoundsException crash when flying around in campaign mode
  • Fixed crash caused by trying to do a drag-select in the command UI while the battle is ending
  • Fixed crash caused by scuttling last ship at station and then switching to the cargo tab
  • Fixed issue where exiting to the main menu directly from combat could result in the encounter dialog popping up after loading a saved game
  • Fixed issue where an enemy fleet with low CR across the board would stand their ground but then not deploy anything in battle
  • Fixed bug where CR reduction from the Combat aptitude would not apply to the piloted ship if command was transferred prior to battle
  • “Crash mothballing” now actually works
  • Hermes description now fits in tooltip
  • Modding: fixed issue with getFleetManager() crash
  • Modding: fixed issue with fireSoundOne being played at the first shot rather than at charge startup
  • Modding: CampaignFleetAIAPI.performCrashMothballingPriorToEscape now takes a FleetEncounterContextPlugin

Please re-download the game using the links below – make sure the file you get ends with RC3.

Starsector version 0.6.2a is now out! You can get it here:

(Alternate download links: Windows Mac Linux)

 

As with other point releases, this is a followup to 0.6a. The main features in this one are:

  • Adjustments to combat readiness (more ship longevity and more choices, details below)
  • Four new ships!
  • Campaign help – dialogs that explain various game mechanics – how to split cargo stacks, how CR works, etc
  • Choice of starting difficulty – Easy and Normal. “Easy” gives you a choice of better starting ships and a Mule combat freighter, does not affect the rest of the campaign
  • Updated to use Java 7 and the latest version of LWJGL (2.9.2). Improved performance, OS X 10.6 (Snow Leopard) is no longer supported
  • Reduced memory usage (mostly affects larger mods)
  • Lots and lots of assorted bugfixes/improvements etc

The full patch notes are here.

A note about OS X: if you’re using 10.6, you should be able to upgrade to OS X Mavericks (for free) and run Starsector from there. Not all machines running 10.6 are able to run Mavericks, but the great majority should be able to. I’d have liked to keep supporting 10.6, but Java 7 doesn’t run there, and the machines that can’t be updated to Mavericks likely have a rough time with Starsector to begin with. All in all, it seemed like a worthwhile trade-off for improved performance and access to additional Java features for development.

As usual with OS X, if you’ve got Gatekeeper enabled, right-click on Starsector and click “Open” when running it for the first time. Otherwise, you won’t get the option to run it anyway when it complains that the app is from an “unidentified developer” (that’d be yours truly).

A bit more about the changes to CR:  the deployment cost has been cut in half, but so has the recovery rate. This means that the time to recover from a single deployment and the supply cost per deployment both remain the same, but ships can be deployed more times before exhausting their CR.

In addition, low combat readiness no longer prevents a ship from being deployed. Instead, ships will suffer progressively more damaging and debilitating malfunctions – allowing for a desperate last stand rather than a helpless retreat, if it comes to that.

Ships & Stories

When I was first drawing up spaceships for Starsector we determined what to make based mostly on what felt right according to the conceit of idealized WW2-era naval combat in space. Obviously we needed a big battleship (the Onslaught), cheap swarming fighters (the Talon), a nimble frigate (the Wolf), and a giant carrier (the Astral), etc. The roles and variations of ships pretty much suggest themselves, and the form follows their function. If it’s a battleship, it should look like its tough and packs a heck of a punch. I’ve certainly drawn a few ships without a hard plan upfront but even then I’m always thinking about what kind of role the ship in question is going to play in the game.

It’s just the way I work: Form necessarily reflects function, to my mind. The visual logic of a game should have internal consistency whether it has much relation to real-life realism or not, but it can at least point to real-life aesthetic references for the feeling or idea, if not actual function. So if you sit back and consider what a battleship would really look like in space, it’d probably look like nothing because the display scale would make it a dot that says “Space Battleship” next to it, or as soon as combat began it’d be immediately destroyed by lasers or relativistic kill vehicles or something because it’s a big dumb target — but all hope is not lost! Our game sprite can make visual reference to a 20th century naval warship because my goal is to convey the feeling of battleship to people who have been trained to believe that a battleship looks a certain way, not to create a hyper-realistic near-future space combat simulation. (More on this in the “Ship Design & The Onslaught” post from back in 2010.)

Right, so this is how development of Starsector’s ships has progressed and the big gaps in fleet lineup have been largely filled in. Again, this process largely took place without need for any kind of overarching plan, though occasionally Alex would say “hey, we need a frigate that does this“, or we might talk it over and try something experimental in terms of gameplay. Some experiments worked, some were modified a bit from what was first imagined– phase ships for example — and others never really took off at all, eg. munition ships. But that said, the large part of fleet combat roles is fleshed out; Now is a matter more of filling in small gaps that exist, diversifying existing roles to support the game’s setting and ‘landscape of player progression’. Still, the experiments are lots of fun! (More on this with the Monitor.)

Now I’m taking on more of a role in writing setting & backstory for Starsector. When drawing a ship I’ll think not only of the gameplay function but of the narrative role it fulfills; The possibilities are absolutely fascinating! A simple sprite can, given appropriate text, suggest an awful lot about the universe it exists within and it can draw connections to other ships, factions, places, history, and all of that to emotional responses from the player as they decide how they feel about the ships, factions, and places in the universe of Starsector. Each piece becomes something far greater than the sum of its parts when this all operates together (and I love this part of game development).

Okay, that’s enough rambling: I’ll show off some new ships, discuss their envisioned role in gameplay (which we recognize, dear players, is not necessarily how you’re going to use them), then a bit about how their backstory fits together with the rest of Starsector.

 

Cerberus

superhoundThis one is easy: Everyone loves the Hound so why not build a bigger Hound? And that about explains everything you need to know. (The working title for sprite was, naturally, “superhound.psd”. )

As for drawing, I’ve been tending toward more curved plating and slightly subtler shading. I’m trying to get away from having too much “greeble noise” covering ships so that the overall form doesn’t devolve into so much pixel noise, and so it gets more of a chance to make itself seen. This should result in a ship that’s more visibly identifiable at a glance and it ought to look better when scaled down or zoomed out rather than drawn at pixel-perfect resolution, as is often the case for ships in Starsector. You can still see the Hound parts used as a base for the image, however ( … and man is it ever just a brick of a ship!)

Read the rest of this entry »

Combat Readiness Update

With CR being one of the main features (perhaps the main feature) of the 0.6a release, it makes sense to revisit it after seeing how it’s played out so far.

(If you haven’t been keeping up with the details: CR (“combat readiness”) is a percentage rating each ship has that’s reduced each time it’s deployed into combat and governs how effective it is, and whether it can be deployed at all. Recovering CR costs time and supplies, thus rewarding the player for winning with fewer ships. That’s not the only reason for CR’s existence, but there’s a whole blog post devoted to it, so I won’t talk about it here.)

Overall, I think CR accomplished its intended goals, but that doesn’t mean that it’s perfect and can’t be improved. One of its effects in the current form is that ships go from “pretty much working fine” to “can’t even deploy this rust bucket anymore” awfully quickly, without much of a transition period. For reference, right now a ship below 10% CR can’t be deployed at all, while a ship below 20% CR suffers weapon and engine malfunctions. In theory that should be the aforementioned transition period, but in practice deployment costs are high enough that it can get skipped altogether.

With that in mind, the changes:

Ships have their deployment costs and CR recovery rates halved.
This means the supply cost per deployment and the recovery time remain the same, but more consecutive deployments are possible.

Malfunctions start at 40% CR, critical malfunctions start at 20%
This is all about extending the transition period between “working fine” and “not working at all”. A ship in average shape has roughly the same number of deployments as before until it runs into malfunctions, but now it’s possible to continue deploying the ship well beyond that.

Just what are critical malfunctions, you ask? Conceptually, it’s a chance for things to go very, very badly wrong. For example, a power junction failing catastrophically, ammo exploding inside a magazine, an engine containment field failing, that sort of thing. In game terms, it’s a chance for weapons and engines to go offline for the duration of the battle, and cause major hull damage in the process. Simply deploying a ship at low CR will cause some of these, an continued use in battle has a chance to cause even more.

Say goodbye to the starboard-side Heavy Blaster and some engines; and that’s just the beginning!

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