Escape Room
| Engine | Project Type | Time (hrs) | Number of Developers |
| Unity 3D | Personal | 40 | 3 |
Github Link
https://github.com/LanceDC/Adam-s-Dilemma.git
As the only programmer on this project, my main contribution was the system for how the puzzles work so that anyone can make the puzzle with limited code being written. There is a script that will trigger when someone completes a puzzle and you can change what will be the trigger and the effect of the puzzle being completed in the inspector.
For example if you wanted a key to unlock a door, there is a script that checks if an object has been placed into a location and if so, trigger the effect. A key placed into a locked door will open it, a fuse put into the fuse box will turn all of the power on. This allows anyone to create a puzzle within the inspector. This means that any puzzle can be made to have any effect happen. The only time new code needs to be written is if you want a trigger that has not been made or an effect that has not been made.
This made it so that more time could be used on other areas of the game and you could test each part of a puzzle individually to make sure that it all works.
As well as this I also made it so that you could inspect any object you could pick up, and see if there is any notes on it. This was done with a ray cast intersecting the object and if it has a collider to move it to the players hand and to make it a child of the player. When the player presses the inspect button, it would show the object on a new screen and it could be rotated. This was done by getting the mesh of the object and getting the minimum and maximum vertex in world space and finding the centre location and rotate the object around that point. This allowed for any object to be picked up and inspected and no scripts had to be attached to the object.


AI
| Engine | Project Type | Time (hrs) | Number of Developers |
| Unity 3D | University Unit | 200 for the entire unit | 1 |
This was a unit in my final year to research different AI models and then create an artefact that shows how and when you would use them in a game.
Also created my own A* pathfinding that all of the different AI agents would use to navigate around the scene. Used throttling to help optimise the calculations so only one path would could be calculated in one frame and not have twenty happen which could hit performance
The villagers would use a behaviour tree to find out what their current desirer is and to go to that location and do the respective activity, so if they needed to sleep ad their highest desirer then they would go to bed, if it was money they world go to work and food they would eat. If all of their desirer were low then they would have a default desirer which was to walk about. Each desirer had a weight on it so each villager would feel different from one another and they all would not be doing the same activity at the same time. The desirers that the villager had were; sleep, eat, health and work.
The guards would use a state machine as they would chase the player and attack them if they got close enough to the player. These were controlled by a state controller that would check the guards transition and if they became true to do that new state otherwise do the one they are currently doing as shown by the image below.

The rats are using steering behaviours to calculate where they are going to go. They will head in the average direction of the other nearby rats while avoiding obstacles. If they get near to a villager or guard then they would affect their health.
Arcade Shooter
| Engine | Project Type | Time (hrs) | Number of Developers |
| Unity 3D | Personal | 10 | 1 |
Github Link
https://github.com/LanceDC/Project-Pew-Pew-Arcade.git
This project is a little first person shooter where you need to shoot all of the targets in each room to progress forward and to do it in the quickest time possible.
The level was made using pro-builder. Each room has got a certain number of targets and when they have all been destroyed, the door to the next room will open. Repeat this until the player has got to the cheese at the end. It will then show a score board organising the time of the players from quickest to slowest and showing the top times and the name of the person who achieved that time.
I made this project as I wanted to challenge myself and see what I could create within a day from nothing to a polished little game.
