Ship Systems - Autopilot #319
Replies: 3 comments
-
I think that a semi-manual collision avoidance system would be best. It should avoid larger objects like planets and stars but miss asteroids and things like that. |
Beta Was this translation helpful? Give feedback.
-
I think collision avoidance should be on, but v only warn that there is something in the way, no course correction. They can turn and move around that planet before launching to warp. Or slow down and go around the planet when they are half way to their actual destination. Basically, warp is an automatic point to point travel that you can't steer. This can lead to pirates hanging around certain obstacles that get in the way of popular travel obstacles and can have interesting moments happen Add in other types of hazards like a nebula that can hide a "net" designed to catch ships out of warp, or nebulae that can have other types of effects that may or may not matter to a ship in warp, but if it for some reason drops out of warp can have adverse effects. Debris fields, space stations friendly or otherwise, antagonistic space you should fly around. Space being big enough it won't happen a ton, but it can be built in to certain missions. |
Beta Was this translation helpful? Give feedback.
-
I'm sold. |
Beta Was this translation helpful? Give feedback.
-
This isn't a ship system, per se, but it does affect a lot of ship systems, so we should have a discussion about it.
When I first built Thorium Nova in 2020, I quickly discovered that it was impossible to reasonably navigate across interstellar distances manually. I wrote a lot about that in this blog post about autopilot.
There are two aspects to the autopilot - rotating the ship and activating engines.
Rotating the ship
The autopilot starts by entering the desired coordinates. How these coordinates are entered won't be part of this discussion - we'll talk about that when someone gets around to writing about navigation. The coordinates themselves consist of the interstellar coordinates of the solar system the crew wants to visit, and the 3D coordinates within that system they should end up at.
Once the desired destination is set, the autopilot will automatically rotate the ship to point in that direction. Manually using the thrusters to rotate the ship will deactivate the rotation autopilot.
If the ship is in another solar system when autopilot is activated, it will turn itself to match the vector between the current solar system and the target solar system. Once it is in the same solar system as the target coordinates, it will rotate to those coordinates. It will continuously use the thrusters to point towards the target until autopilot is deactivated.
Once the ship is within a certain radius of the destination, the rotation autopilot will deactivate, to keep the ship from continuously rotating around the point.
All of this adjustment will be handled by a PID controller. From my experiments in 2020, it seems to work well.
One question that I would love to answer: Should the rotation autopilot automatically avoid obstacles? We'll have to program in collision avoidance for non-player ships anyway, but should it also apply to player ships?
Without that collision avoidance, I can see a few scenarios playing out for the crews. First, it's highly unlikely the crew will ever collide with anything, given the scale of space and vast distances between objects. But it is possible, and it will be up to the crew to navigate around.
The manual approach would have the crew stop their ship, manually steer around the obstacle, and then re-engage autopilot once they are around it.
Another approach could allow multiple waypoints to be entered into the autopilot. This would add a bit of extra complexity, and frankly I think the manual approach is more fun and interesting, but I would love to hear from all of you.
Moving the ship
Engine autopilot can't be engaged without rotation autopilot being engaged. It works by adjusting the impulse and warp engines, using simple heuristics to decide which engine to use. Essentially, if the ship is within 15 seconds of their destination at impulse speed, the autopilot will favor impulse speeds. Otherwise, it will use warp speeds.
Of course, it won't be able to activate the warp engines without the crew spooling them, which will still be a manual process. So that gives the crew some degree of control over the speed they travel.
Perhaps it is also possible for the crew to specify a desired speed for the autopilot, but I doubt that would be used often. Most likely, the crew will want to get wherever they are going as quickly as possible. If they don't want to get there sooner, they can just not activate the engines. But maybe not? Chime in with your thoughts in the comments.
To summarize the questions:
What else? Am I missing anything? Any other questions that need to be answered?
Beta Was this translation helpful? Give feedback.
All reactions