Defragr: Strafe jumping in UE4

Zinglish,

I found your project about the same day you posted it up online (I recognised your name from your videos on Unity strafe jumping). I had previously for about a month, been porting over something similar to UE4 (Quake 2 based movement) using my own custom movement, overriding select methods in UCharacterMovementComponent, such as CalcVelocity. I wasn’t entirely happy with how it handled, it needed more work and understanding of the engine. I much prefer your cleaner approach, inheriting from UPawnMovementComponent. I only discovered UE4 about 5 weeks ago, so I’m still learning the engine; so far the journey has been amazing.

Your project is something I could certainly get behind. Two things caught my attention, strafe jumping and Action Quake 2.

Things I’ve worked on since picking up your project:

  1. Importing Q2 maps (only geometry, for now) into UE4 with correct sizing (scaled from Inches to Centimeters)

– Allows for a combination of both original maps, updated original maps and entirely new maps made in both Q2 and/or UE4 (I’m sure Q1 and Q3 maps too).
– A box brush in Q2 of 64x64x64 units, will be the same units in UE4 (ignore inches and centimeters).
– Keeping the ‘units’ the same as Quake adds simplicity - working with the power of two: 1, 2, 4, 8, 16, 32, 64, etc.
– The UE4 level editor fully supports power of 2 (by default it’s set to use base 10).
– Keeps movement speeds consistent, moving at a velocity of 300 across 64 units will result in the same distance covered per second.
– Consistency!

  1. Player size, view height, jumping and crouching variables

– For this I created a simple Q2 map to test collision height, view height, crouch collision, crouch view height and jump heights; then ported into UE4. The result was 1:1.
– Player size and view variables will match that of Q2 and work in all maps ported across.

  1. Movement (ground, air, strafe)
    – Modified the player pawn movement variables to match Q2.
    – Will require some code changes to allow for the slight difference of movement handling in Q2 vs Q3.
    – Can we perfect the movement? Ignoring the fact that Q2 and Q3 relied on good FPS to achieve maximum velocity.

Hopefully what I’ve said makes sense, and my understanding is correct. I’d love to see the movement physics 1:1 or near close (most likely the latter). Also, the idea of keeping consistency of unit sizing should help keep porting variables across much simpler, and cleaner.

TL;DR I’d love to see an Action Quake 2 remake, or contribute to Urban Terror being developed on UE4.