1. Mortal Rite
  2. News
  3. Dev Log 3 - KILLING 96 BIRDS WITH 2 STONES

Dev Log 3 - KILLING 96 BIRDS WITH 2 STONES

Greetings everyone,

Here we are with another Dev Log, Take a ride with us on what we have worked on and are working on.



[h2]Material Updates[/h2]
  • For materials, we made a few minor fixes. Fia’s material was ignoring any part of the texture that didn’t have a color from the engine on it. Like her knives and the bottom of her boots. So now those don’t look like untextured, shiny, pitch black anymore.



  • Shold got his scarf back now that we’re done with his skinning updates. He also had some updates to his physics asset, so he can simulate the scarf a bit better without it clipping through his arms and torso.
    [previewyoutube][/previewyoutube]
  • We can now support blood decals on character after hits thanks to Alex. So we went in and added the layer to all of our characters, which started to push the material complexity a bit too far. Which means that we had to go in and optimize a bit to make sure that our materials don’t become too much of a burden for the engine.
    [previewyoutube][/previewyoutube]
This leads us to…

[h2]Optimization Updates[/h2]
When we make characters, we try to make them as high quality as possible, and leave optimization till later. Overall this is good, because the characters end up looking great, but also comes with that looming threat of optimization in the future that no one wants to think about.

After our last playtest and the several nights we spent rushing to optimize everything in a panic, I figured it was probably a good idea to get ahead of it this time. So, Unreal has a handy feature that generates LODs for you.

What are LODs??
LODs are those low-detail models that “pop in” the farther you get away from something. They change the detail on the model because it assumes that you’ve gotten far enough that you shouldn’t notice a drop in detail, and it changes back to higher quality the closer you get.
[previewyoutube][/previewyoutube]
Having these be lower quality helps the engine run faster because it has less geometry and fewer bones to animate, so less work overall. In addition, we also needed to optimize the textures to save on memory. Memory, as it turns out, is a pretty big deal. Most graphics cards don’t have a ton of memory to dish out, which means that we need to make the most out of the memory that we do have.

Most graphics card’s range anywhere from 2GB to 24GB of VRAM, which is a pretty big range. Meaning we need to plan for the worst and hope for the best. The closer you get to using all of your VRAM the slower your game will run. If you run out, it slows down to an unplayable crawl, and we weep bitter tears.

So, armed with that knowledge, what can we do?
We went in and found out how much memory each character was taking up, and as it turns out, they were taking up roughly 1.2 -1.5 GB each... so that adds up concerningly quick. However the answer, it turns out, is pretty simple. Unreal lets us change the LOD for each texture, just like we would for a character. So that we don’t have to compress the source texture, people with higher-end machines would be able to use the textures at a higher resolution.



  • (The way to do that is to look at each character overall, reduce every texture down to its smallest size, and bring it back up slowly to see what the lowest resolution we can get away with is.)




So, we ended up reducing the memory size to about 80 MB for each enemy and about double that for each hero, at around 150-200MB.

While that doesn’t solve it completely, it does reduce the cost by roughly 80% for very little loss in quality. It can still be reduced further, but it would come at a significant loss in quality. So there’s still a bit more balancing to be done, but I do think we can squeeze out a bit more performance. Possibly with the lower quality modes.

[h2]Animation Updates[/h2]
Now comes everyone’s favorite portion of the blog…

“HOW MANY ANIMATIONS DID ANTHONY GET DONE THIS WEEK!” - It's 96; please stop yelling at me.

  • A good third of these is the Sword Knight, since we needed him to test out a bunch of hit reactions.
    [previewyoutube][/previewyoutube]

  • Shold is starting to get back up to speed with his locomotion for His Hammer + Shield, and his 2-Handed Axe is looking pretty good. Still needs to get his Rock Armor finished, though. Don’t have much of his melee done, but at least his light attacks are in there.
    [previewyoutube][/previewyoutube]
    [previewyoutube][/previewyoutube]
  • Fia had some minor cleanup to make her locomotion more smooth. She now has Light and Heavy In-Air attacks as well. Now she just needs standard heavy attacks to be all done with melee.
    [previewyoutube][/previewyoutube]

Most of the animations are locomotion updates for walking, jogging, sprinting, etc, but I like to sprinkle in attacks just to keep it fresh.

[h2]Effects Updates[/h2]
Lastly, we started porting over all the impact effects from the last project. The effects were enhanced a bit to be more visible. They’re all based on the type of surface you’re hitting, and the current list we

support is:
  • Sand
  • Stone
  • Ice
  • Wood
  • Snow
  • Flesh (Characters)
  • Grass
  • Metal
  • Water
  • Dirt

[previewyoutube][/previewyoutube]

Each one spawns its own different impact effect, and it's also based on your weapon type. Currently, we only support sharp and blunt weapon types, BUT we’re going to be adding more as we go.

For example, we can't use blunt or sharp effects if we’re using a spell like a fireball. We’d need to add fire effects to any impact as well. This also lets us bundle sounds with the effect, but we’re not quite there yet.

See ya’ll next week!