Creating a throwback Beat 'Em Up: 2d or 2.5d?

So after a year and some change of learning UE4 (and several other programs) I’ve finally gotten a good handle and workflow on 3d environments, sculpting, basic scripting, level design, etc. However, there’s been a project I’ve been wanting to do forever, which is a 2d side-scroller Beat 'Em Up. I can’t recall how many hours I’ve spent playing Double Dragon and Ninja Turtles, but I know I’ve always wanted to create something along those lines. I started a project in 2d and, after being so used to 3d work, am completely stumped.

Let me quit rambling and get to the point: I’m attempting to figure out how to create a 2d side-scroller with similar movement to this: SNES Longplay [074] Super Double Dragon (2-Players) - YouTube
If you notice, the characters are able to “move” up and down along with left and right. If you skip to 7:20 you’ll notice the player is able to ascend/descend stairs and maneuver in between objects. I’m assuming a lot of this is “illusion” in the same way early FPS games (pre-Doom) didn’t technically “move” through the map, but the map moved around the player.

So, I’m trying to get the characters moving up and down, left and right on a plane, while still retaining the same scale and not moving away from the camera. I’ve done a lot of searching and haven’t found a heap of info on this. Any insight?


I suppose just using sprites would be the easiest way to control perpective. a 48 pixel tall guy will be 48 pixels always.

You may be able to set a camera to orthagonal instead of perspective. Though with the amount they move back and forth from the camera I doubt you’d see much perspective anyway, use a short fov.?

To mimick the camera movement they probably have it centered on a point between the players, so both players are always on screen. Maybe you can put invisible wall tied to camera at each end of the screen. Then both players would hit a wall if they get too far apart. Other than that have a lerp between their locations for the camera center. (the walls might be hard to do properly at different resolutions)

Are you still struggling with this?
Also did you start with 2d template or blank?

Sorry for the late reply. Just started working on this again in-between my other projects. Looks like I’ll be using a Blueprint for the camera w/ a sphere that detects blocking and adjusts location based on the character’s movement, as suggested by . I’ve been watching a bunch of other videos and trying some things out, but can’t find the ultimate solution. Will post updates when/if I figure it out.

Howdy, been working on a similar game lately
The way I figured it was, that it’s essentially a top down game, with the sprites of characters drawn from the side

Using this method, I was able to create this (heavily CRAWL inspired)


For the inputs,

MoveRight ( A/D) moves you along the world Y axis

And MoveForward (W/S) moves you along the world X axis

Wow, that looks pretty good! Thanks for the input. I’ve just tinkered around with setting the mode to “flying” and seeing how that works. Might get a little tricky when jumping is involved, though. Still having trouble with figuring out how to get the camera actor to work :\

I swear, 3d work is way easier.

I’m going to give this method a shot. I’ve tried the “flying mode” setup, but it doesn’t seem to be working correctly with character jumping. I’m intrigued by your method. In your GIF example, are you just drawing the floor as a background? Are you using tileset layers?

Its just a single plane static mesh for now, with a texture slapped on it
I imagine tileset layers would be the best way to do it

Alright, so a little update.

I managed to get it working properly. Basically I just set the mode to Flying and setting collision boxes on tiles I don’t want the player to overlap. I was using Tilesets at first, however it seemed to be a bit “limited” for what I’m trying to do – or so what my knowledge of Paper2d thus far will lead me to believe.

I’ve got some basic movement down and got some basic camera movement with a Camera BluePrint (separate from character). Now comes the fun part: figuring out how to do 2d hit boxes. LOL.

One thing I’ve learned after watching countless hours of tutorials, other people’s approaches, and theory on these types of games in general is, as with everything in game development, there is no “one way” of handling things. There are some good principles to follow, but ultimately I have to figure out what works best with what I’m trying to accomplish. I’ll post some updates when I have something worth showing. If I find some real viable solutions, I’ll share the methods here :]

A little update here.

I’ve got things working pretty good so far. Got the movement down, a test level, and a camera actor to follow the player only on the X-Axis (and Y, though I’m not using Y). Most of my time has been spent on animations and artwork, since I want some reference for programming.

Another question has popped up, and I feel like I should know this, but it just isn’t coming to mind: I have a basic animation state machine going, but would like actions to override others. For example, if the player is moving and presses block, the walking and movement will cease and the player will block instead. I’ve found a “hacky” way of doing it through bools, but would prefer to keep things a little cleaner rather than adding bools for every possible action. I suppose I’d be looking for a FSM sort-of solution?

in your animation state machine you want to keep in mind a hierarchy to your animations…

for example
you will want to make check your blocking and set relevant blocking flipbooks/animation before you check for walking and movement.

i’m not on my comp currently but i’ll try and get a screen for my WIP and show you how i have it set up.

Did you get jumping and collision to work for you? Once I went into fly mode i couldn’t establish jumping?

What about 3D gameplay beat 'em up style formula like Tom Raider series,Metal Gear Solid series,Witcher series,modern Deus Ex series,modern Doom series,modern Wolfenstein series,Cyberpunk 2077,Death Stranding,James Bond 007 series,Alice Madness Returns,Uncharted series,Spider-Man series,Batman series,Splatterhouse reboot,Sonic Unleashed,Deadpool series,inFamous series,Shenmue series,Persona/Shinmegami Tensei series,Yakuza series,God of War series,Havenly Sword series,some PS2 Golden Axe Sega game,Rayman 3,Rayman 4(cancelled game),Star Wars series,Indiana Jones series,Half-Life series,modern Duke Nukem series,TMNT series?