Loading...
  OR  Zero-K Name:    Password:   

Jumping units immune to physics?

9 posts, 336 views
Post comment
Filter:    Player:  
sort
2 months ago
Should jumping units, such as jacks be immune to newtons and juggle while jumping? This seems very strong, even EMPing them while flying doesn't do anything. Should that not turn off their jumpjets and make them fall?
+2 / -1
quote:
Should that not turn off their jumpjets and make them fall?


Something I noticed is that while the animation for the jets runs during flight, the trajectory appears to be ballistic.

Edit: Upon further thought I realized this isn't true for jacks and pyros falling after preforming a mid air jump.
+0 / -0

2 months ago
I believe to have seen a discussion about this some years ago in this forum. If I recall correctly this behaviour is basically unintended but cannot be fixed easily.
Correct me if I am wrong.
+0 / -0

2 months ago
its an engine thing i believe to remember...
+0 / -0
quote:
I believe to have seen a discussion about this some years ago in this forum. If I recall correctly this behaviour is basically unintended but cannot be fixed easily.
Correct me if I am wrong.

AFAIR, it is fully intentional. Code exists somewhere in the (history of the) repository for "impulse jump" essentially identical to what Lobster does. The problem with it is units colliding mid-air and losing precision, causing "jank".

Perhaps the changes to Lobster that made it less janky could also make impulse jump less jank too, though.

quote:
its an engine thing i believe to remember...

It is not an engine thing.

quote:
This seems very strong, even EMPing them while flying doesn't do anything. Should that not turn off their jumpjets and make them fall?

Stunning a Detriment that has decided to jump (that is, initiated the jumping sequence) before it has engaged its thrusters doesn't prevent or delay the jump either. I am not a fan of this.
+4 / -0
2 months ago
Impulse weaponry makes use of engine physics. Lua MoveCtrl, used by jumpjets, completely (almost) overrides engine physics.

Both systems could be combined by reimplementing engine physics in lua, so that units under MoveCtrl can include normal physics in their calculations. However, that would take a lot of work.
+0 / -0


2 months ago
MYrankxponen proposed and wrote a physics-based jumpjet system a while ago. I was against it because it did not seem to reliable enough to hold up half a factory. He repurposed the system to implement amph floating physics, where it works because floating has less room for error than jumping. The impulse jumpjet gadget still exists and even has a disabled modoption. The gadget probably needs a few API updates, but I would expect it to work otherwise.

My issue with impulse jumpjets is the jank. For jumping units to be at all balancable they need to function fairly reliably. An impulse jump could fail if:
  • The unit takes impulse from any source (Ripper etc) and veers off course.
  • A clump of jumping units are told to jump together, and they bump into each other en route.
  • A jumping units lands on something, and bumps off it into the abyss.
  • A jumping unit clips the terrain or a map feature and bumps off course.

A 0.1% chance of your Pyros falling down a cliff or into a hole would be far too high, and with all of these factors the chance has to be higher than that. If JJ is to be a reasonabley startable factory then Pyro/Constable/Jack need to not be randomly lost or delayed by a bad jump. While there are ways to lose units, most of them feel more like the player's fault, and existing rare frustrating moments doesn't justify the addition of new ones.

In short, I value Pyro reaching its destination 100% of the time over a bit of extra physics. I don's see much value in the additional physics either, as the physics would mainly add a bunch of counters to jumping - counters it doesn't need.

Lobster is more a support unit than a core part of the factory, and tends to appear later in the game. People don't tend to fire multiple Lobsters at the same thing from different angles, as is common with jumpjets, and I think there is more of an understanding that Lobsters are a bit of a gamble.
+4 / -0

2 months ago
quote:
EErankAdminAnarchid: AFAIR, it is fully intentional. Code exists somewhere in the (history of the) repository for "impulse jump" essentially identical to what Lobster does. The problem with it is units colliding mid-air and losing precision, causing "jank".


Thanks for clarifying this! The discussion I believe to remember would have been around 2012/13 - certainly there are more elaborate solutions in place now. I believe at that time a jumping unit was able to use its jump mid-air, e.g. if launched by a nano-ramp in order to have a precise landing without taking impact-damage. Do you happen to know whether this is (still?) true?

quote:
NZrankesainane: Both systems could be combined by reimplementing engine physics in lua


Shifting physics calculations from the c++ part to lua may hit performance big time, if possible at all. If an object's trajectory cannot be described in an engine-internal way, the projectile hit-calculations would need to be done entirely in lua for the object in question. This would require lua to request projectile data from the engine for any projectile with a trajectory passing the region where the jump happens... You get the idea.

If 0K needed fundamental functions that the engine is missing, it would probably be easier to add the code to the engine and only have it called from lua. On the other hand such practise might cause divergence from the Spring main branch in a way that could be hard to manage when later Spring updates are to be ported to the modified 0K branch.

quote:
AUrankAdminGoogleFrog: In short, I value Pyro reaching its destination 100% of the time over a bit of extra physics. I don's see much value in the additional physics either, as the physics would mainly add a bunch of counters to jumping - counters it doesn't need.


That! Newton, Faraday and Juggle already do a lot vs. air units. Faraday in particular can be a versatile early-game point defence against air and ground raids protecting an adv. Geo or Singu rush. Having them buffed even more would likely require to do a lot of re-balancing.
+0 / -0

2 months ago
quote:
if launched by a nano-ramp in order to have a precise landing without taking impact-damage. Do you happen to know whether this is (still?) true?


true for jumpies with thrusters: jack, pyro
false for jumpies with legs: juggernaut (sumo), skuttle, toad (archangel)
+1 / -0