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