Skip to content

A prototype inspired by The Talos Principle (2014), focusing on interaction system and recording mechanics.

License

Notifications You must be signed in to change notification settings

mjambresic/talos-records

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

🎞️ The Talos Records 🎞️

A small-scale prototype inspired by the 2014 game, The Talos Principle. It focuses on player interaction with the world and recording mechanics, aiming to recapture the gameplay feel of the original game.


Project Details

Author: Matija Jambresic
Start Date: 20th January 2025
Duration: ~ 2 weeks
Unreal Engine: v5.5.1
Gameplay video.


Interaction System

Interaction.h --- Interaction.cpp
Handles basic player interaction with the world. Casts a line trace to detect objects available for interaction and manages interaction input.

ItemHandle.h --- ItemHandle.cpp
A scene component that picks up or puts down items. It handles interaction while items are in the player's hand and resolves placing or dropping them.

IInteractable.h
An interface that defines basic interaction methods. Objects implementing this interface can interact with the player in a specific way.


Recording System 🎥

RecordingStation.h --- RecordingStation.cpp
A game object with three states: idle, recording, and playing. Depending on its state, it either saves snapshots of the current referenced recordable objects or resimulates the previously snapshot ones.

IRecordable.h
An interface that allows objects to be referenced and participate in the recording system. It implements snapshotting and resimulation methods.

ItemSnapshot.h, PlayerCharacterSnapshot.h, ItemPadSnapshot.h
Data structures designed to snapshot specific recordable objects.


Puzzle

Puzzle.h --- Puzzle.cpp
An actor component that references different pieces of a puzzle, tracking the completion of objectives and ensuring objects behave as a cohesive whole.

PuzzleGate.h --- PuzzleGate.cpp
A game object that obstructs the player's way out of a puzzle. It has two states: open and closed, set based on objective completion.

IObjective.h
An interface that defines specific objectives for different puzzle objects.


Other Game Objects & Player

Item.h --- Item.cpp
An interactable and recordable object that player can pick up, interact with, and place in the world or in designated sockets.

ItemPad.h --- ItemPad.cpp
An interactable and recordable object with a specific objective. It is triggered when the player steps on it or when an item is socketed.

Terminal.h --- Terminal.cpp
An interactable computer object that opens a terminal widget.

PlayerCharacter.h --- PlayerCharacter.cpp
An object that unifies player mechanics. In this prototype, it is primarily used as a recordable object for player snapshotting and resimulation.


Blueprint functionality

The Blueprints functionality included in this project primarily enhances the prototype's appearance and completeness, but is not necessarily designed for extensibility.

One example is the typewriting effect for the Terminal widget. Since Blueprints don't support delays, I recommend rewriting this functionality in C++ for better compatibility and to reduce repetitive code.


License

This project is licensed under the terms of the MIT License.

Copyright © 2025 Matija Jambresic

For information about third-party assets used and their respective licenses, please see the Third Party file.

In addition to the license file required by the MIT License, please include the Third Party file in all copies of this project.

About

A prototype inspired by The Talos Principle (2014), focusing on interaction system and recording mechanics.

Topics

Resources

License

Stars

Watchers

Forks