C++/C# programmer
Developed in January 2021
For the second project in my second year of university, I implemented several gameplay prototypes in Unreal Engine 4 that I also deployed to the PS4. This was a concepting block, so these prototypes were meant to prove and test ideas. I also actively participated in other parts of the concepting process like brainstorming.
As stated, I made some small gameplay prototypes to support the concepting process. These prototypes have a very small scope because they were meant to answer specific questions and because there was very limited time for each of them.
Fire spreading through a tree
Wind pushing some physics objects
To create possibilities for player abilities and/or horror moments in our game concept, we decided to explore the idea of systemic gameplay. Specifically environmental systems that interact with each other, with AI characters, and can be interacted with by the player as well.
As an example, we decided to prototype a system for fire and a system for wind. Fire would spread through flammable objects, while the wind would simply push physics objects in a given direction.
There are three interactions between these systems, one where the wind pushes the fire to change direction, another where the wind makes the flame grow larger when it’s not very strong, and a third where the wind extinguishes fire when it’s strong enough.
The wind pushes and boosts the fire that's inside of it when the game is started
An AI programmer on the team decided to use my systems and interface to create an enemy that would try to set itself on fire and then seek out flammable objects like the player to set them on fire as well
This is a simple example of how easily mechanics can be tied to these systems without affecting the rest of the codebase
Although the prototype didn't have a lot of systems yet, it showed that a lot of interesting interactions can come from just a few elements.
It also explored how this can be implemented in a modular way so that the code can remain maintainable.
A player can move through a portal from both directions
Halfway through concepting, we got the idea of basing our game around the idea of mirrors where some things are different on the other side.
You would have to travel between mirrors to complete puzzles and other challenges and progress through the game.
To implement this, we would need to have a portal system so we could move seamlessly between unconnected parts of a level, that would just so happen to be mirrored versions of one another.
I focused on the transition and on how this could be structured, while someone else on the team worked on the visual aspect where you see the other part of the level through the portal.
These prototypes were never combined because the idea wasn't pursued further by the team.
Having two portals with independent transformations within a single actor guarantees there is always a destination
Bullets being shot through a portal
Because our creative brief focused on horror/stealth, we wanted to look more into how we could make our AI behave and how we could tie that into other mechanics. A relevant idea for this prototype was to have the AI investigate points of interest that it could interact with, one implementation of this could be hiding spots that it would interact with to find the player or things that changed in the room like fallen glass that could lead the AI on a trail towards the player.
An AI interacting with all points of interest around it
Implementation of the point of interest used in the prototype
It simply moves itself up a bit to show that it was interacted with
To be a point of interest, a class or blueprint simply needs to implement the PointOfInterest interface and its OnInvestigateBy function.
The OnInvestigateBy function gets the investigator as an argument so that it can also tell the AI to do things like play an "open chest" animation without the AI itself needing to distinguish between points of interest.
It wasn't very difficult to deploy the project to the PS4, but it was necessary to go through this process so that we would know how to do it and if there are any unexpected limitations for our project.
I simply followed the guide that was provided with the PS4 resources and I was able to deploy all our prototypes without any issues at all.
I sadly can't show the projects being deployed on the PS4 because I signed an NDA.
Project tags: #C++, #Concepting, #Cross-Platform, #Multidisciplinary, #PS4, #Prototyping, #UE4