Eleanor Gregory's Portfolio

View My GitHub Profile

Stage 4 Advanced Game Technologies

Video

Enable captions for descriptions of each feature as they are shown.

“An excellent coursework. The collision detection is done well…the use of collision layers for automatic handling of which objects can react are a neat touch. The additions made are logical and make for a very efficient broadphase. The state machine is well thought out and integrated nicely with the pathfinding code. The networking is very nicely done.” - Dr Rich Davison

View on Github

Introduction

The aim of this project was to create a simple 3D game where the player would control a goose out to steal items, similar to Untitled Goose Game. The game would be created using a framework provided by Newcastle University to implement physics, collision detection/response, AI and networking game components within.

What Was Learnt

Though I had completed similar projects to this before in adding physics and AI to a game, this was my first instance of doing so in 3D, and it was interesting to see the differences in implementation of similar ideas with the change from 2D to 3D (such as using A* on a generated navigation grid rather than map tiles and collisions accounting for extra axes and the use of OBBs). This was also my first try at making use of networking which brought interesting considerations about creating custom packets and sending the minimum amount of information needed.

Implementation

My finished game contained a number of features as part of its game engine:

Possible Improvements

Though information is sent between client and server to update object positions for all connected games, the game in its submitted form still only supports and shows one player goose. It would be good to extend the framework left in place (starting islands being assigned to player geese to store points, the server sending NPC and item updates to all clients) to add another goose to a networked game.