For what it's worth, I'd like to say that I shelled out $60 for Elite Dangerous a few days ago, played for a day or so, saw and near-immediately purchased Starmade on Steam and I'm pretty sure I'll be uninstalling Elite. Not that they are direct competitors but, I thought someone might appreciate the comparison.
I have to assume it's been suggested before, and if so, I'm going to make a case for it once more. I'll layout something of an implementation path as well.
I believe the current thruster implementation, Newton-mocking space friction, and a lack of stabilization is letting the game down on multiple levels. There is an obvious path to address this shortfall that will add multiple dimensions to ship building, combat, enjoyment of space-flight, and make the game more accessible to all players.
1) A directional thruster block that respects moment of inertia, meaning thruster position determines moment-arm of the force, or in other words: position matters.
Note that I didn't say "replace" thrusters. It may be that a physics based angular acceleration simulation is unnecessarily complex for some, or it may not fit into their preferred flavor of sci-fi. Not to mention, a wholesale replacement of the current thruster implementation would break older ships. So leave them in place. Server Admins could conceivably disable one block or the other if they preferred the more complex thruster based angular acceleration over original thrusters or vice versa.
If you are a developer, you might be thinking that wiring up these thrusters to the standard user controls is going to be complex; and it certainly could be but it doesn't have to be. I would suggest a quick and clean way to accomplish this would be to let the user define an orientation position (preferably not a physical block) that marks both the desired center of rotation and orientation of the ship. A helm controller block (that hopefully the player would stand at) when initialized will locate all directional (and likely standard?) thrusters on the ship, note their orientation, and should probably warn a player if there are missing thrusters to achieve +-rotation on all axis. Essentially the helm block just fills its axis-thrust slots while initializing, e.g., Any thruster located forward of the X axis that thrusts along Y+ (assuming Y+ is up and Z+ is forward) can be used to pitch forward. All matching thrusters are thrown onto the Pitch Forward axis (technically we might also want to grab all Y- facing thrusters behind the X axis as well), and onto the next control axis.
Now you might be thinking, if a player gets creative with their thrust placement or thruster power (or one thruster in a group is destroyed making that group produce less force), the ship is going to fly poorly. If I have two units of y+ thrust on the front left and three units on the right, the ship is going to roll uncommanded when I pitch forward. Thrusters positioned further from the center of mass have more moment and will have more authority over rotation for a given thrust/mass.
You got it. That's where the flight controller comes in. If you build an unstable ship, no problem. Although the care and feeding of your flight controller becomes more important; see below.
2) A flight controller block that, utilizing available thrusters and user input, to stabilize the ship. If in real life I can buy a Naze32 for $20 that will stabilize my Quad, a flight controller should probably be a block in Starmade. By stabilize I mean, If while I'm rolling left, I put the stick back at center, the flight controller should automatically attempt to stop the ships roll. Borrowing from Multirotor flight controllers, multiple modes would be ideal, e.g., stabilization, auto-level/orient, off, and so on. This is going to make flight more accessible to all players and unify some control concepts in the game ("Shift" and "c" can essentially be handled by the controller) Not to mention, if your flight controller is shot-out in combat (or perhaps runs out of power?) things are going to get a little more interesting. The ships still flys but you are on your own.
3) Do away with space friction. Although I appreciate that limiting max velocity is nearly required for many reasons including fun (I would appreciate not having to start my deceleration at the midway point in a journey) – the friction in space is only detracting from the fun. A simple flight controller concept (that will attempt to counteract accelerations) can keep unmanned ships from floating away and probably curtail griefing to some extent.
Nice work guys; I don't have much time to donate to the cause but feel free to contact me. Most of this is near-trivial to implement.
I have to assume it's been suggested before, and if so, I'm going to make a case for it once more. I'll layout something of an implementation path as well.
I believe the current thruster implementation, Newton-mocking space friction, and a lack of stabilization is letting the game down on multiple levels. There is an obvious path to address this shortfall that will add multiple dimensions to ship building, combat, enjoyment of space-flight, and make the game more accessible to all players.
1) A directional thruster block that respects moment of inertia, meaning thruster position determines moment-arm of the force, or in other words: position matters.
Note that I didn't say "replace" thrusters. It may be that a physics based angular acceleration simulation is unnecessarily complex for some, or it may not fit into their preferred flavor of sci-fi. Not to mention, a wholesale replacement of the current thruster implementation would break older ships. So leave them in place. Server Admins could conceivably disable one block or the other if they preferred the more complex thruster based angular acceleration over original thrusters or vice versa.
If you are a developer, you might be thinking that wiring up these thrusters to the standard user controls is going to be complex; and it certainly could be but it doesn't have to be. I would suggest a quick and clean way to accomplish this would be to let the user define an orientation position (preferably not a physical block) that marks both the desired center of rotation and orientation of the ship. A helm controller block (that hopefully the player would stand at) when initialized will locate all directional (and likely standard?) thrusters on the ship, note their orientation, and should probably warn a player if there are missing thrusters to achieve +-rotation on all axis. Essentially the helm block just fills its axis-thrust slots while initializing, e.g., Any thruster located forward of the X axis that thrusts along Y+ (assuming Y+ is up and Z+ is forward) can be used to pitch forward. All matching thrusters are thrown onto the Pitch Forward axis (technically we might also want to grab all Y- facing thrusters behind the X axis as well), and onto the next control axis.
Now you might be thinking, if a player gets creative with their thrust placement or thruster power (or one thruster in a group is destroyed making that group produce less force), the ship is going to fly poorly. If I have two units of y+ thrust on the front left and three units on the right, the ship is going to roll uncommanded when I pitch forward. Thrusters positioned further from the center of mass have more moment and will have more authority over rotation for a given thrust/mass.
You got it. That's where the flight controller comes in. If you build an unstable ship, no problem. Although the care and feeding of your flight controller becomes more important; see below.
2) A flight controller block that, utilizing available thrusters and user input, to stabilize the ship. If in real life I can buy a Naze32 for $20 that will stabilize my Quad, a flight controller should probably be a block in Starmade. By stabilize I mean, If while I'm rolling left, I put the stick back at center, the flight controller should automatically attempt to stop the ships roll. Borrowing from Multirotor flight controllers, multiple modes would be ideal, e.g., stabilization, auto-level/orient, off, and so on. This is going to make flight more accessible to all players and unify some control concepts in the game ("Shift" and "c" can essentially be handled by the controller) Not to mention, if your flight controller is shot-out in combat (or perhaps runs out of power?) things are going to get a little more interesting. The ships still flys but you are on your own.
Nice work guys; I don't have much time to donate to the cause but feel free to contact me. Most of this is near-trivial to implement.
Last edited: