2020-07-11 13:16 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0003708Spring engineGeneralpublic2013-08-21 00:43
Reportermsafwan 
Assigned ToKloot 
PrioritynormalSeverityfeatureReproducibilityalways
StatusclosedResolutionfixed 
Product Version 
Target VersionFixed in Version94.1.1+git 
Summary0003708: Please use realistic physic drag to solve issue 3704 (do not block impulse)
DescriptionPhysic drag is really simple:

newUnitSpeed = oldUnitSpeed + totalImpulse + (drag)
drag = -1*(unitVelocity*unitVelocity*unitDragCoefficient*fluidDensity)

This is based on http://en.wikipedia.org/wiki/Drag_equation

This system really work. I have coded & tested them in ZK gadget and it show realistic behaviour & could also handle exceptional case without additional coding.
https://code.google.com/p/zero-k/source/browse/trunk/mods/zk/LuaRules/Gadgets/unit_float_toggle.lua
https://code.google.com/p/zero-k/source/browse/trunk/mods/zk/LuaRules/Gadgets/unit_impulsefloat_toggle.lua

Exceptional case that the equation can handle automatically:
1) simulate friction + external impulse + drag at same time without needing to treat them as seperately case (drag increases if unit move toward specific direction but the unit's engine power will remain constant and the drag equation automatically set the max velocity based on fluidDensity and or dragCoefficient)
2) no unit thrown up from underwater (drag increase rapidly if unit moved too fast due to transient impulse, leading to hi fluid resistance and causing unit to stop more rapidly than slower unit)
Steps To Reproduce
To see how it work:
Simply remove any code that multiply unitSpeed with "drag".
Simply replace them with unitSpeed = unitSpeed + Drag(unitSpeed, fluidDrag)

With Drag= -1*(unitSpeed*unitSpeed*fluidDrag)

And stuff is automatically calculated.
Additional Information
Note:
The equation is simplified from http://en.wikipedia.org/wiki/Drag_equation where mass, and fluid mass is set to 1.
Tagsair, friction, physic, simulation, water
Checked infolog.txt for Errors
Attached Files

-Relationships
related to 0003704resolvedabma explosions can lift submarines out of water 
+Relationships

-Notes

~0010469

msafwan (reporter)

Last edited: 2013-04-16 07:48

View 4 revisions

The benefit is:
you don't have to remove feature that is fun (like explosion underwater push unit), you don't have to rely of hax "drag" that always break physics, and you simultaneously make the unit's behaviour more realistic.

~0010470

Kloot (developer)

when you learn to accept special and general relativity

~0010471

msafwan (reporter)

issue 3704 is solved wrongly.

If you fix the physic then it would not need to block impulse at all.

~0010472

Kloot (developer)

It is "solved" within the current limits of Spring's simulation which is neither wrong nor right.

YOU ARE ALSO ASSUMING THAT GAMES ALWAYS SET PROPER VALUES FOR EVERY PHYSICAL QUANTITY INVOLVED WHICH THEY DO NOT.

KTHXBAI!

~0010473

msafwan (reporter)

Because the physic fix is too easy, I won't rest until I can compile own Spring and see it doesn't work.

LUA can do it why not Spring?

~0010474

Kloot (developer)

IS IT NOT A MATTER OF THE FIX BEING EASY OR HARD, WHY DONT YOU FUCKING READ?

~0010475

msafwan (reporter)

Last edited: 2013-04-16 14:25

View 5 revisions

Its not about "the proper value". I didn't say you must add unit's cross-section into the equation! IT DOESNT MATTER WHAT THE PROPER VALUE WERE!


Don't you understand what this simple equation do?:
newSpeed = oldSpeed + [dynamicDrag]
[dynamicDrag] = oldSpeed *oldSpeed *drag/2

~0010476

Kloot (developer)

Last edited: 2013-04-16 14:43

View 4 revisions

YES, PROPER VALUES DO MATTER OR THE OUTCOME OF EQUATIONS WILL BE AS UNREALISTIC AS NOT HAVING THEM IN THE FIRST PLACE! AND GUESS WHERE THESE VALUES NEED TO COME FROM? THAT'S RIGHT, GAMES!

~0010478

msafwan (reporter)

WHERE DO YOU GET THE PROPER VALUE FOR THIS:
speed *= 0.95f

everywhere is 0.9! RANDOMNESS!

~0010486

emmanuel (reporter)

Last edited: 2013-04-16 22:22

View 3 revisions

i not sure what all this mean but a fact is sure for me :
impulse MUST push submarines out of water iF located under them :
not sure if the fix about was for or con
but its obivious than BA or ZK can prevent this hapendig for their special gameplay
still the physic engine must dont make artificial restriction to general logic
at the reverse ground and air unit must be pushed underwater and gamedevs just must predict it can hapend and take some dispositions (or not)

+Notes

-Issue History
Date Modified Username Field Change
2013-04-16 07:18 msafwan New Issue
2013-04-16 07:20 msafwan Tag Attached: physic
2013-04-16 07:21 msafwan Tag Attached: simulation
2013-04-16 07:21 msafwan Tag Attached: water
2013-04-16 07:21 msafwan Tag Attached: air
2013-04-16 07:21 msafwan Tag Attached: friction
2013-04-16 07:33 msafwan Note Added: 0010469
2013-04-16 07:41 msafwan Note Edited: 0010469 View Revisions
2013-04-16 07:44 msafwan Note Edited: 0010469 View Revisions
2013-04-16 07:48 msafwan Note Edited: 0010469 View Revisions
2013-04-16 08:12 abma Relationship added related to 0003704
2013-04-16 12:39 Kloot Note Added: 0010470
2013-04-16 12:40 Kloot Status new => closed
2013-04-16 12:40 Kloot Assigned To => Kloot
2013-04-16 12:40 Kloot Resolution open => suspended
2013-04-16 13:53 msafwan Note Added: 0010471
2013-04-16 13:53 msafwan Status closed => feedback
2013-04-16 13:53 msafwan Resolution suspended => reopened
2013-04-16 14:02 Kloot Note Added: 0010472
2013-04-16 14:02 Kloot Status feedback => closed
2013-04-16 14:02 Kloot Resolution reopened => suspended
2013-04-16 14:07 msafwan Note Added: 0010473
2013-04-16 14:07 msafwan Status closed => feedback
2013-04-16 14:07 msafwan Resolution suspended => reopened
2013-04-16 14:10 Kloot Note Added: 0010474
2013-04-16 14:10 Kloot Status feedback => closed
2013-04-16 14:10 Kloot Resolution reopened => suspended
2013-04-16 14:20 msafwan Note Added: 0010475
2013-04-16 14:20 msafwan Status closed => feedback
2013-04-16 14:20 msafwan Resolution suspended => reopened
2013-04-16 14:21 msafwan Note Edited: 0010475 View Revisions
2013-04-16 14:22 msafwan Note Edited: 0010475 View Revisions
2013-04-16 14:23 msafwan Note Edited: 0010475 View Revisions
2013-04-16 14:25 msafwan Note Edited: 0010475 View Revisions
2013-04-16 14:39 Kloot Note Added: 0010476
2013-04-16 14:39 Kloot Note Edited: 0010476 View Revisions
2013-04-16 14:40 Kloot Note Edited: 0010476 View Revisions
2013-04-16 14:43 Kloot Note Edited: 0010476 View Revisions
2013-04-16 15:01 msafwan Note Added: 0010478
2013-04-16 15:01 msafwan Status feedback => assigned
2013-04-16 22:18 emmanuel Note Added: 0010486
2013-04-16 22:19 emmanuel Note Edited: 0010486 View Revisions
2013-04-16 22:22 emmanuel Note Edited: 0010486 View Revisions
2013-08-21 00:43 Kloot Status assigned => closed
2013-08-21 00:43 Kloot Resolution reopened => fixed
2013-08-21 00:43 Kloot Fixed in Version => 94.1.1+git
+Issue History