Creating a dynamic text-based screen within a 3d game (Stories Untold style)

Hi there!
Just from the start I should point out I’m very much new with unreal engine. I’ve taken a Udemy course and watched some tutorials, and I’m now working on a first project.
But I’m a bit stuck.

I want to create a mechanic similar to what they used for episode 1 of Stories Untold.
Basically it’s a room (a normal 3d environment) with a PC on a desk, and when the player approaches it I want them to be able to communicate with it through the keyboard and play a little text-based adventure game on it.

Is there a tutorial for something like that? I couldn’t find one.
Could someone point me in the right direction? Anything would be appreciated. Maybe people know of plugins I can use for something like that?

I imagine to implement that you need to create your 3d environment and your text adventure separately, then you place the text adventure as a material of a mash on the front of your pc monitor mash?
Does that sound correct?
Can you actually use complex things as materials like that?

Very much appreciate any help or guidance I could get on this.

Thanks in advanced! :slight_smile:

You have two ways to code it all:

  • blueprint actors that have triggers message and all that, use either components or function library for interacting with player. And this way after 10-20 lines will be nightmare to maintain and improve. Simple code but gets really messy really fast.

  • separate data from code. Use something like json to keep all your quest info in single text file. There are some plugins to read and parse json on marketplace. You also can make your own C++ plugin, its not that hard, buy some plugin for unreal that you can use and modify C++ source. Add your functions there.

You may find this inspiring:

And famous gaslighting AI: chatGPT, it has SDK now, so maybe after making it all work like in above movie, you can improve game with chatGPT and react to messages written in human language.

However remember that using such tech (that is not yours) you risk of THEM turning it off some day, and your product/game will become obsolete.

pointers for your problem:

  • you can use umg/widgets to display text.
  • it is a game, so you can draw some generic stuff on monitor, and use widgets for real text game, this way its bigger and easier to display text.
  • or you can make widget in 3d space and attach it to monitor display.

As for game that is text, do not try it in pure blueprints, if it has more than 10 iterations with player. For this task best would be some finite state machine plugin for unreal.

Like this one (or any other FSM):

Then you need triggers to turn on and off terminal.
and fire events from widget, that change state of FSM.

There was tutorial on udemy about C++ for unreal that had some very simple text game in C++ at beginning. something like that word game can be done in pure blueprints.

@Nawrot Thank you very much for those replies and your pointers!
You certainly pointed me in the right direction.
I really appreciate it! :+1: