This project has moved and is read-only. For the latest updates, please go here.

Verson 5.3

Rating: No reviews yet
Downloads: 69
Change Set: 25249
Released: Jun 6, 2013
Updated: Jun 7, 2013 by pgeerkens
Dev status: Beta Help Icon

Recommended Download

Application Binaries
application, 131K, uploaded Jun 7, 2013 - 48 downloads

Other Available Downloads

Source Code Source
source code, 171K, uploaded Jun 7, 2013 - 21 downloads

Release Notes

  1. Almost doubled the speed of PathFinding, (benchmark time reduced from 3.0 sec to 1.7 sec) by:
    1. Using a more efficient PrioirtyQueue implementation (courtesy of Microsoft;
    2. Converting HexCoords to a struct, eliminating ICoords, and converting CustomCoords to a static class with extension methods for HexCoords; and
    3. Adding an explicit Open hashset to reduce height of the minHeap used by ConcurrentPrioirtyQueue.
    4. Roll up change-sets:
    5. 25127 & 25128 - More comments.
    6. 25130 & 25199: PathFinderFwd added; Hexside & HexsideIndex re-jigged.

The benchmark is a long diagonal path on a terrain map of ~ 420 x 750 hexagons, with:
  • More than 250,000 hexagons in the closed set;
  • Nearly 6,000 hexagons in the open set (now down from > 12,000!); and
  • More than 1,000 steps in the optimum path.

All other paths that I have tested on this map are found faster, usually in less than 1.0 sec. The test machine is an Intel i7 running Windows 7 Professional. Only 1 CPU-thread is currently used by the benchmark.

It is possible to squeeze out another 8-10% by removing all lock (_syncLock) statements from the ConcurrentPriorityQueue** implementtation, , making it non-concurrent and reducing the benchmark time down to about 1.55 sec. However I am still looking at a possible parallel implementation, which would require the Concurrent implementation.

Reviews for this release

No reviews yet for this release.