Project Exhibited

AI & QA Programmer

Project Exhibited is a first person stealth game set in the 1960’s.
You play as an inventor that uses gadgets in order to break into a  Mediterranean Palazzo.
The main challenge are the guards that patrol the villa at night which you will have to outsmart using your gadgets.

Project Information

Development time

32 weeks

Made in

Unreal Engine 4

Team Size

32 People

Supported Platforms

PC & PS4

Planned Release on

Steam

My Contributions

Guard Behaviors

Naming Convention Enforcement

Continuous Integration Pipeline

Guard Behaviors

Sound Group Behavior

When there is a sound that is perceived by multiple guards I coordinate their behavior so that they don’t all flock to the sound source.

Climbing

Extending from ANavLinkProxy I created a navigation link that is easy to place down and allows the guards to climb after the player.

Crouching

To allow the guard to crouch I set the agent height of the NavMesh generation to the crouch height. Designers then have to specify crouch area’s with a blueprint.

Searching Group Behavior

When guards decide to search an area I coordinate their behavior so they each search a different point in the area and don’t check the same place twice

Patrolling with custom path tool

To give the designers an easy way to define paths for the guards, I created a custom, easy to use, path tool. 

Disclaimer: The features highlighted here only show part of the work I did. As a lot of my work was in collaboration with Stefano Lazzaroni I like to look at the AI as a team effort. Thus I recommend playing the game to get a complete experience of the AI, and see my work in action.

Naming Convention Enforcement

All code and scripts can be found on my Github

Automated Testing

I set up Automated Testing on our Jenkins build server in order to run a test that checked if files were named according to our Naming Convention

Perforce Commands

I then used Perforce console commands to retrieve the name of the person that uploaded the wrongly named file

Python Script

Finally I processed these files using a Python script to send a message to a hidden channel in our discord that further processed the information in order to inform the person with a tag about the wrongly named file

Continuous Integration Pipeline

Jenkins Build Server

I set up our Jenkins build server to build our project for various platforms and configurations multiple times throughout the day.

Automatic Steam Deployment

On top of that I configured our builds to automatically deploy to steam so the whole team can have easy access to the game.