Ubisoft NXT 2019

The goal for the Ubisoft NXT programming challenge was to recreate pac-man. The main focus was to get AI up and running in a small C++ framework. The challenge went on for 3 days.

The mistake i made during the competition was i implemented an A* path finding algorithm towards the end of the challenge, and as a result i couldn’t fix the bugs i was having with it. I’ve since then done more research into path finding algorithms and touched up on my C++. But on the bright side, here are some of my accomplishments.

My Accomplishments

Scene graph implementation

I decided for this challenge i’d create a scene graph. I set up world class that would contain scenes and get created at the start of the program. It would then update the scenes it contained.

Each scene contained a map of game object’s and would update and render them.

It was functional and it was able to handle various types of game objects.

World class updating scene
Scene class updating game objects.

Event system

With the implementation of my scene graph, i decided it would be a good idea to implement an event system.

The world processes the events before updating the scene and empties the event queue before calling update.

I used the event system to get input from the controller. The event gets created and decoupled in the player class. Once the event is processed by the player, its casted to its appropriate event type and the proper information is extracted. In this case its a direction.


I implemented very bare bone collisions into the pac-man game. The bounding box around pac-man is his square collider. This collider simply checks if it intersects anything, and then prevents the player from going in the collided direction.

Here is the github link to the project:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s