I wish more of this discussion was happening here than on IRC.
I have no easy facility to go back and read the snippets/threads of thought on IRC so they're generally just lost to me.
FTL:
Making a ship go at the Speed of Light in Pioneer is easy, you just set the speed in code to whatever values you want, like
C for example.
We could disable thrusters when in this mode too, so you'd pick a direction, build up speed, switch to FAL/FTL drive and shoot off in a fixed direction very easily until you decided to drop back to normal engines. Add in some special effects and the jobs pretty much done.
I've tried this and it's very easy to smash into planets...
The AI would have no clue how to use it currently, but that could be changed.
Do remember that the Speed of Light is "fast", but it's still only 8 minutes 17 seconds to the Earth from Sol kind of fast - so big, multi-star, systems would still takes weeks or even months to traverse if travelling at
C.
In-System Jumps:
Modifying the engine to do in-system, location-to-planet-orbit should be fairly easy - I failed to get this done because I was pratting around with L4/L5 stuff and UI problems were constantly tripping me up and annoyed me.
There might need to be a way of jumping time forward instead of just accelerating it, and instead of destroying "Space" and creating a new one we'd probably want to "just" move the ship within the same system.
In part then this could be done by removing the players ship from the current "Space", then advancing time by the required amount, setting the players position to their arrival point, and adding the ship back to the current "Space".
Doing the time "jump" part might be the trickiest bit but it depends on how good our (ship) orbit/flight stuff is. Planet motion etc should all be fine.
Hyperspace:
We should really have tried to K.I.S.S this one.
Every time we aim a bit high and pile on requirements for it, e.g:
- it must be calculated in Lua,
- must use Lagrange points,
- must use a parabolic arc out of the gravity well,
- only works on a Tuesday,
- etc
What this needs is some way of:
- limiting where you can jump from (not in atmosphere, outside of gravity well > strength),
- calculating how far you can go based on the above or some other limitation,
- controlling where you arrive in a system, perhaps based on the above or independently like currently.
As usual, the AI needs to be made aware of all this, Tradeships.lua and other scripts will need to respect the rules and fly to places where they are safe to jump from etc, so the simpler the above rules and changes are the easier they are to implement in script/AI.
Ship Equipment:
Long before Elite Dangerous I thought we should switch to a system inspired by Carrier Command which had fixed equipment that could be damaged individually.
Elite Dangerous has gone for a size+quality approach with subsequent tweaking by visiting Engineers (
Engineers by the way are a fucking terrible implementation) which has it's merits and is quite easy to understand.
If we were to take my Carrier Command suggestion then we'd keep the slots, have them use some kind of size system so you could fit a range of equipment into them and allow for upgrades and tuning. Like being able to fit a range of stock engines, each engine can only go in one specific "engine" place, but then have your engine tuned and modified for different specialities.
This one needs additional information adding to each ship.
Something like a table describing what slots are available, their names, and what "size" of unit they can accommodate - correspondingly each piece of ships equipment would need to define what slot it goes in, and it's "size". These could then be matched up when buying equipment, what won't fit you should be able to see but not fit to the ship.