Skip to content

JasonNumberThirteen/UnityAStarVisualiser

Repository files navigation

A* Visualiser

A* Visualiser

A visual editor application presenting working of A* algorithm made in "Unity" game engine.

Table of Contents

General information

  • This is a "Unity" project of a visual editor designed to present how A* algorithm works on a grid map.
  • The project presents my programming skills and how I write code taking care of several optimisations.

Used technologies

Features

  • FLEXIBLE INPUT
    • Moving the camera around the map
    • Zooming in/out the camera
    • Adjusting movement speed of the camera
    • Adjusting zooming in/out sensitivity of the camera
  • MAP GENERATION
    • Generation of a map by the given dimensions in tiles (from 3x3 to 30x30)
    • Adjusting dimensions (extending & shrinking) by the given size in the input fields
  • MAP EDITING
    • Changing position of map tiles
    • Adjusting weight to each map tile
    • Changing tiles type (passable/impassable) depending on their weight (if it is below 0, then the tile is impassable)
  • ALGORITHM
    • Finding a path between the start and destination tiles
    • Support of both 4-way and 8-way (diagonal) movement
    • Coloring on the map which define a path along with those that were set as visited
    • Drawing an animated path trail
  • HEURISTIC
    • 3 types: Manhattan, Euclidean and Chebyshev distance metrics
    • Adjusting weight (multiplier) by the input field
  • SIMULATION MODE
    • Showing how the algorithm works step by step
    • 2 types: Timed (step between interval in seconds) and Stepwise (step after clicking a button)
  • MISCELLANEOUS
    • Taking screenshots of the map
    • Switching to fullscreen/windowed mode
    • Displaying of the map area along with additional offset around it in tiles (can be disabled)
    • Localization support: Polish and English
    • Multiplatform support: Standalone, WebGL and Android

Scenes

Language Selection

A starting scene with buttons for selecting desired language.

A* Visualiser (Language Selection)

Visualiser

A scene wherein the visualiser is shown.

A* Visualiser (Visualiser) A* Visualiser (Visualiser 2)

Usage

Platform Navigation Hovering a tile Dragging hovered tile Changing tile weight Zooming in/out the camera
Standalone & WebGL W / S / A / D or arrow keys Hovering a tile with a mouse cursor Left mouse button (press & hold) Mouse scroll wheel (if any tile is hovered) Mouse scroll wheel (if none tile is hovered)
Android Swipe (outside of UI panels) Tapping a tile Tapping already hovered tile Adjusting by the UI slider shown on top of the screen Pinch-to-zoom

Project status

COMPLETED


The project is complete and ready to build.

Credits

This project was made entirely by Stanisław "Jason" Popowski.