Creating an MMO-style controller II: Blueprint settings, input actions and axes

We’re getting started in Unreal Editor now, for part two in the MMO -style controller mini-series. The overview and list of sections is in this post.

Start by creating a new project, use the Third Person Template, in the blueprint section. You could do this in C++, and I will do in the future.

Create a new project using the Third Person Blueprint template

Create a new project using the Third Person Blueprint template

We’ll change some things in the blueprints that you are provided with by default, so we can add the features we want our controller to have.

Continue reading


Creating an MMO-style controller I: Overview

MMO Controller

I mentioned in this post the motivations for creating an MMO-style control system for a third-person game. But what is an MMO-style control system, exactly?

From extensive research (read: I played a bunch of games), I’ve selected a few criteria for a generalised MMO controller:

Movement of the character along the ground:

  • Move forward and backwards using W and S
  • Rotate the character and camera with A and D
  • Strafe left and right with Q and E
  • Moving backwards is much slower than forwards

Controlling the camera is also linked to movement:

  • Mouse cursor is visible, can interact with UI
  • Holding mouse left-click and dragging the cursor around rotates the camera (but not the character’s direction of movement)
  • Holding mouse right-click and dragging rotates the camera and the character’s direction of movement
  • While right click is held, rotate (A and D) will make the character strafe
  • Mouse wheel is used to zoom in and out

Other considerations:

  • The character needs to orient itself smoothly to the direction of movement
  • When moving backwards, the character orientates to the opposite direction to movement – that is, when walking backwards, the character’s back faces the camera

Creating an MMO-style controller in Unreal Engine

For the last little while I’ve been teaching myself Unreal Engine. Recently, Epic Games made it completely free to use for anyone, which I think is an absolutely amazing idea. It could possibly be fundamental for pushing video games even further by getting future developers hooked.

Since I’m learning from the ground up, I wanted to create an MMO-style control system, using the blueprint system, based on the third person template available. Control systems are pretty fundamental in video games, and I have some very specific memories of completely giving up on well known titles because of bad input design.

Continue reading

Abilities and cooldowns with Unreal Engine and UMG

Abilities and cooldowns with Unreal Engine and UMG

For the last couple of days I’ve been working on implementing a test UI as part of an abilities framework.

When you click an ability, it has a recharge time (cooldown) before you can use it again.

This is the visual scripting code for that:

Cooldown Script

The whole script in Unreal Engine – looks like a mess to me…

I wanted to make sure that the information about the ability (so far just the cooldown) is not contained in the UI, but in the class of the ability itself. This will help with what I hope to add later, which is the option to choose from a selection of skills. Then you can change your skills to match the situation – platform too high? Swap to a Super Jump ability!

Here’s the UI in action, with the cooldown effect:

(If this doesn’t work, it is also on YouTube here. YouTube is also better quality!)

TODO: Make the skills actually do something! All they do so far is print a debug message…