This month I’ve been working on simplification. I realised that One Million Worlds was simply too complicated for players to actually play (I think I’ve known that for a while but wasn’t sure what to do about it)
To resolve that I’ve removed (or made optional) the whole concept of wiring up engines to command chairs (which allow keys on the keyboard to control wires in the game). Previously it was very difficult to build an interesting looking ship that was easy to add engines to such that going forward didn’t make it turn upwards if the engines weren’t perfectly symmetrical around the centre of mass (which was really boring!).
What I’ve done is have the standard WSAD keys as inputs to “the concept” of going forwards/backwards left/right and given that to a linear optimisation library to figure out which engines should fire. This makes it much easier to build ships, and also allows much smaller ships to be built (as no need for room for wiring)
In addition to being smaller because no need for wires this ship design would also have pitched down if all its rear engines were on full, but the linear optimisation library can figure out it needs to put the bottom rear engines on full and the top rear engine on just a little bit and that gives straight and level flight.
This keeps it true to my original vision though, that if you haven’t got engines that could make you move forward without pitching up then it still won’t magic it into going smoothly forwards. But if there is a complex solution to achieving that it will achieve it.
If straight and level flight can’t be achieved with the engines placed on the ship the linear optimisation library “does its best” and activates engines that make the ship go more or less forwards, so it degrades nicely if engines are destroyed (or just not placed by the player)