How to build a story driven game like PT

Hi guys,
I am building a small story game, and before I start, I am planning stuff out. In this case, how will I track how much further the player is in story and in interactions with the game world. The level is very small, and stuff gets unlocked progressively based on his gameplay, something like PT.

Now, here is the hurdle - i can ofc create bunch of nodes, ifs, branches, etc inside of gamestate or anywhere else really, but then i need to save it, which i am not sure how it works. Bunch of booleans? “PlayerHasUnlockedDoor2” is true, etc? Plus it can get very messy, very quick. I was taking a look on logic driver pro inside marketplace, but think I need more high level solution.

Is there somekind of framework for this? Or maybe example project from which I can get inspiration? Do i even make sense :smiley: ?

This Doc page should help you. You have to store the variables in a SaveGame instance. I would recommend saving the current checkpoint in the story instead of a bunch of Booleans.

One idea would be that you plan your story like a tree structure, if it is complex and has moments where the story is forked.

Than you could assign a number to every node of the tree and simply save this node number.

If you habe things like serveral quests or something similar you could build a tree for every single of these quest and save there suiting numbers.

No. Why?
Plan ahead.

Create a “quest” system.

You can copy from Bethesda’s skyrim as this is probably one of the only aspects of the games that was well thought out (along with the texturing).

It’s your basic nested database table infrastructure.

Quest, holds the ID, tracks overall stauts/step mostly for access purposes.

Steps, are in relation to a Quest ID, and they have their own state/information.

Now every time you are on a step, and you complete an action that is tied to that step, the quest step and quest will be updated.

As such, you create a blueprint interface, and a Quest component to drag into other actors, with standardized functions that update your quest information.

You then just store/save the quest data and step data at save game.

The downside of this is that is easy to cheat by editing saved games.

Also, the further down the story. The more data needs to be saved. When you get to massive stuff like 600plus quests this can be a drag on resources.

At that point you have to plan even further ahead.
You break the story up unto sections, and you wipe out the data from before and just say "you are in section 2/3/4)

For larger games, take MassEffect for one.
You then only store some data for important keypoints that happened during section 1.
(Think character B was killed, and C had a romance with player).

This however, requires knowing where the story is going, or just creating the ability to later flag what is important as a separate piece of information.
(Another BP interface plus code, might as well add and store it whenever pivotal plot points are reached along with the quest update).

Thanks for the answer, that’s what I am doing here, asking and planning ahead. Do you know of some marketplace assets that have it similarly setup or demo project I could learn from? Otherwise I have set up a DT table with objectives before, but would love to implement it better with components inside of blueprints too. That’s a part that I am missing.

Don’t know of any package… or demo project that does anything even close unfortunately…

I keep seeing some “quest manager” here:

In remake of simpsons. That seems like could be interesting thing to mess around with. Do you guys know what it is? There are plenty on the marketplace, so I am not sure which one is better for this purpose.