Working Title
Cover-based pathfinding
Overview
The objective of this project is to develop a pathfinding
algorithm derived from A Star that will take into account cover points. The algorithm will be demonstrated on the 3d
game engine Unity.
Problem
Most of today’s FPS-like games now implement a cover system
accessible for both the AI and player. In order for the AI to look as
“intelligent” and human-like as possible, it should take full advantage of the given
cover system when navigating the game environment. This means that instead of always
taking the shortest route to its goal, an AI agent should be able to take the
shortest route with the most cover points providing it with protection in order to reach its goal.
Research
In order to develop the AI navigation system, I will
research different types of environment representations and pathfinding
algorithms as well as their implementations.
The research on environment representation will mainly focus
on grids, pathNodes and Navmeshes. It will look at each technique’s pros and
cons in order to select the one most suitable for the project. Environment
representation isn’t the focus of this project and therefore it will not be
automatically generated but manually inserted by the user.
The pathfinding
research is going to be more expansive as it will explore different pathfinding
algorithms and ways to expand them, trajectory smoothing and multiple heuristic
constraints.
Methodology
I will use evolutionary prototyping for my methodology. My project will be divided into phases
focusing on different aspects of the problem, which will be prototyped one
after the other, each one building on top of the previous version. The first
phase will focus on implementing environment representation, the second will
use it to implement pathfinding and the third will allow for user input to
change runtime variables.
For each phase, I
will first identify the basic requirements for the prototype and then develop
it. Once done, I will test the prototype and depending on whether or not it
meets the requirements set, change the specifications and prototype. If I am satisfied with my prototype, I will
keep as a base for the next prototype.
Objectives
Personal objectives include:
- learning how to use and program for Unity
- gaining a better knowledge of environment discretization
- learning about and implementing pathfinding algorithms
Project objectives include:
- getting AI characters to follow a given path
- implementing heuristic pathfinding taking cover points into account
- allowing user input to change AI position and destination
No comments:
Post a Comment