2025-10-07 10:16:39 +02:00
2025-10-07 10:16:39 +02:00
2025-09-29 11:04:26 +02:00
2025-09-22 10:15:02 +02:00
2025-10-07 10:12:47 +02:00
2025-09-27 15:08:21 +02:00
2025-09-23 15:30:31 +02:00
2025-09-29 11:07:04 +02:00

Pathfinding demo

C++ pathfinding demo

Work in progress

This is a demo of pathfinding on a 2D grid. It consists of 2 main parts:

  • python notes and implementation
    • jupyter notebook file
    • standalone python script
  • C++ interactive demo

Python

Standalone script

Run python pathfinding_demo.py. Requires numpy and matplotlib to be installed.

Jupyter notebook

Contains the same demo as the standalone script and some notes. Since Github supports Jupyter Notebooks now, you can go directly to the file.

C++

Work in progress. At the moment Linux build only.

Build

Install prerequisities

  • SDL3
  • SDL3-image
  • GLEW

e.g. on Archlinux:

pacman -S glew sdl3 sdl3_image

Compile

In the cpp folder, run make

cd cpp/
make -j $(nproc)

Run

Run the pathfinding binary in the cpp folder.

TODO

  • python
    • get jupyter lab running
    • drawing utility
    • interface for pathfinding
    • research methods
    • implement methods
      • DFS
      • BFS
      • Dijsktra
      • GBFS
      • A*
    • performance measurement: time/visited nodes
    • finalize the script and copy back to the jupyter notebook
    • finish text on the page
    • create a dedicated python script
  • C++
    • re-use 2D game engine
    • add tiles (with cost) to map
      • conversion functions from tile coords to world coords
      • drawing tiles
      • add "terrain tiles" with different costs
    • add mouse-click action
    • add direct movement (through mouse click action, no pathfinding)
    • implement pathfinding
      • BFS
      • GBFS
      • Dijkstra
      • A*
    • windows build?
      • VS solution
      • merge to master
      • cmake?
    • add screenshot
    • zoom + pan of the map
    • maze generator?
    • collisions
    • multiple units
      • change from single unit (player) to RTS-style multiple units
    • unit selection
      • selection rectangle?
    • pathfinding for multiple units
    • pathfinding for multiple units
      • group formation, local cohesion, etc
    • cpython interface
      • control the game through the interpreter
    • clang-format config
    • git hooks?
    • gcovr
    • clang-tidy
Description
Python and C++ implementation of selected pathfinding algorithms
Readme 817 KiB
Languages
C++ 48.3%
Jupyter Notebook 42.4%
Python 8.7%
Makefile 0.6%