---
title: "Monq"
date: 2023-10-25T14:44:18+01:00
thumbnail: /thumbnails/monq.jpg
tags: ["unreal","c/c++","games"]
---
Monq is my most complete game project. I made it in my second year of
university with some friends, and we were going to use it to form a successful
startup. I learned a lot about how a multidisciplinary team works and tinkered
with creating frameworks in C++ with inheritance both to blueprints and further
C++ sub-classes, covering concepts such as all the AI using unreal's tools,
puzzle implementation, shader implementation using noise and more. Most of the
mechanics for which I was responsible, used a variety of vector and positional
mathematics to implement.

## Trailer
{{< youtube fRSD64D0LUw >}}

## Team
**Programming:** Warwick New, James Hellman

**Designers:** James Hellman, Nicholas Stankowski

**Art:** Harri Slee, Robert Adolfson

**Music:** Jason Read

**Writing:** Michael Wheatley

**Animation:** George Evans, Ross Everson

## Main Contributions
### Tiger AI
Here I created an AI that guards an arena. The puzzle part of this boss was based on trying to get the ai to get a chain stuck on pillars left around the arena reducing the range it could navigate. I did this by calculating the distance between the previous attachment point and the next and reducing the available navigatable circumference of the tiger appropriately. Since this was my first more complicated AI, I now know that It would have been far easier to restrict the AI's movement through the use of a more complex steering system rather than calculating where the actor should target moving towards.

![Tiger AI](/projects/monq/TigerAI.png) 

![Tiger Diagram](/projects/monq/TigerDiagram.png) 

### Mirror Reflections
Here is an example of me simulating reflections in monq to create a light bounce puzzle. Each mirror triggers the next to recursively make light reflection beams. Here I had to work out angles of reflection before creating a new cast to attach a beam particle.

I also worked on the sand texture in this image mixing various forms of noise to create the ripples based on changes in topography.

![Mirror Reflections](/projects/monq/MirrorReflection.png) 
