Classic FPS movement pack

Version 1.15 released, updated with improved multiplayer air control. Download it HERE

Movement is such an underrated part of a FPS game (and potentially a TPS game) that gets often overlooked vs focus on weapon and enemy design. I’ve always found enjoyment in good movement physics, and in my opinion it can make or break the game. You need your player to feel like they are one with their character, so movement needs to be incredibly responsive. With that goal in mind I’ve been working on a movement pack that adds responsive, creative player movement similar to beloved FPS classics.

List of features:

  • 100% in blueprint, so you can easily customize all aspects of the included movement behaviors.
  • Adds true air acceleration/air strafing. Air control using air acceleration enables techniques such as air strafing, circle jumping and much greater precision and skill ceiling in movement. Fully customizable acceleration values/thresholds. This is really the meat of this movement pack. The best way I can describe air acceleration based air control is that it gives the feel of controlling a finely tuned sports car, whereas non accelerating air control (default in UE4 engine) gives the feeling of driving a boat. Proper air acceleration becomes essential to give precise air control at a variety of speeds. This can be as simple as trying to steer a jump around perilous cliff edges or navigate through a movement puzzle, or as advanced as maintaining precise control while rocket jumping 50mph through a map (see below :P).
  • Adds Ground acceleration- adds additional acceleration when turning, giving a tighter feeling movement while turning on the ground. This is a minor effect that many players probably aren’t aware of in some of their favorite FPS games, but I find it does make a difference in the feeling of responsiveness to general player movement. The presence of ground acceleration also indirectly allows techniques such as strafe jumping- so that you can use certain techniques to start a jump with additional lateral speed.
  • Adds trimping: Downward and upward ‘trimping’ with separately customizable slope angle thresholds and velocity boosts. What is trimping? Originally I believe this was a quirk in CPMA (quake mod) jump handling that behaved as follows: Downward trimp: Gain some horizontal speed when jumping down ramps at expense of vertical.
    Upward trimping: Gain some vertical speed when jumping up ramp at expense of horizontal speed.
  • Adds Rampsliding - seen in games such as quake/halflife/tfc/ff/TF2, etc… Hitting an inclined surface at enough velocity allows you to smoothly glide up it with some steering ability. Customizable minimum angle, minimum speed threshhold (i.e. 2x walk speed) and momentum factors. NOTE: surfing not supported
  • Adds pogo jumping, crouch jumping - hold space to jump repeatedly if desired, and allow crouch jumping if desired. (default UE4 engine seems to have hard coded no jumping when crouched…so this optionally will fix that). Note: multiplayer pack currently has no crouch jumping implemented
  • Adds bunnyhopping- Together with air acceleration and optional pogo jumping (hold space to continually jump) bunnyhopping can be unleashed if you so choose. There is a fully customizable cap so you can cap or prevent speed gained but still maintain the benefits of air acceleration. By adjusting the included variables you can apply a soft or hard cap (i.e. 2x walk speed) or none at all.
  • **Adds a simple HUD speedometer:**because half the fun may be seeing how fast you can go! Realistically this is just a simple speedometer to help you fine tune movement to your preferences.
  • Adds rocket jumping: A simple multiplayer compatible rocket launcher is included for those that want a starting point for how you would implement weapon jumping.

Any of the above features can be independently enabled/disabled. You could choose a low air acceleration and limit players to gain speed only by trimping down ramps and weapon jumping, or you could apply a strong speed cap on bunnyhopping but retain strong air acceleration to allow its creative use in dodging, weapon jumping etc. Or uncap everything and unleash hell (I hope you made a large or procedurally generated map…you quickly run out of real estate travelling at 10000+u/s as I’ve found :P)

Here’s me playing around with it:

v1 video:

v1.1 Multiplayer test- I didn’t realize how huge my test map scale was until I saw the little ant characters in it :stuck_out_tongue:

And some examples of air strafing in other games:

In previous games entire communities and maps flourished thanks in large part to air strafing as it unleashes tremendous creativity and precision of control. Examples such as conc/rocket/sticky jumping maps, “surf” maps, and even entire mods (kreedz climbing, I believe) were made possible in large part thanks to this movement construct.
As an example if you’ve tried rocket jumping using the default air control you will find that even maxed out you lack sufficient steering or it causes you to predominantly drift in one direction- the movement is not tightly aligned to where you are trying to go. Even directing a regular jump, say around a pillar or obstacle, can feel incredibly clunky. Air strafing is not just for bunnyhopping around a map like a goofball, and many games can benefit from this improvement as it opens up all sorts of techniques with dodging or controlling movement w/ weapon usage or simple jumping.

**Compatible with latest engine release
Note I’m migrating over to Gumroad from Sellfy:
**
Tired of clunky FPS character movement? Download the pack now!
(I recently had to move it to gumroad from Sellfy)

Thanks!

Fantastic stuff. Price?

Looks amazing, would definitely take it. What’s the price?

Sounds great. I hope enough people realise the importance of this, since these movement details/quirks aren’t immediately obvious to people less familiar with the classic FPSs. They’re very important details for devs to consider (even if you don’t implement them how classic FPS games do, you should at least be aware of the details so you can choose what to use and what not).

People not as familiar should take a look at how solid and interesting the Q3 / cpma movement system is: https://www.youtube.com/watch?v=zsD0-r9rCGA

Although this is probably the most extreme example of movement “quirks”, the underlying principles should be considered when developing any type of FPS game, whether its an arena game or realism based FPS / TPS.

Oh god yes
Thank you so much for pming me

LETS MAKE SWEET, SWEET LOVE
(~ ̄▽ ̄)~

You have my undying support with this :stuck_out_tongue:

Thanks guys, right now I’m doing a final pass on commenting my blueprints and seeing if I can separate anything else out into functions, but I think I’m pretty close to submitting.

For price I was thinking $14.99- I want it to be on the lower end and am just looking to maybe break even on the time I spend supporting users in utilizing it.

One thing I’m trying to figure out is how I can highlight the key variables for modification within the editor. Right now it will list every variable used in a given function, whether it’s only used internally between functions or whether it is subject to a value the user inputs. I would prefer to highlight variables which call for a user inputted value to simplify things for end user, but am not sure how I can best achieve that in the tool?

Otherwise I will need to rely on a separate PDF or instruction to document the key variables that control the behavior, and I’d like to simplify that if possible.

Maybe the best way would be to create a “set defaults” function, that has everything the user should edit. IE just running through each variable and setting it on a begin play event, maybe with a comment box around each one to briefly explain what the value is.

It looks like all I needed to do was type in a new ‘category’ for the variables and then I can organize them accordingly, phew :slight_smile:

I must have this!

Nice! Next thing i wanna see is VQ3 movements, almost the same thing only no air control and no rampjumping!

Any update for release?

Sounds awesome. I would be keen on trying this for a first-person slasher! $15 makes it an easy choice too. Go for it dude.

I’m incredibly interested in this!

I’d buy it!

I’d also buy it. This submission needs reconsidering. For people who aren’t sure of the importance or relevance; you will not make a serious first person game without at least considering the implications of these movement techniques. It might not be hugely important for proof of concept games that can rely on the basic default movement, but any type of competitive FPS or movement based game (any parkour style games, any FPS with jumping or midair movement, precision based ground movement etc.) really needs it.

The default mode of movement and air control is just one method / implementation and it isn’t as good as this type. If this was made the default (with this type of ground strafing and air control) all games developed in the engine would be improved. I haven’t used this particular implementation but from the videos and description it seems like it addresses the problem. The UE4 games I’ve tested that use the default movement feel very sluggish, and I’d imagine anyone who has ever played quake / counter-strike / half-life for any serious length of time would feel the same.

http://reddit.com/r/arenafps Take a look in the sidebar of this subreddit. All of these are FPSs developed with some seriousness / competitive nature involved. You won’t find a single one of them that doesn’t implement some of the techniques from this submission because they just couldn’t work with the default / basic movement mode.

I’m bias towards the type of game, but the same applies to third person games or flying games etc.

I’m unsure why it wouldn’t be accepted considering the responses. I count 10 sales already from this thread.

very nice reminds me of cs 1.6 bunny hop :smiley:

What about networking? My guess is it’s not supported, since you don’t mention it and from my experience implementing “classic movement” in C++, I can’t really see how you could integrate this properly with movement prediction, without recreating the entire movement networking code in Blueprints (which would be a gargantuan task to say the least).

I think this is important to be aware of though, since most games interested in this form of movement are probably multiplayer twitch shooters, where state of the art movement replication is extremely important.

Really hope this gets greenlit. It would save me some (a lot of) time.

When gonna go out?

If I restart project Stray I will consider making this a core component.