site banner

The Motte Moddes: HighSpace (August 2023)

The goal of this thread is to coordinate development on our project codenamed HighSpace - a mod for Freespace 2 that will be a mashup between it and High Fleet. A description of how the mechanics of the two games could be combined is available in the first thread.

Who we have

Who we need

The more the merrier, you are free to join in any capacity you wish! I can already identify a few distinct tasks for each position that we could split the work into

  • developers: “mission” code, “strategic” system map code

  • artists: 2D (user interface), 3D (space ships, weapons explosions)

  • writers: worldbuilding/lore, quests, characters

What we have

  • Concept art for a long range missle cruiser, curtesy of @FCfromSSC

  • A proof of concenpt for “strategic” system map we jump into on start of the campaign. It contains a friendly ship and 2 enemy ships, you can chose where to move / which enemy ship to attack.

  • A somewhat actual-game-like workflow. Attacking a ship launches a mission where the two ships are pitted against each other. If you win, the current health of your ship is saved, and you can launch the second attack. If you clean up the map you are greeted with a “You Win” message, or “You Lose” if you lose your ship.

  • A “tactical” RTS-like in-mission view where you can give commands to your ships.

Updates

  • The System Map and the Tactical View got minor pimp-ups. The System Map now shows the ship names, and the Tactical View has a grid to help with orientation, draws ship icons if the ships are too far away to see, and draws waypoint, and target icons to give some indications of the ship's current goals.

  • The System Map now supports Battle Groups, and the player is now in charge of one - the original GTC Trinity cruiser, and a wing of fighters.

  • We now have “just in time” mission generation. Like I mentioned in the previous thread, the scripting API gives you access to the file system, so it was pretty easy to generate a mission file on the fly. This has some advantages over using a “blank” mission file and setting up the mission via the API, because not all mission features are exposed to the API. The most obvious example here will be how there's no longer an “extra” player ship, just the ones explicitly declared for the System Map (in the previous versions you'd be flying a fighter, even though in theory there were no fighters in the System Map).

  • Thanks to the fighters and their current load-out it's actually not that hard to win the game at the moment. Your cruiser will easily dispatch the Shivan one, and as to the corvette, you can order your ships to run away, and take out the turrets yourself, then order your ships to attack. It will take a while, but with a defenseless enemy it's only a question of time.

What's next

  • The System Map didn't get a lot of attention so far, so I'd like expand it. It would be nice to move around an actual star system, add camera movement, and split/merge mechanics for fleets.

  • The Tactical View is somewhat functional, but still needs to give a player handle on what's going on, and better control over their ships. I wanted to add subsystem status, beam cannon charge status, and a handier way to give advanced commands.

8
Jump in the discussion.

No email address required.

Various Damage and Mitigation ideas

If I'm understanding the existing freespace damage systems correctly, ships are made of components, each of which has hit points. Components have to be external, because there's no mechanic to track penetration through multiple components to, say, hit something buried deep within the hull. There's a number of tags available to mark things that don't simply die from normal fire, requiring damage from an appropriately-tagged damage source before they can be destroyed.

If we are limited to just those mechanics, there's a lot of cool things we could do, but the following is some ideas for better damage and protection mechanics. The following is more of a blue-sky look at crunchier options to handle damage and damage mitigation.

Damage Vs. Penetration

ideally, we separate these statistics out, so we can have high-penetration/low-damage weapons and vice versa. Railguns are high-pen, low damage, beams are balanced, missiles are usually high damage, low-pen. I have no idea if this is possible in free-space; if not, we can probably kludge up a reasonable approximation with various tags.

As I see it, there's several game systems between an attacker and defender

Detection - You have to actually detect a target in order to shoot at it. Various forms of emissions control, stealth and concealment can the chances of this.

Position/Vector - You have to be within effective range of the target and have your guns oriented on the target, and then the target still has to be there when your attack arrives. Ship speed and maneuverability could have a serious impact here, as well as jump mechanics. Faster ships can dodge projectiles or avoid the engagement range of beams, different vectors between the two sides can shape the nature of the engagement, etc.

Countermeasures - Jamming, Dazzling, Spoofing & Decoys, all reduce the enemy's ability to land effective hits.

Interdiction - fighters, defensive missiles, point-defense systems - these only work on large or relatively slow-moving projectiles, but they're fairly effective.

Mitigation - Shields and armor.

In my head, what I'm imagining at a fleet level is a lot more like a turn-based strategy game than a traditional RTS; positioning and shaping the battlefield is very important, and the actual shooting happens relatively quickly. Fighters, Strike and Picket ships and frigates might mix it up in a furball, given that their lighter weapons, shorter range and higher maneuverability makes turning and burning a workable option. For large ships/fleets, I imagine that combat probably doesn't involve the two sides burning into a head-on engagement with all guns blazing, but rather cat-and-mouse games where they attempt to either engage for maximum damage from a superior position, or flee and break contact from an inferior one.

Armor

Armor resists penetration and absorbs damage. Armor panels are components and have a maximum health. When destroyed, they no longer resist penetration, but still absorb some percentage of damage.

Armor Grades - Various grades of armor, offering various combinations of durability and penetration resistance. Might also offer advantages against specific kinds of weapons, like kinetic penetrators or beams.

Armor hardeners - Conducts protective fields through armor plating to physically reinforce them. greatly increases protection, but suffer the drawbacks of shields, in addition to being very expensive. Higher-tech option to scale armor protection in the mid to late game.

Shields

Generic shields are effectively hitpoints. The generic shield absorbs all incoming damage until it is depleted, and then collapses, recharging after a certain amount of time if no additional damage is taken. Not a huge fan of shields in their standard form; they serve a gameplay purpose of making combat less punishing, but in a more strategic game that doesn't seem like much of an asset.

I'd argue for shields being largely effective against projectiles, and have either no effect or a minimal effect on beams.

Shield Effects

Generic - absorb all impacting damage

Hard - absorb all damage below a threshold, higher damage penetrates

Soft - absorb a percentage of damage, allowing the rest through.

Deflector - de-normalize beams or projectiles, potentially deflecting them.

Hazardous - Shields burn out or explode when overloaded, damaging or destroying the mounting ship. There might be a grace period between overload and the shield module cooking off, allowing you to attempt to jettison a critical module.

Emergency Shutdown - Shutting down shields when they're below some percentage of total power means they can't be turned back on again until serviced.

Cold Start - When activated, shields must charge from zero power.

Limited Duration - When activated, shields last for a set duration before depowering. Once they depower, they have to be serviced before being activated again.

Expendable - The shield module is explicitly a one-shot asset; when triggered, it defends for a duration, then burns itself out.

Interference - Shields block cooling, drives, weapons fire, radar, or other ship functions. Inspired by a story I read once, where the big enemy dreadnought had a shield that made it entirely impervious to enemy fire, at the expense of making it completely unable to move, shoot, or even see until the shield came down.

Shield Regeneration

No Regen - requires out-of-combat servicing before shield strength can be restored, or maybe the shield unit itself has to scrapped and replaced.

Last Hit Cooldown - Regenerate after a certain amount of time without taking damage

Constant - Regenerate constantly but at a low level.

Curved Regen - Regeneration speed is either increased or decreased proportional to remaining capacity.

The idea here is to make shields something other than the first-order-optimal solution to damage mitigation. Limited duration shields allow you to deny a portion of fire, but aren't really a long-term solution. Hazardous and Emergency shutdown turns shield management into a high-risk gamble in a serious fight. Interference forces you to choose between shielding and your other tactical options.

The idea I'd suggest is to try to put shields in a position where they're a limited, optional defense, rather than a core defense like point defense and armor. Make them a special thing that's highly effective but with big drawbacks, and then let higher-tech versions improve on the drawbacks until at the top of the tech tree you get what would be a standard shield in another game, but it feels absolutely amazing in-context.

If I'm understanding the existing freespace damage systems correctly, ships are made of components, each of which has hit points.

One thing to keep in mind there's also the generic hull health, independent from all the components.

Components have to be external, because there's no mechanic to track penetration through multiple components to, say, hit something buried deep within the hull.

I think that's not necessarily true. I think bombs have a radius of effect, and I've seen them take out multiple components in one strike. It possible they'd damage something deeper in the hull.

You can also have "casing" components that you'd need to destroy to expose something beneath them, I saw a few mods doing it. The more I think about it, the more I like the idea. I really like the idea of fighters/bombers doing subsystem strikes to take out a specific advantage the enemy might have. I did also have concerns that this tactic might be overpowered. In vanilla FS2 they get around it by most subsystems, except engines, not really doing anything unless explicitly scripted. It makes sense because if taking out the weapons subsystem of a capital ship actually took out all it's weapons, they would be way too easy to defeat. You can compensate by giving subsystems a lot of health, but adding a casing would make it a look more interesting, since you can see it get blown off. Hopefully you can also give the casing a different type of health than the actual subsystem, so you'd need to use anti-armor weapons to blow it off, and then anti-subsystem weapons to actually disable the system.

Then we'd have to decide what the actual effects would be, because having a critical system located in a central hub feels like bad design.

There's a number of tags available to mark things that don't simply die from normal fire, requiring damage from an appropriately-tagged damage source before they can be destroyed.

I think that's right, but I'm not familiar with the tags that are available, or whether you can add your own. But yeah I know capital ships can only be taken down with anti-cap weapons.

Detection - You have to actually detect a target in order to shoot at it. Various forms of emissions control, stealth and concealment can the chances of this.

Interdiction - fighters, defensive missiles, point-defense systems - these only work on large or relatively slow-moving projectiles, but they're fairly effective.

There is some support for that in vanilla, but it's mostly about fighters. So there's stealth fighters that cannot be targeted by radar, or locked on by missiles. You can only shoot them down by spotting / targeting them with your eyeballs, unless you have AWACs ships around, which can make them visible on your radar. Then there were mods that played with these ideas for capital ships. AWACS being used for jamming the enemies' targeting, special tagging missiles the fighters could fire point-blank, which allow friendlies to target despite the jamming, etc. I think we could reproduce that easily.

Position/Vector - You have to be within effective range of the target and have your guns oriented on the target, and then the target still has to be there when your attack arrives. Ship speed and maneuverability could have a serious impact here, as well as jump mechanics. Faster ships can dodge projectiles or avoid the engagement range of beams, different vectors between the two sides can shape the nature of the engagement, etc.

I have some concerns here, because if we're going for anything more sophisticated than "let's try spinning, that's a neat trick", it implies heavily modifying the AI. The scripting API allows that, but it feels like it's going to be a lot of work to figure out how exactly it works, and then coming up with a set of strategies that will cover most of the bases for the AI.

In my head, what I'm imagining at a fleet level is a lot more like a turn-based strategy game than a traditional RTS; positioning and shaping the battlefield is very important, and the actual shooting happens relatively quickly. Fighters, Strike and Picket ships and frigates might mix it up in a furball, given that their lighter weapons, shorter range and higher maneuverability makes turning and burning a workable option. For large ships/fleets, I imagine that combat probably doesn't involve the two sides burning into a head-on engagement with all guns blazing, but rather cat-and-mouse games where they attempt to either engage for maximum damage from a superior position, or flee and break contact from an inferior one.

Yes! This is exactly the feeling I'd like to go for. Originally I thought to make the System Map an actual TBS, but I'm warming up to have it real time with time compression. The idea being that on the strategic level anything happening second to second is not going to be that important, so you'll have to fast forward until something significant happens.

The idea I'd suggest is to try to put shields in a position where they're a limited, optional defense, rather than a core defense like point defense and armor. Make them a special thing that's highly effective but with big drawbacks, and then let higher-tech versions improve on the drawbacks until at the top of the tech tree you get what would be a standard shield in another game, but it feels absolutely amazing in-context.

I love that idea. I think a lot of games lazily throw away this kind of mechanical variety in favor of "this, but bigger" as a way to show progression.

As to your specific ideas, they all seem doable and I'd just note them down in the wiki, and try them out one by one when we get to that part of the development. We'll probably be running into issues when implementing them, either on their own, or through interacting in weird ways (and hopefully sometimes in good ways!), but I don't see a way of figuring out what will work and what want ahead of time.

You can also have "casing" components that you'd need to destroy to expose something beneath them, I saw a few mods doing it. The more I think about it, the more I like the idea. I really like the idea of fighters/bombers doing subsystem strikes to take out a specific advantage the enemy might have. I did also have concerns that this tactic might be overpowered. In vanilla FS2 they get around it by most subsystems, except engines, not really doing anything unless explicitly scripted. It makes sense because if taking out the weapons subsystem of a capital ship actually took out all it's weapons, they would be way too easy to defeat. You can compensate by giving subsystems a lot of health, but adding a casing would make it a look more interesting, since you can see it get blown off. Hopefully you can also give the casing a different type of health than the actual subsystem, so you'd need to use anti-armor weapons to blow it off, and then anti-subsystem weapons to actually disable the system.

I played the BattleTech video game quite a lot, it has a very similar system, and it indeed has a bit of a problem with component targeting being overpowered. One way to balance it a bit is to not have general "weapon subsystem", which is indeed stupid design, but to have each specific weapon be it's own component, so that even if the opponent has shot some weapons to pieces, other weapons function just fine. Likewise there isn't a single "cooling subsystem" there are multiple "cooling components" located throughout the ship. Another is to give components some redundancy so that they are still somewhat functional even if significantly damaged. Casing/Armor for each component should also be present, I agree, and in general each component needs a surprisingly high amount of health/armor compared to the general hull points to make anything but component targeting viable (or you need to make component targeting very difficult).