top of page

morningstar

The sixth game project in my education at The Game Assembly was called Morningstar. You play as a palladin who has the mission of destroying the source of corruption.

Role: AI Programmer

Team Size: 15

Time frame: 6 Weeks

Engine: SideTrack (custom engine)

Language: C++

trailer

introduction

We were 6 programmers, 5 graphic artists and 4 level designers and our reference game was Diablo. During this project, the group was building and improving our own game engine, which we were going to create the game in. Since we were building our engine at the same time, much of the work was focused on that.

navmesh

This project required a navmesh that would be used for the players movement paths as well as boundaries for the enemies, so they don't walk outside of the map and through buildings. Combined with AStar, it could create a path for the player to follow. After that, the path would be improved with the use of funneling. The navmesh is created with the level in Unity and then exported. We then create a navmesh in our engine based on the exported txt file.

morningstar_pathfinding.gif

astar

Introduction

When we had a navmesh in the game, we needed a way to create a path from the start point to the end point. Our decision was to use AStar pathfinding to create a path through nodes on the navmesh on the way towards the end point.

Functionality

The AStar algorithm creates a path through the center of each node on the navmesh between the player and the target position and then returns a vector of positions that the player will follow.

a_star1.png
a_star2.png
a_star3.png

Funneling

Introduction

Since AStar only creates a path from the center point of each node, we needed a way to make the path smoother. So rather than running to each center point on the node, we required a way to offset the path. We got the recommendation to use the funneling algorithm.

Functionality

Funneling recreates the path with offsets based on the corners of the node compared to the target position to make it the optimal path.

funneling1.png
funneling2.png
fill_portals.png
funneling3.png
funneling4.png

what i learned

My first attempt at using the AStar algorithm in a game and customizing it to fit better with a project. It was also my first time working with pathfinding that wasn't using a grid and the concept of navmesh was also new to me. This project gave me an overview of how to work with shaders and engine programming and made me draw the conclusion that it isn't for me. My interests lie in AI and more on the gameplay side of programming.

bottom of page