From 84c8140f90a94d86ad747d6ba6545c2be9036aa2 Mon Sep 17 00:00:00 2001 From: Ykkrosh Date: Thu, 3 May 2012 19:31:48 +0000 Subject: [PATCH] Work-in-progress high-level pathfinder documentation This was SVN commit r11728. --- docs/pathfinder.pdf | Bin 0 -> 136765 bytes docs/pathfinder.tex | 733 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 733 insertions(+) create mode 100644 docs/pathfinder.pdf create mode 100644 docs/pathfinder.tex diff --git a/docs/pathfinder.pdf b/docs/pathfinder.pdf new file mode 100644 index 0000000000000000000000000000000000000000..010e63dae34e713ceb6b7cc726d350e443a6e209 GIT binary patch literal 136765 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

H=qF){p)Cy;8iq>_$W6MA3k_NG~} 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 W2uJTJ0Ps1e4p=stealth,scale=0.5] + +\node[fill=black,circle] (o) at (0,0) [label=below:{$(x,z)$}] {}; +\node (a) at (3,4) [label=above:{$(x,z) + \frac{w}{2}\mathbf{u} + \frac{h}{2}\mathbf{v}$}] {}; +\node (b) at (5,0) [label=right:{$(x,z) + \frac{w}{2}\mathbf{u} - \frac{h}{2}\mathbf{v}$}] {}; +\node (c) at (-3,-4) [label=below:{$(x,z) - \frac{w}{2}\mathbf{u} - \frac{h}{2}\mathbf{v}$}] {}; +\node (d) at (-5,0) [label=left:{$(x,z) - \frac{w}{2}\mathbf{u} + \frac{h}{2}\mathbf{v}$}] {}; + +\draw[<->,dashed] (o) -- (4,2) node[below,midway] {$\frac{w}{2}$}; +\draw[<->,dashed] (o) -- (-1,2) node[left,midway] {$\frac{h}{2}$}; + +\draw (3,4) -- (5,0) -- (-3,-4) -- (-5,0) -- cycle; + +\begin{scope}[xshift=-6cm,yshift=-3cm] +\draw[->] (0,0) -- (1,0.5) node[right] {$\mathbf{u}$}; +\draw[->] (0,0) -- (-0.5,1) node[above] {$\mathbf{v}$}; +\end{scope} + +\end{tikzpicture} + +The $\mathbf{u}$ and $\mathbf{v}$ are unit vectors. +They should be perpendicular; that's not theoretically required, +but some of the implementation assumes that. + +We actually store the half-width $\frac{w}{2}$ (as ``\texttt{hw}'' in the code) +instead of $w$, because that seems more convenient for the implementation. +(Same for $h$.) + +We store $\mathbf{u}$ and $\frac{w}{2}$ as two values, +instead of premultiplying them and using a single (non-unit) vector everywhere, +because occasionally we really need the unit vectors (e.g.\ to compute +world-space distance from a point to a square). + +Some of the game code uses a representation $(x, z, w, h, \theta)$ instead +(where $\theta$ is anticlockwise from the $x$ axis), +which is more convenient for editing. +That is transformed into the vector form +(which is more convenient for geometric computation) +for the purposes of the algorithms described in this document. + +\section{Navcell grid} + +The long-range pathfinder can be simpler and more efficient if it has a +grid representation of the map. +(Since our maps are large and open (i.e.\ a high degree of connectivity +between areas), and must support dynamic generation (random map scripts) +and dynamic modification (new buildings, walls, etc), +a grid is likely better than a nav mesh.) + +Terrain is already based on a grid representation of the map, +but it is pretty low resolution (tiles have size $4.0 \times 4.0$; +you could fit 16 units onto a single terrain tile without much trouble) +so it will be poor at approximating narrow gaps which a single unit could fit through. +Increasing the terrain resolution would mean more heightmap and texture-pointer data +(10 bytes per tile), +more graphics data +(at least 16 bytes per tile, more when blending between textures), +and more triangles to render per frame. +It's better if we can use a higher-resolution grid for pathfinding than for terrain. + +Pathfinding therefore uses a navcell grid, independent of the terrain grid. +Navcell passability is encoded as a 2D array covering the map, +with one bit per passability class. +Passability is computed from terrain and from static obstructions. + +\subsection{Terrain} + +(Implemented by \texttt{CCmpPathfinder::UpdateGrid}.) + +A passability class defines maximum terrain slope, min/max water depth, etc. +For each navcell, we compute slopes and depths from the terrain heightmap. +When navcells are higher resolution than the heightmap, we do some interpolation +to get smoother output. + +That will give a binary \emph{terrain passability grid} for this passability class: + +\begin{tikzpicture}[ + scale=0.5, + blocked/.style={rectangle,draw=black!60,fill=black!50,minimum size=0.5cm} +] + +\draw[step=1cm,black!60,very thin,xshift=-0.5cm,yshift=-0.5cm] (0,0) grid (20,10); + +\foreach \x in {0,1,2} \node[blocked] at (\x,0) {}; +\foreach \x in {0,1} \node[blocked] at (\x,1) {}; +\foreach \x in {0} \node[blocked] at (\x,2) {}; +\foreach \x in {12,...,19} + \foreach \y in {6,7,8,9} + \node[blocked] at (\x,\y) {}; + +\end{tikzpicture} + +We also force the navcells around the outside of the map to be impassable. +(This means we usually don't have to worry about units walking off the edge of the map. +It also means we can use the shroud-of-darkness effect to make the map smoothly fade out +around its edges, and units won't walk so far out that they disappear into that SoD.\@) +This is either a circular or square pattern, +and we currently have at least 3 impassable terrain tiles (i.e.\ currently 12 navcells) +around each edge. + +The grid is then expanded by the passability class's clearance value $c$ +(effectively convolution with a square filter of size $(2c+1)\times(2c+1)$) +to get the \emph{expanded terrain passability grid}: + +\begin{tikzpicture}[ + blocked/.style={rectangle,draw=black!60,fill=black!50,minimum size=0.5cm}, + blocked2/.style={rectangle,draw=black!60,fill=black!30,minimum size=0.5cm}, + scale=0.5 +] + +\def\unit#1;{ + \draw[draw=green,fill=green!50,opacity=0.5] #1 circle (2cm); + \draw[draw=black] #1 ++(-0.2cm,-0.2cm) -- ++(0.4cm,0.4cm); + \draw[draw=black] #1 ++(-0.2cm,0.2cm) -- ++(0.4cm,-0.4cm); +} + +\draw[step=1cm,black!60,very thin,xshift=-0.5cm,yshift=-0.5cm] (0,0) grid (20,10); + +\node[blocked] at (0,0) {}; +\node[blocked] at (1,0) {}; +\node[blocked] at (2,0) {}; +\node[blocked] at (0,1) {}; +\node[blocked] at (1,1) {}; +\node[blocked] at (0,2) {}; + +\foreach \x in {0,1,2} \node[blocked] at (\x,0) {}; +\foreach \x in {0,1} \node[blocked] at (\x,1) {}; +\foreach \x in {0} \node[blocked] at (\x,2) {}; +\foreach \x in {12,...,19} + \foreach \y in {6,7,8,9} + \node[blocked] at (\x,\y) {}; + +\foreach \x in {3,4} \node[blocked2] at (\x,0) {}; +\foreach \x in {2,3,4} \node[blocked2] at (\x,1) {}; +\foreach \x in {1,2,3,4} \node[blocked2] at (\x,2) {}; +\foreach \x in {0,1,2,3} \node[blocked2] at (\x,3) {}; +\foreach \x in {0,1,2} \node[blocked2] at (\x,4) {}; + +\foreach \x in {10,11} + \foreach \y in {6,7,8,9} + \node[blocked2] at (\x,\y) {}; + +\foreach \x in {10,...,19} + \foreach \y in {4,5} + \node[blocked2] at (\x,\y) {}; + +\unit (14,3.45); + +\end{tikzpicture} + +(It'd be nicer to do a more circular convolution, so that the sharp corner +in the top-right gets smoothed to a more rounded corner, +especially with large clearance values. +That would be a self-contained enhancement and won't have any further consequences.) + +A unit may be located anywhere on any passable navcell in this new grid. +If a unit is visualised as a circle with radius $r$, +then the circle won't overlap any impassable navcell in the +original terrain passability grid as long as $c \geq r$. +The green circle in the previous figure indicates a unit with $r=2$ +in a valid location. + +\subsection{Static obstructions} + +(Implemented by \texttt{CCmpObstructionManager::Rasterize}.) + +Rasterization is the process of converting a vector shape +(in this case an obstruction square) +into a pixel grid (in this case actually a navcell grid). +We do this so that the grid-based pathfinders can handle static obstructions (like walls) +in the same way as they handle terrain-based obstructions (like rivers). + +For a given clearance value $c$, +a navcell is blocked by an obstruction shape +if every corner of the navcell +is either inside the shape or is a distance $d \leq c$ away from the shape. + +In the following figure, blue is obstruction squares, red is the points at distance $c=1$ +outside of the obstruction square, +green circles are some units with radius 1, +and grey squares are blocked by the obstructions. + +\begin{tikzpicture}[ + scale=0.5, + blocked/.style={rectangle,draw=black!60,fill=black!50,minimum size=0.5cm} +] + +\def\unit#1;{ + \draw[draw=green,fill=green!50,opacity=0.5] #1 circle (1cm); + \draw[draw=black] #1 ++(-0.2cm,-0.2cm) -- ++(0.4cm,0.4cm); + \draw[draw=black] #1 ++(-0.2cm,0.2cm) -- ++(0.4cm,-0.4cm); +} + +\draw[step=1cm,black!60,very thin,xshift=-0.5cm,yshift=-0.5cm] (0,0) grid (20,10); + +\begin{scope}[xshift=4cm,yshift=3cm] +\foreach \x in {-1,...,1} \node[blocked] at (\x,-2) {}; +\foreach \x in {-2,...,2} \node[blocked] at (\x,-1) {}; +\foreach \x in {-2,...,2} \node[blocked] at (\x,0) {}; +\foreach \x in {-1,...,1} \node[blocked] at (\x,1) {}; +\draw [color=red,rounded corners=0.5cm] (-2.5,-2.5) rectangle (2.5,2); +\draw [color=blue] (-1.5,-1.5) rectangle (1.5,1); +\end{scope} + +\begin{scope}[xshift=13cm,yshift=5cm] +\foreach \x in {2} \node[blocked] at (\x,3) {}; +\foreach \x in {0,...,3} \node[blocked] at (\x,2) {}; +\foreach \x in {-1,...,3} \node[blocked] at (\x,1) {}; +\foreach \x in {-3,...,3} \node[blocked] at (\x,0) {}; +\foreach \x in {-3,...,1} \node[blocked] at (\x,-1) {}; +\foreach \x in {-3,...,-0} \node[blocked] at (\x,-2) {}; +\foreach \x in {-2} \node[blocked] at (\x,-3) {}; +\draw [color=red,rotate=30,rounded corners=0.5cm] (-4.5,-2.5) rectangle (4.5,2.5); +\draw [color=blue,rotate=30] (-3.5,-1.5) rectangle (3.5,1.5); + +\unit (4.05,2); +\unit (4.65,1); +\unit (4.7,0); +\unit (3.3,-1); + +\end{scope} + +\end{tikzpicture} + +It is important that partially-obstructed navcells are still considered passable: +when a unit is trying to move to a building (e.g.\ to attack it), +it can always succesfully get within any distance $d > c$ of the obstruction shape, +without having to move illegally onto an impassable navcell. + +TODO: In the implementation, we need to be sure units never try to move +within a distance $d \leq c$, else they might be blocked by navcells. +Maybe add $c$ to all (positive) attack/gather/etc ranges? + +\section{Path goals} + +When a path is requested, there is a source unit and a goal. +The goal might be: +\begin{itemize} + \item Point $(x, z)$ -- + e.g.\ when telling a unit to walk to some specific location. + \item Square $(x, z, \frac{w}{2}, \frac{h}{2}, \mathbf{u}, \mathbf{v})$ -- + e.g.\ when telling + a melee unit to attack a square building, they will move to positions close to the building + (depending on their maximum attack range) in a square pattern. + \item Circle $(x, z, r)$ -- + e.g.\ when telling + a ranged unit to attack a square building, they will move to positions within + maximum attack range of the building in a circular pattern. + \item TODO: Inverted squares/circles for minimum attack range? +\end{itemize} + +TODO: Need some constraints on squares/circles that are based on structures, +so they're always far enough out. + +A navcell can be considered to be \emph{inside a goal}. +If the goal is a point $(x, z)$, then only the navcell $\mathrm{PointToNavcell}(x, z)$ +is inside the goal. +Otherwise, a navcell is inside the goal if any point inside (or on the edge of) that navcell +is inside (or on the edge of) the goal shape. + +TODO: Think about edges cases in relation to vertex pathfinder. + +\section{Navcell-based A* pathfinder} + +The basic pathfinder is a pretty standard A* over a uniform-cost grid of navcells. +Connectivity between navcells is as illustrated: + +\begin{tikzpicture}[ + blocked/.style={rectangle,draw=black!60,fill=black!50,minimum size=1cm} +] + +\def\unit#1;{ + \draw[draw=green,fill=green!50,opacity=0.5] #1 circle (1cm); + \draw[draw=black] #1 ++(-0.2cm,-0.2cm) -- ++(0.4cm,0.4cm); + \draw[draw=black] #1 ++(-0.2cm,0.2cm) -- ++(0.4cm,-0.4cm); +} + +\draw[step=1cm,black!60,very thin,xshift=-0.5cm,yshift=-0.5cm] (0,0) grid (7,4); + +\node[blocked] at (2,2) {}; +\node[blocked] at (3,1) {}; +\node[blocked] at (5,2) {}; + +\foreach \x in {0,...,6} + \foreach \y in {0,...,3} + \draw (\x,\y) circle (0.1cm) node [circle,inner sep=0.07cm] (c\x\y) {}; + +\begin{scope}[color=blue] +\draw (c03)--(c13)--(c23)--(c33)--(c43)--(c53)--(c63); +\draw (c02)--(c12); \draw (c32)--(c42); +\draw (c01)--(c11)--(c21); \draw (c41)--(c51)--(c61); +\draw (c00)--(c10)--(c20)--(c30)--(c40)--(c50)--(c60); +\draw (c03)--(c02)--(c01)--(c00); +\draw (c13)--(c12)--(c11)--(c10); +\draw (c21)--(c20); +\draw (c33)--(c32); +\draw (c43)--(c42)--(c41)--(c40); +\draw (c51)--(c50); +\draw (c63)--(c62)--(c61)--(c60); + +\draw (c03)--(c12)--(c01)--(c10); +\draw (c13)--(c02)--(c11)--(c00); +\draw (c11)--(c20); +\draw (c21)--(c10); +\draw (c33)--(c42); +\draw (c43)--(c32); +\draw (c40)--(c51)--(c60); +\draw (c41)--(c50)--(c61); +\end{scope} + +\end{tikzpicture} + +From any passable navcell, you can move to any horizontally/vertically adjacent +passable navcell with cost $1$. +Also, you can move diagonally from any navcell $(i,j)$ to $(i\pm1,j\pm1)$ +if those navcells, +plus the adjacent navcells $(i\pm1,j\mp1)$ and $(i\mp1,j\pm1)$, +are all passable. +Diagonal moves have cost $\sqrt{2}$. + +Note that this definition of diagonal movement +means that connectivity between any two navcells +can be determined solely from the horizontal/vertical adjacencies; +the only effect of the diagonal moves is to allow smoother shorter paths. + +\section{JPS A* pathfinder} + +This is just an optimisation of standard navcell-based A*, +which works especially well on sparse grids. + +TODO: Details. + +\section{Hierarchical pathfinder} + +This can do the following: +\begin{itemize} + \item Determine if there is at least one path through the navcell grid between + passable navcells $a$ and $b$ (i.e.\ determine if $b$ is \emph{reachable} from $a$). + \item Given a goal shape and a passable source navcell $a$, + determine if there is any navcell that is in the goal and is reachable from $a$. + If not, find one of the reachable navcells that is nearest to the center of the goal. + \item Given an impassable navcell $a$, find one of the passable navcells that is + nearest to $a$. +\end{itemize} + +Note that it doesn't actually find paths. +We might want to extend it to do that in the future, +if JPS is too slow. + +TODO: Details. + +\section{Vector pathfinder} + +In addition to the navcell-based pathfinders (which are fine for approximate paths +over a fairly static grid with large obstructions, +but not good at fine detail or at very frequent changing or small obstructions), +we have a pathfinder based on a vector representation of the world. + +The current implementation is a points-of-visibility pathfinder. +The world is represented as a set of edges (impassable straight lines for the outlines of obstructions) +and a set of vertexes (for the corners of obstructions). +Edges are single-sided (they block movement from outside an obstruction to the inside, +but not vice versa). +A path can go from any vertex to any other vertex, if the straight line between those vertexes +does not intersect any obstruction edges. +Given those vertexes and connectivity data, +a basic implementation of A* can find optimal paths. + +The vector pathfinder has to understand terrain-based impassability +(which is fundamentally defined on a navcell grid), +static obstructions, and dynamic obstructions. +(Dynamic obstructions are other units -- they are smallish, +and can be treated as circles or axis-aligned squares or similar.) + +Inconsistencies between the navcell pathfinder and vector pathfinder are problematic. +If the navcell pathfinder thinks a route is blocked, +but the vector pathfinder thinks there is enough space, +then units will sometimes use that route and sometimes refuse to. +In the opposite case, the navcell pathfinder will send a unit along a route +that it thinks is valid, +but the vector pathfinder will think there's not actually enough space +and the unit will be stuck and won't know where to go. +This is inevitable when a route is blocked by dynamic obstructions, +but we should aim to avoid such problems in at least the cases where there are +no dynamic obstructions. + +To minimise those inconsistencies, +the vector pathfinder uses the navcell-grid rasterized versions of static obstructions, +instead of using the original rotated-rectangle vector versions. + +The pathfinder algorithm does not explicitly take account of the unit's size -- +it assumes the unit is a point and can move arbitrarily close to an obstruction edge. +Because the navcell grid has already encoded the unit's clearance value, +we can convert the navcell outlines directly into the vector representation +for this pathfinder, and units will not get too close to static obstructions. + +Note that since navcells intersecting the edge of a static obstruction +are not made impassable, +the vector pathfinder will let units move slightly inside the +geometric shape of the obstruction +(by up to $\sqrt{2}\times\mathrm{NavcellSize}$). +(TODO: Be more specific/correct.) + +Dynamic obstructions (units etc) are converted directly into vectors, +without quantising to the navcell grid. +Their obstruction shapes are axis-aligned squares with a known radius. +To stop units intersecting each other, +each square is expanded by the pathing unit's own obstruction radius. + +TODO: Inconsistency between clearance and obstruction radius? + +The pathfinder can then find paths between corners that don't intersect edges. + +TODO: How does it handle edge cases like units starting precisely on an edge? + +\begin{tikzpicture}[ + >=stealth, + scale=0.5, + blocked/.style={rectangle,draw=black!60,fill=black!50,minimum size=0.5cm} +] + +\def\unit#1;{ + \draw[draw=green,fill=green!50,opacity=0.5] #1 circle (1cm); + \draw[draw=black] #1 ++(-0.2cm,-0.2cm) -- ++(0.4cm,0.4cm); + \draw[draw=black] #1 ++(-0.2cm,0.2cm) -- ++(0.4cm,-0.4cm); +} + +\def\unitb#1;{ + \draw[draw=red,thick] ($#1-(2cm,2cm)$) rectangle ($#1+(2cm,2cm)$); + \draw[draw=green,fill=green!50,opacity=0.5] ($#1-(1cm,1cm)$) rectangle ($#1+(1cm,1cm)$); + \draw[draw=black] #1 ++(-0.2cm,-0.2cm) -- ++(0.4cm,0.4cm); + \draw[draw=black] #1 ++(-0.2cm,0.2cm) -- ++(0.4cm,-0.4cm); +} + +\draw[step=1cm,black!60,very thin,xshift=-0.5cm,yshift=-0.5cm] (0,0) grid (20,10); + +\begin{scope}[xshift=5cm,yshift=4cm] + +\foreach \x in {0} \node[blocked] at (\x,1) {}; +\foreach \x in {-1,0,1} \node[blocked] at (\x,0) {}; +\foreach \x in {0} \node[blocked] at (\x,-1) {}; +\draw [color=blue,rounded corners=0.5cm,rotate=45] (-2,-2) rectangle (2,2); +\draw [color=blue,rotate=45] (-1,-1) rectangle (1,1); + +\draw [color=red,thick] (-0.5,1.5) -- ++(1,0) -- ++(0,-1) -- ++(1,0) -- ++(0,-1) -- ++(-1,0) -- ++(0,-1) -- ++(-1,0) + -- ++(0,1) -- ++(-1,0) -- ++(0,1) -- ++(1,0) -- ++(0,1); + +\unitb (5.2,2.1); +\unitb (7.3,1.5); + +\unit (-4,2); +\draw [color=black,thick] + (-4,2) circle (0.1cm) -- + (0.6,1.6) circle (0.1cm) -- + (3.1,0.0) circle (0.1cm) -- + (5.2,-0.6) circle (0.1cm) -- + (9.4,-0.6) circle (0.1cm) -- + (12,2) circle (0.1cm); + +\end{scope} + +\end{tikzpicture} + +\section{Stuck units} + +(Implemented by \texttt{CCmpPathfinder::ComputePathOffImpassable}.) + +A unit might find itself on an impassable navcell. +(We should prevent that whenever possible, +but we should be robust to error cases where the prevention fails, +and it can easily happen in Atlas.) +The JPS pathfinder and hierarchical goal reachability system +inherently require that units start on passable navcells. +We therefore need a way to safely get units off impassable navcells as quickly as possible. + +The hierarchical pathfinder can find the nearest passable navcell to the unit. +We can then construct a straight-line path to that navcell, +and let the unit recompute a proper path once it's got out. + +Normally the short-range pathfinder will let the unit get quite widely diverted from the long-range path. +That's bad when the unit is starting inside a building or a region of impassable terrain -- +it might decide to go a very long way through the impassable region, +instead of getting out as quickly as possible. + +TODO: How can we handle that? (Add a flag to disable the short-range pathfinder? +What if another unit is in the way?) + +\section{Unit movement} + +The short-range pathfinder will give the unit a waypoint to walk towards. +The unit will move a short distance in that direction each turn. +To cope with dynamic changes to the world, +the unit needs to verify that its movement won't collide with anything. +This requires testing the movement line against the navcell grid, +and against unit obstructions (expanded by the moving unit's radius). + +TODO: Does the implementation work like that? + +\section{Unit spawning} + +(Implemented by \texttt{CCmpFootprint::PickSpawnPoint} +and \texttt{CCmpPathfinder::CheckUnitPlacement}.) + +When a building trains a unit, it needs to pick positions nicely located +around the perimeter for the units to appear. +(We don't have units walking out of a door, they just appear instantly.) +A position is valid if it is on a passable navcell, +and if the unit doesn't overlap with any existing units. + +TODO: The implementation tests against static obstructions unnecessarily. + +\section{Building placement} + +(Implemented by \texttt{CCmpObstruction::CheckFoundation} +and \texttt{CCmpPathfinder::CheckBuildingPlacement}.) + +Buildings have various terrain restrictions (maximum slope, +min/max water depth, distance from shore, etc) +defined as a passability class. +Players should only be permitted to place a building if every navcell +under the building is valid, +so that they can't make them hang over the edges of cliffs etc. +Unlike the previously-described rasterization, +this should be an over-estimate of the building's shape +rather than an underestimate. + +Overlapping structures are not a problem for the pathfinding system, +except that it's weird and ugly to let players build overlapping buildings, +and it's bad if players pack buildings so tightly that units get trapped +or if newly trained units don't have any space to spawn into. + +We can therefore do pretty much anything to determine placeability, +but should expand the building's obstruction square somewhat to ensure +it's not too near any other buildings or obstructed navcells. + +TODO: What specifically should we choose to do? + +\section{AI foundation placement} + +AI scripts need to be able to pick locations for new buildings that are guaranteed +to be valid. (If they are not, the AI might get stuck forever trying to build on the +same invalid spot.) +They don't need to be particularly precise - a conservative terrain-tile-quantised approximation +would be okay. + +TODO: How do we do that? + +\section{Foundation unit dispersal} + +(Implemented by \texttt{CCmpObstruction::GetConstructionCollisions} +and \texttt{CCmpObstructionManager::GetUnitsOnObstruction}). + +When a builder unit starts building a foundation, +there might be other units standing in the way. +(No other buildings etc can be in the way -- the foundation couldn't be placed in that case.) +Those units need to move out of the way, +else they will be colliding with the newly-constructed building. +But the builder itself shouldn't have to move +(it would get stuck in an infinite loop of trying to build and then moving away and then returning and trying again). + +The important thing here is the rasterized building obstruction -- +for each nearby unit, the unit should not be on a navcell that is blocked +by the rasterized obstruction after expanding by the unit's clearance. + +Since the rasterization only includes navcells that are entirely inside the +obstruction expanded into a rounded-rectangle, +we could use an expanded (non-rounded) rectangle as a conservative approximation +to find units that might collide with the rasterization. +To be certain, we should add a small tolerance value (perhaps 0.5 navcells) onto the sizes. + +So: Given the building's obstruction square, loop over every unit in the world. +Expand the square by unit's clearance plus tolerance. If the unit is inside that +square, tell it to move outwards to a square based on the obstruction square plus +clearance plus a larger tolerance. + +The builder will have moved to a goal shape of the building's obstruction square +plus the max build range. +If the build range is strictly greater than the clearance plus tolerance, +then the builder won't block the building it's building. + +TODO: Implement that range restriction somewhere. + +\section{Dynamic updates} + +\ldots + +\section{Territories} + +\ldots + +\section{TODO} + +Things to fix in the implementation: +\begin{itemize} + \item Enforce range constraints. + \item Remove (or specify) support for \texttt{CheckFoundation} of \texttt{Unit} shapes. + \item Fix \texttt{CheckBuildingPlacement} to skip shapes, and put foundations in the navcell grid. + \item Support dynamic updates. + \item ... +\end{itemize} + +\end{document}