Project Duality

Project Duality

Project Duality is a cooperative 3D adventure puzzle game, developed in Unreal Engine 5. It is currently in development as my bachelor thesis project at the University of Applied Sciences Vorarlberg. This project was originally inspired by titles like It Takes Two and Split Fiction. The project goal is to make a interdependency among players perceptlible through the design of the mechanics.

Multiplayer

The game is designed to be played cooperatively among two players. Connecting to a session is possible through Steam.

Multiplayer

Screenshot of the multiplayer gameplay of Project Duality.

Multiplayer functionality is provided by the Advanced Sessions plugin. Its implementation has been problematic but informative. The main issue has been understanding its underlying functionality: What can be done, when can it be done, and what needs to be considered? There are many conditions to be met, just to be able to connect two players, travel worlds and disconnect properly. However, once this is understood, it seems comparatively simple in hindsight.

Moving Objects

How to move objects in a multiplayer environment, without causing desynchronizations, jittering or similar problems while physics are involved?

Moving Objects

Screenshot of an object being moved in Project Duality.

By letting the player hold a target-Vector where the carried object should be moved to. The server will consider all conditions and tell the object to move itself towards the target location with a fixed velocity. Making use of the physics system a jittering can be circumvented, since physics run predictive on the client but get corrected by the server.

Shrink / Enlarge

The players primary ability: One player has the ability to shrink objects, while the other can enlarge them.

Shrink / Enlarge

GIF showing the shrink and enlarge mechanic.

Only specific objects can be shrunk or enlarged. They have 3 states, small, medium and large. When the state changes, a OnRep function starts an linear interpolation to its new scale. To make use of this mechanic in puzzles, some pressure plates can only be triggered by objects of specific sizes.

Portals

The players secondary ability: The players can activate a portal attached to them, similar in concept and functionality to a movable black hole and its counterpart, a white hole.

Portals

GIF showing the portal teleportation mechanic.

Player one can open the black hole to consume objects, that will be ejected from the white hole, which is opened by player two. To add onto this ability and concept, the black hole / portal pulls objects towards itself, while the white hole / portal pushes them away.

GIF showing the Black and White hole push / pull dynamic

GIF showing the Black and White hole push / pull dynamic.