2025-07-22 02:46 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0003602Spring enginepublic2013-03-27 01:33
Reportermsafwan 
Assigned ToKloot 
PrioritynormalSeveritymajorReproducibilityalways
StatusassignedResolutionreopened 
Product Version93.2.1+git 
Target VersionFixed in Version 
Summary0003602: Lagspike when unit try to cross map's ocean for QTPFS
DescriptionI test this on Small Supreme Island V2 for both Standard pathing and QTPFS pathing. For QTPFS it consume almost 90% CPU (lag spike) when ordering unit across ocean but for Standard pathing it took only around 10%.

To test this: spawn 100 construction bots, then order them to move to another island. In real case, you always have to do this for LUA widget/AI.
Additional InformationIMO QTPFS do not use multiple resolution pathfinding unlike Standard pathing, therefore it would consume incredible amount of CPU when testing impenetrable terrain.
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
has duplicate 0003594closedKloot lag spike when ordering (alot of) units into unpassable terrain (qtpfs & standard). 
+Relationships

-Notes

~0010156

msafwan (reporter)

Last edited: 2013-03-22 08:33

View 2 revisions

I have idea. Maybe the square should get bigger when look ahead?!

EDIT: I have trouble using Spring.RequestPath() for qtpfs it always return NIL

~0010162

Kloot (developer)

Last edited: 2013-03-22 13:55

View 2 revisions

Spring.RequestPath only works in synced gadgets for QTPFS.

The rest is a duplicate of 0003594, and the ONLY reason the standard pathfinder does not create lagspikes in this situation is because it uses a HACK to limit the squares it explores to a circle centered between origin and destination which prevents it from finding valid paths in many other cases. I won't add such hacks to QTPFS.

~0010167

msafwan (reporter)

Last edited: 2013-03-23 01:54

View 6 revisions

Kloot, I know qtpfs can be really cool, but can't it simply limit the square just to prevent lagspike?

I think lagspike is really bad :(
it is more bad than unit behaving stupidly (especially vs chicken) because when it consume 90% CPU the entire game halt, and then, no more game.

Also, can we have Spring.RequestPath() for unsynced?
because really need this for AI. For example: to check for location to send Constructor to build stuff (not to build underwater or in a blocked area), and for making widget that use Teleportation enterance/exit. (I would love to use qtpfs)

Also,
organically, no one can look ahead and see infinite resolution. The further we look, the coarser the squares (like driving car: our thumb is bigger than a big truck at distance)

~0010168

Kloot (developer)

"can't it simply limit the square just to prevent lagspike?"

it can but it simply won't.

any such limit WILL mean cases are created where QTPFS will FAIL to find a path where one does exist and then people will report that as a major bug instead. I know this because there have been such complaints about the standard pathfinder before.

"Also, can we have Spring.RequestPath() for unsynced?"

maybe in the future, supporting that needs a lot of extra memory.

~0010172

msafwan (reporter)

Last edited: 2013-03-23 23:15

View 2 revisions

Hi, kloot

I think its really bad that qtpfs require a lot of memory. I think, why not tweak standard pathfinding instead? :P

I saw that Standard already can obstacle avoidance at short range (for example it knows to go left/right when you build terraform wall quickly) and also is low cost at long range (ie: when try to cross island).

I cannot understand why its bad anymore. Maybe it just had tiny bug or something that need tiny tweak???

~0010175

Kloot (developer)

"I cannot understand why its bad anymore"

You cannot, but I can, ok?

Don't you think that maybe IF the standard pathfinder only had some "tiny bugs" I would have simply "tweaked standard" instead of writing QTPFS?

"and also is low cost at long range (ie: when try to cross island)."

Again: THE LOW COST IN THAT CASE IS BECAUSE IT USES DESIGN HACKS.

~0010284

msafwan (reporter)

Last edited: 2013-03-27 01:33

View 4 revisions

Hi Kloot, I have discovered another source of lag.
This apply to Spring94.1

Unit stuck (can't move) and it lag the entire game down. Both player has 100% CPU.
Here is the Demo for Spring 94.1, at map Small Divide, at minute 9.13 the lag start when 5 unit stuck on the hill.
https://skydrive.live.com/?cid=E7F297F4F70F2EF0&id=E7F297F4F70F2EF0%21121 (pls forgive the large empty square UI. The file is the empty square on left)

This lag the Demo too.

+Notes

-Issue History
Date Modified Username Field Change
2013-03-22 05:48 msafwan New Issue
2013-03-22 06:13 msafwan Note Added: 0010156
2013-03-22 08:33 msafwan Note Edited: 0010156 View Revisions
2013-03-22 13:50 Kloot Relationship added has duplicate 0003594
2013-03-22 13:51 Kloot Note Added: 0010162
2013-03-22 13:55 Kloot Note Edited: 0010162 View Revisions
2013-03-22 13:56 Kloot Status new => closed
2013-03-22 13:56 Kloot Assigned To => Kloot
2013-03-22 13:56 Kloot Resolution open => won't fix
2013-03-23 01:43 msafwan Note Added: 0010167
2013-03-23 01:43 msafwan Status closed => feedback
2013-03-23 01:43 msafwan Resolution won't fix => reopened
2013-03-23 01:44 msafwan Note Edited: 0010167 View Revisions
2013-03-23 01:44 msafwan Note Edited: 0010167 View Revisions
2013-03-23 01:48 msafwan Note Edited: 0010167 View Revisions
2013-03-23 01:54 msafwan Note Edited: 0010167 View Revisions
2013-03-23 01:54 msafwan Note Edited: 0010167 View Revisions
2013-03-23 03:00 Kloot Note Added: 0010168
2013-03-23 23:14 msafwan Note Added: 0010172
2013-03-23 23:14 msafwan Status feedback => assigned
2013-03-23 23:15 msafwan Note Edited: 0010172 View Revisions
2013-03-24 00:11 Kloot Note Added: 0010175
2013-03-27 01:29 msafwan Note Added: 0010284
2013-03-27 01:30 msafwan Note Edited: 0010284 View Revisions
2013-03-27 01:31 msafwan Note Edited: 0010284 View Revisions
2013-03-27 01:33 msafwan Note Edited: 0010284 View Revisions
+Issue History