Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

weapons screen wishlist: target specific systems #347

Open
heaventwig opened this issue Oct 13, 2023 · 2 comments
Open

weapons screen wishlist: target specific systems #347

heaventwig opened this issue Oct 13, 2023 · 2 comments

Comments

@heaventwig
Copy link
Contributor

Would be lovely to be able to see, once science has sufficiently scanned a target ship, little crosshairs on specific systems on their ships.

Combined with zoom (issue #346 ), this might make it possible to aim at and hit those subsystems.

And if I can damage the weapons systems on a ship, and enough other systems that they lose morale in some sense, can I hail them and ask them to surrender? What happens then?

@smcameron
Copy link
Owner

smcameron commented Oct 14, 2023

The particular vision you describe is a pretty big ask, though it is one I've vaguely thought about before as well.

  1. Right now there is no concept of hitting a ship in a particular location on the model. The laser blasts, torpedo and missile collision detection is a simple proximity test vs. the center of the model. Adding this would mean at least adding multiple collision points specific to each model, or maybe even adding some sort of collision mesh system... and then associating various systems to various locations on each collision mesh somehow. in any case something a lot more complicated than the simple Pythagorean theorem point to point distance based system we use now.

  2. Weapons zoom... not sure about that one, that definitely falls on the more "Enterprise", less "Millenium Falcon" side of the scale. I like the current system where the Navigation and Weapons guys have to coordinate a little bit to make sure the top side of the ship is facing the enemy in order to be able to hit them. If we keep that, and allow weapons zoom, every movement of Nav becomes magnified in the zoomed weapons view. And the degree of magnification required to be able target specific areas on ship models would need to be very high, which means the aiming controls would need to have some kind of computer aided stabilization/aiming just to keep the enemy ship in view, and then, on top of that allow aiming for a specific part of the ship... combined with the way the turret is limited in motion (azimuth and elevation only)... it's a tricky thing to even get a reasonable aiming system to combine with extreme zoom in a way that actually works.

  3. Would need to overhaul the NPC ship damage system. Right now, iirc, damage from hits is determined in a D&D like system that comes down to a single number, then this damage is divided and distributed among the various systems more or less evenly but with some random variation thrown in, and there's a hull health, which when it reaches zero, the ship dies. Well, this may more or less describe how the player ships work. I think the NPC ships may be even simpler with just a single number. In any case the various system healths (which the NPC ships do at least store) don't generally affect the behavior of the NPC ships, i.e. the NPC ships don't bother to check their phaser bank health before firing phasers. So for it to be meaningful to target different systems, the NPC behavior would need to be overhauled as well.

  4. Science would need good visibility into the health of the various systems on the enemy ships, so the players can see the correspondence between NPC system health and NPC behavior, which even if you have such a correspondence, it can be difficult for players to see it beyond, "oh, he's not moving, that's because we blasted his impulse drive", or "oh, he's not firing? that's because we blasted his phaser banks." (This is at odds with making scanning more "realistically" non-trivial, time consuming and incomplete, btw). And to observe more than just that, the NPC behavior has to be more complicated and do more things, because right now, apart from moving and shooting, NPC ships really don't do anything else, so there would be nothing else to observe.

  5. There is (as always) some danger of implementing all this, and then finding out that ... somehow it still sucks.

Finally, here's a funny thing... take a look at this old video from 2016: https://www.youtube.com/watch?v=nTBiM5zJi8A In that video, the combat seemed somewhat compelling to me. There was a sense of danger, of almost dying, but pulling it off in the end. Funny thing is, unbeknownst to me at the time, there was a bug such that each hit on the player ship essentially set the health to a random number. There was no systematic damage. In the video I attributed some "healing" of the ship to the repair robot, but really it was hits from the NPC ship setting various system healths to random numbers. Fixing this (which I did) I think might have made the gameplay worse. Hairy battles like this don't really happen anymore, because player health in a battle steadily decreases, steadily debilitating the ship, mitigated by the repair robot somewhat, but not the violent swings in capability that the random health setting introduced. I found that to be a pretty interesting lesson, from a gamplay design standpoint.

So anyway, this isn't something that can be whacked out in a week or two.

@heaventwig
Copy link
Contributor Author

There is (as always) some danger of implementing all this, and then finding out that ... somehow it still sucks.

My observation is that being able to target specific systems has been a reliable source of fun — and, like tactical weapons stations on autofire, a cause for close coordination between helm and weapons stations — in other bridge sims.

I have some ideas for how to do it in code, and in particular how and when to pack and unpack the data about NPC ships based on proximity to (and targeting by) player ships. But I'm not sure it's actually more complicated than giving each NPC ship a damage array corresponding to systems. Making NPC ship behaviors (and abilities) depend in any way on that array is a separate thing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants