top of page

Point-and-Click Game Mode
(Work in Progress)

An Exercise in Visual Scripting

The Gameplay Gym

Introduction

My goal with this is not to simply make a hard-coded Myst experience, but to create an actual toolset that could be used to create a complete game experience. My ambition is for this to eventually be used as a platform for puzzle design and storytelling.

Drawing from knowledge gained during both my internships at The Bearded Ladies and Coffee Stain, as well as my time teaching visual scripting at The Game Assembly, this is a way of putting this new knowledge to use.

I also made a point to create this game mode from scratch without using any of Unreal's pre-made templates in order to deepen my understanding of how things like Game Modes, Player Controllers, and Player Characters work in tandem within Unreal Engine.

Details

Software used:

  • Unreal Engine 5.5.4 

Skills to showcase:

  • Technical Game Design

  • Visual Scripting

The Art of Pointing and Clicking

Clicking to Move

Like in adventure games of old (such as Myst III: Exile), my player is only able to stand at specific pre-determined positions in the world.

 

I've created a simple blueprint called BP_PlayerPosition which I am placing in the world at each position I want my player to be able to move to. In the editor they are indicated by blue spheres. In these spots the player is able to freely rotate and look around 360 degrees.

2025-04-2120-34-31-ezgif.com-crop.gif

Move Boxes and Player Position Spheres as seen in editor

To move the player clicks on invisible blueprint actors that I'm calling BP_MoveBox. Each MoveBox is contains two variables pertaining to the player's position.

 

The variable InteractPosition 

decides from what instance of BP_PlayerPosition the MoveBox can be clicked. MoveDestination decides which player position the player will move to once the MoveBox has been clicked.

Skärmbild 2025-04-21 163645.png

​ BP_MoveBox fires up a custom event where it checks the player's current position. If the current player position is the same as one of the MoveBox's interact positions, the player moves to its move destiantion.

Variables contained within BP_MoveBox

Skärmbild 2025-04-21 173701.png
Free Camera & Free Cursor

By right-clicking the player can toggle between Free Camera Mode

and Free Cursor Mode.

The game starts in Free Cam Mode by default. In this mode the player can move the camera freely with the cursor locked to the center of the screen where it acts like a crosshair.

In Free Cursor Mode the game turns into a more traditional point-and-click experience where the player is able to click and examine things in the environment in more detail.

 

This is also how the player gets to access their inventory.

2025-05-1121-23-25-ezgif.com-video-to-gif-converter.gif
The Pointing

Whether the player is in Free Cam Mode or Free Cursor Mode, a continous line trace for objects checks what the cursor is currently hovering over.

If the line trace overlaps with any of my interactable blueprint actors the cursor icon changes depending on the blueprint actor. For instance, anything the player can grab is indicated by an open hand.

As more features are added I plan to add more cursor icons.

TX_Hand_White.png

Attribution for cursor icons used from Flaticon:

<a href="https://www.flaticon.com/free-icons/cursor" title="cursor icons">Cursor icons created by berkahicon - Flaticon</a>

<a href="https://www.flaticon.com/free-icons/eye" title="eye icons">Eye icons created by Freepik - Flaticon</a>

Skärmbild 2025-04-22 140302.png

I love spaghetti

Interaction

Interactions affecting the world

To test out interactions I created the lever blueprint BP_SwitchLever, a simple animated lever, the speed of which can be modified in the editor.

I'm utilizing level sequences to create animations in the game world. By adding a public variable with the type Level Sequence to the lever blueprint, it is possible for any lever switch to activate any animation I create in the game world.​

I want to make its functionality as modular and reusable as possible, but I already see lots of potential for this to be used in puzzles.

Variables contained within BP_SwitchLever

Close-Up Mode

Certain items will make the cursor display an eye icon to indicate  that the player can examine the item up close.

When clicked the player's view switches from the player camera to a separate Close-Up camera placed in the world.

An event dispatcher is called when the player enters Close-Up Mode. A custom event bound to the event dispatcher makes the player automatically enter​ Free Cursor Mode. It is not possible to switch back free cam until the event dispatcher signals that close up mode has ended.

A UI element in the form of a close button appear in the upper right corner of the screen. Clicking it ends close-up mode.

Skärmbild 2025-04-22 180834.png
Skärmbild 2025-04-22 180849.png
Skärmbild 2025-04-21 155819.png

Variables contained within BP_CloseUp

Please excuse the mess while we are under construction

Jonathan Mårtensson

  • Twitter
  • LinkedIn
bottom of page