"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