Mordhau

The move to Unreal Engine 4

569 2056
  • 8
  • 25 Oct '15
 marox — Project Lead

Unreal Engine 4

It's been exactly four months since we quietly decided to switch engines from Unity 5 to Unreal Engine 4 (we'll abbreviate it to UE4). That might come as a surprise, and it certainly wasn't something we had planned for, but we said we'd give it a 2-week trial period and see how it'd work out. Some of you may not realize what this entails, but we essentially left behind the entire codebase we've built up in Unity, everything had to be re-written from scratch. This is a significant chunk of work to leave behind, but the thing is, most of that code was to fill in gaps that Unity didn't have but UE4 came with. On top of that, UE4 comes with so much more that we needed but didn't have yet, like demo recording, or extensive modding support with pretty visual scripting.

Graphical overhaul

One of the big reasons for the switch was the graphical fidelity. While we could wrestle Unity into producing something nicer visually, it was riddled with problems on all fronts. We had originally started on Unity 4 and had hoped Unity 5 would propel the game forwards graphically (we made the switch which went quite smoothly somewhere around last year), but instead we ended up with what is essentially non-functional lightmapping and a whole slew of buggy and/or unstable features. Trying to wrestle this into something both pretty AND framerate-friendly would have taken a lot of time that we simply could have spent better elsewhere. Then we moved our assets to UE4, and look at what happened.

comparison.jpg

Network code

So we get all this good stuff, but we drop the code we built up and redo the parts that UE4 doesn't already provide, and we end up saving time rather than losing it. This is why we made the switch. There's some other big changes that come with UE4, and a big one is networking. Initially, we used our own network code and a variant of distributed clientside hit detection. This was more out of necessity than anything, because we were having performance problems with a server running Unity. With UE4 we're now using a fully server-side authoritative model where we no longer trust clients. This greatly limits the effectiveness of cheats, and it also cuts down packet travel time in some situations (e.g. when pressing parry at the last instant -- a common occurrence) to roughly half.

The name

As we have stated multiple times, the name Slasher is/was a placeholder name. We'll leave that name to refer to the Unity build, but moving forward the game we're building is Mordhau, after the "murder stroke" technique in the German school of longsword fencing (also referred to as Mordstreich or Mordschlag) where the sword is gripped by the blade and used to strike with the crossguard. We feel it is a fitting name given that the game is all about in-depth melee combat, and it even features the technique to boot.

And of course, what you've all probably been waiting for, here's a screenshot album.

15 8
  • 11 Mar '16
 Mordbube

Unreal Engine 4 for the win! I love it it is so much! More comfortable than the old unreal Engine 3 and the best of all -> it supports the free open source 3d-modelling software Blender! No more super high expensive 3dsMax or Maya. Yiiiihaaaa!

3 1
  • 15 Mar '16
 KGMÐiogoM

There was a problem with hit detection in the server side when u have a high ping (like 80ms) in the new Unreal Tournament game, I recorded a video to show then the problem (https://www.youtube.com/watch?v=E7xWS1NtfW0).

They found a way fix it later, just make sure u find a way for this to not happen in Mordhau too, imagine u shoot an arrow, and the animation of the arrow flying only happening after half second after you shoot it, this is ussualy what happens with server side detection. People with low ping will not notice that, but pings 60 up will suffer with it. Battlefield does server side detection well too, u see your bullet flying and hitting the other person instantly and the server only validates it.

Unreal 4 is great! The game looks amazing, that was a smart decision. I would love the help with some maps if had workshop support. Do u guys plan for That? Thanks!!!

569 2056
  • 1
  • 15 Mar '16
 marox — Project Lead

Our projectiles use clientside dummy versions and their paths blend with the authoritative projectile and gradually disappear. This is also used to give projectiles a feeling of appearing from wherever the projectile is during the animation (e.g. arrow on the bowstring, not center of the screen/crosshair, or thrown weapon in hand and again not in the center), while the authoritative projectile is centered.

We hope to have workshop support eventually, but it's one of the things that we'd be tackling on release!

713 667
  • 15 Mar '16
 LordColonelAxeman

@marox said:
Our projectiles use clientside dummy versions and their paths blend with the authoritative projectile and gradually disappear. This is also used to give projectiles a feeling of appearing from wherever the projectile is during the animation (e.g. arrow on the bowstring, not center of the screen/crosshair, or thrown weapon in hand and again not in the center), while the authoritative projectile is centered.

I know some of these words...

Any chance of an ELI5, please marox?

9 17
  • 16 Mar '16
 Nabster

@LordColonelAxeman said:

@marox said:
Our projectiles use clientside dummy versions and their paths blend with the authoritative projectile and gradually disappear. This is also used to give projectiles a feeling of appearing from wherever the projectile is during the animation (e.g. arrow on the bowstring, not center of the screen/crosshair, or thrown weapon in hand and again not in the center), while the authoritative projectile is centered.

I know some of these words...

Any chance of an ELI5, please marox?

If I understand correctly, I'll try to explain.

The arrow on your screen is put into your bow and drawn. When it is fired what actually happens on the server is that an arrow pops into existence where the center of your screen is and is fired forward, but this would look pretty dumb because the arrow is supposed to be fired from your bow, right? So, what you see on your screen is the arrow being fired naturally from your bow, which (I assume) is slightly off to the right of your screen and for a short time after is smoothly moved towards the arrow that was fired from the center of your screen. When both arrows are in the same position and travelling along the same path there's no need for two so the arrow you originally saw is deleted and you begin to see the one that was fired from the center of your screen.

Why not just make it so that your arrow fires from your bow naturally and not bother making the "real" arrow start at the center of your screen? Well, imagine trying to fire a bow when someone is right in front of you. In real life this probably wouldn't even be possible but it would be frustrating in the game if you aimed right at them but your arrow actually whizzed right beside them because it's actually on the side of your screen. Or, think about trying to fire through a small gap in a wall and your arrow hitting the wall even though you have a clear line of sight through it. (If you've ever played TF2 you might notice that trying to fire a soldier's rocket around a corner you'll sometimes hit the wall because the rocket actually appears from over your "shoulder.")

Basically, the arrow will fire in a way that both looks natural to you firing it, and travels with the trajectory you'd intuitively expect.

Also, relevant comic:
retarded-realistic-doom.jpg

569 2056
  • 16 Mar '16
 marox — Project Lead

Yeah, that's it. On top of that, the centered arrow would appear after a short delay, like you see in the UT video linked above, because the server creates it.

713 667
3 1
  • 16 Mar '16
 KGMÐiogoM

Thanks for the fast answer marox! So my arrow will appear normally until my dummy is changed for the server side one, it will desapier until the server side one appear in his place? When this happen I will notice that delay like in UT?

Im very happy to know that u guys are thinking about workshop =]

569 2056
  • 17 Mar '16
 marox — Project Lead

@KGMÐiogoM said:
Thanks for the fast answer marox! So my arrow will appear normally until my dummy is changed for the server side one, it will desapier until the server side one appear in his place? When this happen I will notice that delay like in UT?

Im very happy to know that u guys are thinking about workshop =]

It's a seamless transition, so you wouldn't notice it.

3 1
  • 18 Mar '16
 KGMÐiogoM

nice!, thanks

2 1
  • 3 May '16
 Mandalf

Good to see this move lads, UE4 is so much more flexible, pretty and powerful than Unity.

Can't wait to see what you can do with this engine!

210 120

@Mandalf said:
Good to see this move lads, UE4 is so much more flexible, pretty and powerful than Unity.

Can't wait to see what you can do with this engine!

They have already done great work. I can't even come up with ideas what devs will show us when Kickstarter kicks in. (this summer btw)

1437 936
  • 3 May '16
 mrjoe

@Binfen said:

@Mandalf said:
Good to see this move lads, UE4 is so much more flexible, pretty and powerful than Unity.

Can't wait to see what you can do with this engine!

They have already done great work. I can't even come up with ideas what devs will show us when Kickstarter kicks in. (this summer btw)

They said it will be this summer or is that an assumption you came up with? Sorry, just that I didn't see any post from them saying it's gonna be in the summer.

379 375
  • 3 May '16
 NewYariMeta

@mrjoe said:

@Binfen said:

@Mandalf said:
Good to see this move lads, UE4 is so much more flexible, pretty and powerful than Unity.

Can't wait to see what you can do with this engine!

They have already done great work. I can't even come up with ideas what devs will show us when Kickstarter kicks in. (this summer btw)

They said it will be this summer or is that an assumption you came up with? Sorry, just that I didn't see any post from them saying it's gonna be in the summer.

Yeah I can't find the post either, but i am 95% certain they said it was planned for this summer.

210 120

@NewYariMeta said:

@mrjoe said:

@Binfen said:

@Mandalf said:
Good to see this move lads, UE4 is so much more flexible, pretty and powerful than Unity.

Can't wait to see what you can do with this engine!

They have already done great work. I can't even come up with ideas what devs will show us when Kickstarter kicks in. (this summer btw)

They said it will be this summer or is that an assumption you came up with? Sorry, just that I didn't see any post from them saying it's gonna be in the summer.

Yeah I can't find the post either, but i am 95% certain they said it was planned for this summer.

I guess, it was somewhere on youtube. Plus some people besides me also reckoned it will be this summer. And also, Crush's questions about Kickstarter are kinda poitning this out. For sure

124 73
  • 5 May '16
 Ƭheodore

@mrjoe said:

@Binfen said:

@Mandalf said:
Good to see this move lads, UE4 is so much more flexible, pretty and powerful than Unity.

Can't wait to see what you can do with this engine!

They have already done great work. I can't even come up with ideas what devs will show us when Kickstarter kicks in. (this summer btw)

They said it will be this summer or is that an assumption you came up with? Sorry, just that I didn't see any post from them saying it's gonna be in the summer.

I believe one of the devs commented on youtube on one of the dev blogs that there will be a kickstarter this summer.

3 1
  • 8 May '16
 SMPLOUPLOU

"UE4 comes with so much more that we needed but didn't have yet, [...]extensive modding support.

Hi,
So can we expect to have access to the unreal 4 to make new maps, mods for Mordhau?

Thanks^^

569 2056
  • 9 May '16
 marox — Project Lead

@SMPLOUPLOU said:
So can we expect to have access to the unreal 4 to make new maps, mods for Mordhau?

Yep, that's the plan.

3 1
  • 9 May '16
 SMPLOUPLOU

Awasome, thank you =)