I was reading this thread (http://starmadedock.net/threads/its-hard-to-play-with-collision-damage-turned-on.2213/) and I noticed some bug complaints (nothing new there) but also some interesting ideas. They got me thinking about how EXACTLY collision damage currently works - and how it could make Starmade the best creative Voxel game EVER (well....almost...).
So the way collision damage works right now (from what I have been told and what I've experimented with) is on a block-by-block basis - that is, it's not tied into the ship (or ships) as a whole. Now, this leads to some interesting and sometimes realistic results, but once you start pushing the envelope (faster, bigger, really small, really fast, etc) the system breaks down and in some cases causes extreme lag for the server.
Say you're in a ship with 5000 mass (rather small). You get hit by this tiny, 4 block object (a core, power block, thruster, and a disintegrator). What happens in the current system is that both sides get completely wrecked, and depending on how fast you guys are traveling, he might get stuck inside your ship and deal tons of damage. Even bumping eachother at low speed causes bad things (no, not the disintegrator exploding - that's a given ).
Here's what I came up with to figure out collision damage:
First, make collision damage based on the overall mass and speed of your ship. In other words, use the movement equations of modern physics to compute the Kinetic Energy of the collision dealt to each ship. This would be based on the smallest surface area, direction, and velocity of the two colliding surfaces, as well as their total mass.
So, using the above example:
m1 = 5000
v1 = 0 (for example)
SA(smallest) = 1 (1 unit because only one block is colliding)
Angle of attack (AoA) = 90 degrees
m2 = 0.4
v2 = 140 m/s (it says km/h, but that's a little interesting to convert, so we'll just stick with m/s)
This all means the larger ship (Ship 1) is hit by the smaller one (the Torpedo of Doom) at a right angle at the maximum server speed from the MushroomFleet Server.
Current System:
The Torpedo of Doom would essentially drill through Ship 1 until they either glitched out, or the Torpedo of Doom exited the superstructure. Minimal damage, really, unless the guy piloting the Torpedo is really, really lucky.
Modern Physics:
The Torpedo of Doom would cause a 'force' of m2*v2*sin(AoA) = 0.4*140*1 = 56 (this isn't a force, as in F=ma - it's really just a number).
So, Ship 1 would have a velocity in the opposite direction of the impact of 56 / m1 + v1 * sin(AoA) = 0.0112 m/s. Essentially zero, in the world of Starmade. And since we have Newtonian drag, we really wouldn't go far in Ship 1. So the impact doesn't force us to go anywhere, so rotation is probably negligible, too. Especially if Ship 1 is controlled by someone with a brain.
But we need the Kinetic energy lost to the momentum to calculate the applied energy. So, that is:
(1/2*m1*v1^2 + 1/2*m2*v2^2) - 1/2 (m1+m2)V^2 = 3919.7 Energy Units. Big number, there. Looks like we have some penetration power.
Where we could go from here:
Give each block an appropriate resistance level to the applied energy. Keep in mind that larger objects cause less damage because their damage is spread out over the entire object under this system.
So Systems would be built like paper (more vulnerable, ofc). Normal hull would be worse than hardened hull, and hardened hull would be the 'hardest' object in the game (well, there are alternatives, like a really expensive 'diamond' block, but that might make torpedo boats overpowered).
Personally, I'd love it if collision damage didn't damage per se, but only had an effect if a block were destroyed. (This is for aesthetic reasons. I hate seeing my ship banged up, especially accidentally.)
Overall result:
There is a built-in threshold for collision damage to occur, meaning people can still bump and jostle without being super careful about their fragile ships.
Ramming actually isn't very effective due to the spread out damage of larger surface areas. Torpedoes, however, are an entirely different story.
In fact, you could BUILD a ramming ship with a massive one block stick on the end meant for spearing. :D
What I'm really getting at here is that players could innovate beyond the current weapon system. Not only do you have to master the efficiency of the weapons, you have to figure out the best way to take out the most cubic area of your enemy. Missiles might do the trick, but Torpedoes of Doom might be a good alternative. Maybe a broadside of one block logical time bombs with a couple of disintegrators on the back side for when they lodge into the ship??
With the addition of the 50% threshold in combat (50% of ship must be killed before Core is vulnerable), this might be a revolutionary change. Who knows, add in a few performance improvements, and we might have some long fleet battles on our hands :D
--Ender
So the way collision damage works right now (from what I have been told and what I've experimented with) is on a block-by-block basis - that is, it's not tied into the ship (or ships) as a whole. Now, this leads to some interesting and sometimes realistic results, but once you start pushing the envelope (faster, bigger, really small, really fast, etc) the system breaks down and in some cases causes extreme lag for the server.
Say you're in a ship with 5000 mass (rather small). You get hit by this tiny, 4 block object (a core, power block, thruster, and a disintegrator). What happens in the current system is that both sides get completely wrecked, and depending on how fast you guys are traveling, he might get stuck inside your ship and deal tons of damage. Even bumping eachother at low speed causes bad things (no, not the disintegrator exploding - that's a given ).
Here's what I came up with to figure out collision damage:
First, make collision damage based on the overall mass and speed of your ship. In other words, use the movement equations of modern physics to compute the Kinetic Energy of the collision dealt to each ship. This would be based on the smallest surface area, direction, and velocity of the two colliding surfaces, as well as their total mass.
So, using the above example:
m1 = 5000
v1 = 0 (for example)
SA(smallest) = 1 (1 unit because only one block is colliding)
Angle of attack (AoA) = 90 degrees
m2 = 0.4
v2 = 140 m/s (it says km/h, but that's a little interesting to convert, so we'll just stick with m/s)
This all means the larger ship (Ship 1) is hit by the smaller one (the Torpedo of Doom) at a right angle at the maximum server speed from the MushroomFleet Server.
Current System:
The Torpedo of Doom would essentially drill through Ship 1 until they either glitched out, or the Torpedo of Doom exited the superstructure. Minimal damage, really, unless the guy piloting the Torpedo is really, really lucky.
Modern Physics:
The Torpedo of Doom would cause a 'force' of m2*v2*sin(AoA) = 0.4*140*1 = 56 (this isn't a force, as in F=ma - it's really just a number).
So, Ship 1 would have a velocity in the opposite direction of the impact of 56 / m1 + v1 * sin(AoA) = 0.0112 m/s. Essentially zero, in the world of Starmade. And since we have Newtonian drag, we really wouldn't go far in Ship 1. So the impact doesn't force us to go anywhere, so rotation is probably negligible, too. Especially if Ship 1 is controlled by someone with a brain.
But we need the Kinetic energy lost to the momentum to calculate the applied energy. So, that is:
(1/2*m1*v1^2 + 1/2*m2*v2^2) - 1/2 (m1+m2)V^2 = 3919.7 Energy Units. Big number, there. Looks like we have some penetration power.
Where we could go from here:
Give each block an appropriate resistance level to the applied energy. Keep in mind that larger objects cause less damage because their damage is spread out over the entire object under this system.
So Systems would be built like paper (more vulnerable, ofc). Normal hull would be worse than hardened hull, and hardened hull would be the 'hardest' object in the game (well, there are alternatives, like a really expensive 'diamond' block, but that might make torpedo boats overpowered).
Personally, I'd love it if collision damage didn't damage per se, but only had an effect if a block were destroyed. (This is for aesthetic reasons. I hate seeing my ship banged up, especially accidentally.)
Overall result:
There is a built-in threshold for collision damage to occur, meaning people can still bump and jostle without being super careful about their fragile ships.
Ramming actually isn't very effective due to the spread out damage of larger surface areas. Torpedoes, however, are an entirely different story.
In fact, you could BUILD a ramming ship with a massive one block stick on the end meant for spearing. :D
What I'm really getting at here is that players could innovate beyond the current weapon system. Not only do you have to master the efficiency of the weapons, you have to figure out the best way to take out the most cubic area of your enemy. Missiles might do the trick, but Torpedoes of Doom might be a good alternative. Maybe a broadside of one block logical time bombs with a couple of disintegrators on the back side for when they lodge into the ship??
With the addition of the 50% threshold in combat (50% of ship must be killed before Core is vulnerable), this might be a revolutionary change. Who knows, add in a few performance improvements, and we might have some long fleet battles on our hands :D
--Ender