References & Further Reading
Foundational Academic Literature
The study of pathfinding is rooted in decades of computer science research. The following papers represent the bedrock upon which modern pathfinding systems are built.
- Hart, P. E., Nilsson, N. J., & Raphael, B. (1968). A Formal Basis for the Heuristic Determination of Minimum Cost Paths. IEEE Transactions on Systems Science and Cybernetics. (The seminal paper that introduced the A* algorithm).
- Russell, S. J., & Norvig, P. (2020). Artificial Intelligence: A Modern Approach. (The standard reference text for AI, providing an excellent, high-level overview of search algorithms and heuristics).
- Dijkstra, E. W. (1959). A note on two problems in connexion with graphs. Numerische Mathematik. (The foundational paper for shortest-path algorithms).
Advanced Topics & Optimization Papers
- Harabor, D., & Grastien, A. (2011). Online Graph Pruning for Pathfinding on Grid Maps. (The paper that introduced Jump Point Search).
- Sturtevant, N. R. (2012). Hierarchical Pathfinding. (Key research on HPA* and scalable pathfinding).
Recommended Online Learning Resources
The following online resources are widely recognized for their pedagogical excellence and ability to translate complex pathfinding theory into intuitive, interactive visualizations.
- Red Blob Games - A* Introduction: Widely regarded as the best interactive resource for understanding A* pathfinding on grids.
- Amit Patel's Game Programming Page: An extensive library of resources on pathfinding, heuristics, and game-specific AI techniques.
- Wikipedia - A* Search Algorithm: A reliable source for the formal mathematical definitions of A*, admissibility, and consistency.
- Moving AI: A collection of pathfinding benchmarks and research data, essential for validating pathfinding implementations against standard datasets.
Community and Frameworks
To dive deeper into real-world implementations, exploring open-source pathfinding libraries is highly recommended:
- Pathfinding.js: A library of common pathfinding algorithms implemented in JavaScript, useful for learning and comparing different approaches.