The Vortex Cinema


"The Vortex Cinema" is a time-travelling, genre bending VR shooter where you enter the world of black and white movies, stepping into the shoes of a hard-boiled detective at the center of a film noir murder mystery. Uncover an elaborate conspiracy surrounding a scientist that spontaneously combusted, a red-eyed raven, a corrupt police department and a mafia underworld that holds the city in its grip. As your case unravels it will take you deeper down a rabbit hole of intrigue and face to face with friends and foes from different dimensions.

In this project, my core responsibilites were the development of the AI and the animation system. Another part of my responsibilities was the integration of non standard player movements styles and a physically interacting player body.

AI Systems

The AI design took several iterartions. The initial design was based on behavior trees and environment queries and had a very simplistic cover determination. But because this version of the AI was was very linear, their decision making felt rather robotic. For the next iteration, we desided to go for an utility ai system. This allows an AI to pick an action or a behavior/movement to perform asynchronously. This system allows to create a very realistic AI and has the potential to include long term planning. But while we still were in development, we realised that this is not the best idea to keep pursuing because the design approach did not match what we envisioned. Our designers felt a lot of the time like they were lacking control over how the AI should behave in certain situations. The reason for this to happen lies in how the AI approaches the determination of actions. It constantly tries to determine what action and behavior is the best at each time and only keeps performing its current action while it still has the highest priority. This means the designers need a completly different approach to build conditions (more fuzzy instead of binary) than what they were used to.
Another reason for changing the system back to a behavior tree based AI was us realising that our design was overtuned to behave like a human adversary which resulted in the gameplay feeling very passive and boring. With changing to a more simplistic and dumbed down AI which also makes dumb decisions (like running out into the open), we achieved fast what behavior we wanted.
Even though the utility ai system is not in the product anymore, the development allowed me to learn how yet another ai system is working and how to build custom object types which can be created directly from the Unreal Engine editor.

Cover System

In addition to the AI behavior, I developed a cover system which allows the player (in third person) and the AI to move along connected cover and interact with it. To prevent multiple ai from moving to the same location, an ownership system with which an ai can reserve a cover location has been implemented. To make it simpler for a user to set up cover, an in-editor toolset has been implemented which shows the cover path and automatically connects cover location if they are close enough.
This system is at them moment incomplete and can be extended by including it into the pathfinding and allow more complex interactions than just taking cover and standing behind.

Detection System

We wanted to allow the player to approach scene in a rambo-style but also more tactical and potentially seek a pacifistic approach to get past his adversaries. To enable this, the AI uses sight and hearing as primary senses to detect the player. But when they are hunting the player and lose him, they shouldn't just start a random search in the area where they last knew of him nor should they just stay there and simply return to what they were doing before. So I developed a "breadcrumbs" system which allows the AI to follow for a while longer without actually knowing where he is and present a more natural search behavior.
To enhance the detection system I modified the sight sense to consider the ilumination of the seen object. This allows the player to hide in the shadows if he stays far enought away but he can still be detected if the AI is walking past him too close.

Animation System

To reduce the workload on our animators and being able to use various weapons on the same character, I started to develop an equipment system with an animation system which can handle the change of equipments as well as the interaction with the equipment. It contains a hand ik setup to retarget the used animations to meshes with various proportions and match the animations to interaction points in the environment. Furthermore does the ik setup include a foot ik to match the walked on surfaces and prevent foot sliding due to interpolation as well as a system to approach "points of interest" precisely if the position and/or rotation of the actor is relevant for further animations. And to allow the system to be more natural, it includes dynamic deaths and impacts animations based on direction and strength of the attack.
While it is already possible to blend in animations at various different points in the animation blueprint and also per bone, it still needs to be extended to interact well with the cover system or potentially with a dynamic climbing system.

Characteristics

Role: Developer
Plattform: PC - Occulus and Vive
Engine: Unreal Engine 5
Website: The Vortex Cinema
SXSW