• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Why do creeps stand-in-place occasionally even though issued attack-move /

Status
Not open for further replies.
Level 5
Joined
Feb 1, 2009
Messages
111
Is there any way to get creeps to have a continuous flow of motion going from point A to B without stalling several times, (like in a 'hold' position for 2 to 3 seconds) before continuing their attack-move command ?

I dont even know where to begin to fix this.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,258
This is a WC3 game engine limitation on how units move.

Movement orders themselves do not actually make a unit move. They instead schedule the unit in the path finder. The path finder is then responsible for computing where a unit moves and does so in the form of micro-movements. A micro-movement is a simple finite vector (angle and magnitude) that represents a valid movement required to reach the destination. As the unit moves the path finder generates them new micro-movements relative to where they currently are and so lets them do things like go through mazes or around corners.

The problem you are having is with the path-finder. I quite literally mean units are scheduled in it since it will only generate a finite number of micro-movements per player (each player is independent) per second spread evenly across time. I believe it is one unit per internal frame.

This means if you have only 1 unit moving for a player it gets silky smooth and highly optimal movement. However if you have multiple units moving then each gets less regular micro-movement update as the moving unit count increases. The game can cope with this since micro-movements do have a distance so will be valid for a time, but this is where the problem starts.

1. Micro-movement length is not very long. Even in open terrain it is only enough for a second or two of movement. In complex path areas like a base it can be considerably shorter. Faster units do not get longer micro-movements so make the problem worse. If the period between micro-movements exceeds the duration of a micro-movement by a unit then the unit is forced to stop and is unable to move until the path-finder schedule arrives at him and generates another micro-movement.
2. Unit on unit collisions terminate current micro-movement prematurely to prevent embedding of units inside each other. If a unit on unit collision occurs during movement the current micro-movement of the colliding unit is discarded. This further enhances problem 1 by lowering the duration of micro-movements.
3. Problem 1 and 2 result in exponential decay of unit movement due to their positive feedback. Problem 1 means that not all units can move at the same time for large numbers of units. Problem 2 means that units that are not moving will stop units that are moving pre-maturely. Since a group (army of units) is tightly packed the problem is amplified since the not moving members of the army will block the micro-movement orders of other members so that they are shorter than intended. This is iterative since those units are now stationary and will do the same to units behind them. Over time this forms the typical troop worm (where units arrive slowly in single file) that most WC3 enthusiasts must have seen in an LoaP, TD or Hero Defence at some stage of their gaming life.

Solutions? There are multiple.
1. Use fewer units. This is the best solution as WC3 is not designed for large numbers of units. If you limit a player to 50 (maybe 100) units this will not be a problem. Using a lot of units is considered poor game design.
2. Use more players. Instead of having a single player own 200 units that can barely move, you can split this across 2 players so that they each have 100 units that move considerably better. Not always possible, especially in 12 player maps where slot limit is already a big problem.
3. Simpler terrain with less complex path map. Generates longer micro-movements so more units will be able to move at the same time. Might not be possible in forest maps.
4. Smaller unit collision size (preferably no collision). This reduces/removes problem 2 greatly increasing the limit on moving units. This is how good TDs can have so many units moving at once. Allows unit bunching/stacking with might not be acceptable depending on gameplay.
5. Slower units. Micro-movements will last longer and so allow more units to move at the same time. Might not be possible depending on gameplay since people hate slow it appears.
6. Upgrade to SC2. Unlike WC3, Blizzard put in a super path finder for it which can handle unit on unit collisions more gracefully and has far superior micro-movement generation with no real limit. More resource intensive, yes, but at least a single player can move 400 zerglings into a base where as in WC3 they may eventually arrive there before the end of the century and will arrive in harmless single file.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,258
Is this something that will be fixed in a re-release of WC3?
Highly unlikely as it is not really a problem. You just need to design your maps with a realistic number of units. Any Re-release of WC3 will likely focus on bug fixes and compatibility changes rather than major core mechanic overhaul. If something is not broken there is no need to fix it.

If you want a lot of units use SC2 but even that can suffer poor performance when you are in the multi-hundreds range (as a result of so many units moving at once).
 
Level 15
Joined
Aug 7, 2013
Messages
1,338
Highly unlikely as it is not really a problem. You just need to design your maps with a realistic number of units. Any Re-release of WC3 will likely focus on bug fixes and compatibility changes rather than major core mechanic overhaul. If something is not broken there is no need to fix it.

If you want a lot of units use SC2 but even that can suffer poor performance when you are in the multi-hundreds range (as a result of so many units moving at once).

There's one popular map with its own website and forum that has a very active community where the WC3 pathing becomes a real issue (players can easily field very large armies).

http://brokenalliances.com/forums/forum.php

And while that doesn't necessarily make it a "good map" because it has an active community, I still think it's a balanced game, and big armies are a part of it (100+ units).
 
Status
Not open for further replies.
Top