How to make a Myst like game in unreal.

I and my friends are planning on working on a game, which is basically a first person point and click adventure similar in style to Myst. Thing is, we aren’t sure how to do things like movement or camera control with unreal in regards to a game like this. Any pointers or tutorials we could use to get us on the right direction for making a myst like first person point and click adventure game?

1 Like

There IS no movement or camera control, eh? :slight_smile:

Seriously though. The main thing you need to be able to do, is respond to part of the screen being clicked.

You could do this with multiple copies of a blueprint dotted around the map, which consists of a camera ( in the required position ), and parameters for responding to a screen click using something like ‘get mouse position on viewport’ ( or similar ). Depending on which area is clicked, the player view is just switched to another camera blueprint.

Unlike the real Myst, the environment would actually be 3D, not a series of pre-rendered stills. But technology has moved on so much, that things will still look much better anyway, and there’s no way to know it’s not pre-rendered :rofl:

So once you have that one BP right, all you really need to do, is build the environment, place the BP everywhere, and invent the puzzles.

1 Like

ok so how do I set up a 3d environment that will allow me to be able to do that? I get frustrated when I try to set something up but I am unable to do much of anything with it cause I feel like I am doing it wrong and I am not sure how to make it feel like I am doing it properly.

Exactly as you think you would. Just position the objects :slight_smile:

Try it with something simple first. Just in the example level.

Am I correct in assuming you don’t want any camera movement? Just like the original?

( I need info before I can make up a simple BP ).

1 Like

Yes, that’s it. Basically the idea is that you have a full room, and then can turn north, south, east, and west, to face in those directions in order to see what is in that part of the room. And if you choose to go to the next area, you either jump to it, or have the camera follow a path from one area to the next. And zoom in on or focus on an object when it’s clicked on.

Ok, I’ve setup a very simple concept system.

It’s a pawn with a camera in

At the moment, it can rotate by 90 each way, and move forward.

It uses a locator BP to figure out if it can move to another location. That’s very simple

It’s just a capsule set to ‘block all’ and you put them in the map where the pawn is allowed to go. At the moment, I only have the pawn and one locator.

So, I can do this

Myst1

The code in the pawn



1 Like

Okay so, I am making good progress on the house for the game, the playfield as it were, and I went to start putting in the camera and I was wondering, how do you make the location and turn nodes? i cant find them any where?

They’re just custom events :slight_smile:

event

Just tell me if you need a hand with this, as I only dropped in a proof of concept mockup in case you were interested.

So, I know it’s been a bit, but I’ve been taking some lessons on Unreal to get a handle on it. And I have some questions. Won’t learn if I don’t ask obviously ^^

How do I set up the nodes? for making the movement I cant seem to find the player actor or no the get player camera manager ? and make it linked to the camera. I want it to be able to use it but I am not sure how to get it. I have been running 4.20.3 and not much learning on 5.1.3 yet. I just cant find the nodes I need and I am really not sure what to do to make it work. I got some parts in that make sense but the movement doesnt happen?

1 Like

I was just using a blueprint actor, that had ‘Pawn’ as its parent.

As far as I know, the code I put here will function in 4.20, but I can’t be sure, as things have changed a lot since then.

Maybe ask me about a specific node, or show me what you have so far?

1 Like

what is this move node?

This is what i have so far.




When I hit play I am still in free camera mode. I am not sure how to make the player possess the camera that I would need to be able to make it locked to the camera.

Is it the game mode that I don’t have set up correctly? How do I get that set up? Or is it not set up the same way?


The three replies were supposed to be one big one, but the forum wouldn’t let me post it as a big post cause I’m new

The move node is just another custom node. It’s in my code above

I will come back about the rest tomorrow :slight_smile:

You need to put the turn rotation as a parameter on the turn event

image

You can do that, by clicking on the turn node, and looking at the details panel.

I’ve got the feeling that this might be difficult to explain in full, so I’m going to make a small example project for you to download. In the next day or two :slight_smile:

You are amazing and I so massively appreciate the help!

1 Like

Ok, so I made a very basic project ( I’ll PM the link )

Just unzip it, extract the folder, and open the project ( 5.3.2 ).

I’ve setup the pawn, a few markers so you can move around, and a room with interactive doors, and an interactive light.

When you press play, you can move forward twice, mouse click to open the doors, move forward once more, and mouse click to turn on the light. You can also turn by 90.

Like I say, very basic, but also includes useful concepts like blueprint inheritance and an interaction interface. Hope you find it useful.

Okay so first, I love you and how helpful you’ve been. I feel like I can actually do this with your help. But I still have some questions.

What is this node BP i cant figure it out or find it…?


Also what is a line trace? i haven’t seen that either.

The first thing is called a blueprint interface. It’s a way of talking to actors without knowing what sort they are

The second thing is a function. It’s like a custom event, but it returns a value. In this case, the result of a line trace. Rather than having two identical groups of nodes to do the tracing in the main graph, we put the whole lot in this function, and call that twice

Tell me how it goes.