Skip to content

Latest commit

 

History

History
55 lines (42 loc) · 3.22 KB

README.md

File metadata and controls

55 lines (42 loc) · 3.22 KB

Path finding is a metaphor

This repository documents our, that's twitu, arkonaire and lsampras, experiments with bot programming, from the mundane path finding to the abstract state management.

To setup the environment, clone the repository and then run the following commands

cd path/to/bot_programming
virtualenv venv --python=python3
source venv/bin/activate
pip install -r requirements.txt
sudo apt-get install python3-tk

Cool results

Finding bottlenecks in a randomly generated map
bottlenecks

A* path finding with way points
waypoints

Dynamic squad movement based on obstacles
swarm

Enemy pheromones based on last known position
pheromones

Reference material

We refer to a lot of existing work including blogs, videos, research papers and books. A good reference ideally opens up a new avenue for experimenting.

General Principles

AI Game Programming Wisdom - Touches on all concepts related to AI game programming, while also covering code opitmizations for practical performance.

Map intelligence

Voronoi based choke points - Identifying choke points in the map.
Flood fill to identify choke points - Explains efficient technique to identify choke points in common maps.

Path finding and map representations

Amit P blog - Extensive resource on path finding algorithms and implementations.
JPS and RSR optimization - Discussion on optimization techniques
Potential field based navigation - Discussion around techniques for potential field based navigation
Adaptive potential fields - Suggests potential fields that can be used for navigation

Squad tactics and formations

Dynamic formations - Gives a generic framework to build squad formations.
Real world squads - Inspiration from historical squad formations.
Formation controls Review paper for formation control.

Enemy intelligence and prediction

Pheromones for tracking and prediction - Concept for using pheromones to track enemy units

Decision making

Game trees - Trees for decision making.
Resource management - Framework for managing resources.

Tools

Map Generation - Using perlin noise for random maps