All Projects → glfmn → path_demo

glfmn / path_demo

Licence: MPL-2.0 license
An experimental set of pathfinding algorithms for video games

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to path demo

Baritone
google maps for block game
Stars: ✭ 3,868 (+24075%)
Mutual labels:  astar, pathfinding
unity-pathfinding
Find paths in Unity Tilemaps with A* Search
Stars: ✭ 70 (+337.5%)
Mutual labels:  astar, pathfinding
NavMeshDemo
Unity client navmesh export to server for pathfinding
Stars: ✭ 31 (+93.75%)
Mutual labels:  astar, pathfinding
Pathfinding
A pmmp virion (library) for pathfinding using A*
Stars: ✭ 36 (+125%)
Mutual labels:  astar, pathfinding
pathfinding-visualizer
Website built using React Framework for visualizing Pathfinding and Maze Generation Algorithms.
Stars: ✭ 33 (+106.25%)
Mutual labels:  astar, pathfinding
Graphhopper
Open source routing engine for OpenStreetMap. Use it as Java library or standalone web server.
Stars: ✭ 3,457 (+21506.25%)
Mutual labels:  astar, pathfinding
astar-typescript
A* search algorithm in TypeScript
Stars: ✭ 37 (+131.25%)
Mutual labels:  astar, pathfinding
Easystarjs
An asynchronous A* pathfinding API written in Javascript.
Stars: ✭ 1,743 (+10793.75%)
Mutual labels:  astar, pathfinding
astar-gridmap-2d
A* algorithms for 2D gridmaps. The fastest one, until you prove me wrong
Stars: ✭ 43 (+168.75%)
Mutual labels:  astar, pathfinding
tektosyne
The Tektosyne Library for Java provides algorithms for computational geometry and graph-based pathfinding, along with supporting mathematical utilities and specialized collections.
Stars: ✭ 52 (+225%)
Mutual labels:  astar, pathfinding
d2launcher
Diablo II • Median XL • Mod Launcher for Linux
Stars: ✭ 20 (+25%)
Mutual labels:  games
Cold-Family-Feud
Host your own Family Feud game. Mobile friendly with built in buzzers.
Stars: ✭ 30 (+87.5%)
Mutual labels:  games
skinner
Skin export / import tools for Autodesk Maya
Stars: ✭ 68 (+325%)
Mutual labels:  games
cookiecutter-reveal.js
📊 A cookiecutter template for reveal.js presentations.
Stars: ✭ 15 (-6.25%)
Mutual labels:  presentation
dotacard
You are at FODA artwork repository. Play now for free
Stars: ✭ 22 (+37.5%)
Mutual labels:  games
phaser multiplayer demo
HTML5 Multiplayer with Phaser and Go
Stars: ✭ 35 (+118.75%)
Mutual labels:  games
cl-eye-catching-uis
GopherCon 2018 tutorial session slides and examples
Stars: ✭ 32 (+100%)
Mutual labels:  presentation
Quake2
Quake 2 modification with new renderer and many other unique features.
Stars: ✭ 31 (+93.75%)
Mutual labels:  games
AzurLaneAPI
[Project dropped] was a free (Unofficial) Azur Lane API
Stars: ✭ 12 (-25%)
Mutual labels:  games
Empire-Earth-reborn
official repo of the Empire Earth reborn mod (new models, textures, gameplay etc.)
Stars: ✭ 37 (+131.25%)
Mutual labels:  games

Visual demonstration

Pathfinding in Video Games

An experiment with robotics-based approaches to pathfinding applied to a video game environment.

This demo was created as a graduation requirement from my university and as such the code is not up to my standard for public releases. The application itself is okay to use, but the code that powers it is messy and is not meant for continous maintenance. Many things are copy-and-paste.

Acknowledgements

This work was only possible thanks to the research at the FSU CISCOR robotics laboratory, and the help and kindness of many people at FSU and on internet communities such as r/Rust and r/roguelikedev. Many thanks goes to all of them.

Building the Presentation

With the rust tool-chain installed, clone the repository and build it with cargo:

$ git clone https://github.com/glfmn/path_demo.git
$ cd path_demo
$ cargo run --release

There are some dependencies which must be installed for libtcod which can be found on the libtcod README.

Presentation Controls

Key Function
Left Click Place the monster icon (M) under the cursor
Right Click Place the player, or goal, icon (@) under the cursor
Enter Step through one iteration of path-finding
Shift + Enter Path-find until the final path is found
Backspace Restart path-finding from the beginning
Tab Select the next menu option
Page UP Select previous menu option
Page Down Select the next menu option
Space Toggle the current menu option

Technical Overview

The code is very messy and rather poorly organized as it was a class project that I had to rush to complete. I undertook this project to learn more about how games are organized, and to apply some ideas and concepts I had learned in robotics to game A.I.. I believe I succeded in doing so, but understand this code is experimental and has not been vetted through use in an actual game. With that in mind...

If you are interested in learning more about the methods used, the core algorithm is located behind lib/path/.

Prerequisites

It's best to have a solid understanding of A* before jumping into SBMPO; while SBMPO technically is an approach to designing an algorithm, I have implemented it here with A*, and will motivate and describe it through A*.

Learn more at Red Blob Games's amazing A* introduction.

Motivation

The approach is called "Sampling-based model-predictive optimization," a technique developed at the FSU CISCOR robotics lab. The technique was invented to overcome challenges in mobile robotics and in controls.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].