top of page
Search
Writer's pictureVinny

Saturday Session (II)

Today I woke up early to almost zero degree weather. I still stumbled my way to the gym for a workout. Then off for a fresh haircut and back home to tackle some of my dev todo list.



Wearing the same facial expression this AI generated dwarven blacksmith is wearing, I stared my monitor down for a moment and then I hit the ground running and found a flow state. I was able to accomplish a ton over the next 7 hours.


Here's a glimpse at what I knocked out:


  • Vigorous testing of my integration of Hyper frameworks into my project

  • Added inventory weight limit and encumberment (and a bug in the process)

  • Increased interaction distance from camera to make it less frustrating to pick up items when in 3rd person zoomed-out views

  • Tested attribute system integration

  • Integrated and tested state effects via data table

  • Integrated and tested miscellaneous effects

  • Integrated and tested the sample character voice dialog sound effects system for different actions using his system which included Unreal's free Paragon sfx pack:

  • Integrated and tested basics of the combat mechanics

  • Integrated and tested Melee attack types

  • Integrated and tested the simple combat loop

- Aggro logic in simple AI BP

- Death (no respawn loop yet)


Everything worked as expected. Huge, huge shoutout to Hyper and his discord channel and documentation. I feel that I am building on a very solid, extensible foundation and for his hard work I am grateful. His system is based on a survival RPG style game, so I'll need to spend to tailoring it to be more of an auto-attack and ability based MMO style.


Then I started looking deeper into Landscape Layers. These are used to determine what part of the landscape a particular area is so that you can play sound effects based on what is under the players feet and do other cool things like remove foliage in specific areas easily.



Part of the landscape material that uses Landscape Physical Material Output node

The Landscape Material has a Landscape Physical Material Output node that allows you to output the physical material properties in the landscape itself to different Physical Materials (like grass, rocks, etc.) This functionality seems to basically allow you to assign one or more sounds to different layers in your auto landscape materials so when you apply that instance to your landscape, the AnimNotifies in the footstep animations can sample the proper Physical Material and thus play the appropriate sound cue for that part of the landscape.


This is accomplished by using a Material Function "SlopeMask" that uses normal, slope multipliers, and slope sharpness to determine which area is higher, lower, or sloped and at what angle. Multi-layered auto landscape materials could apply textures and unique sounds on up to 8 layers of the auto landscape material.


I wonder if this works with Runtime Virtual Texture volumes the same way?


The landscape material can determine what surface you are on based on normal and slope. Those values decide if a surface is of a given surface type (grass or rocks, etc.). These values can be sent into a Landscape Physical Material Output node which then in turn tells the footstep manager what type of material you stepped on. You can do up to 8 layers in a landscape. They can also be modified by state effects. For instance, walking in sand that is wet you could just add a "wet" state and then when walking on sand it will blend the original sand sound effect for footsteps with another sound cue you provide (like a squish noise) using a float between 0 and 1.0 for how loud it is relative to the footstep sound.


This lets you create shallow water, moist ground, etc., and could be tied into a weather system. Pretty cool stuff! It even includes leaving decals like footprints, puddle splashes, kicking up dust when walking or more when running, and other things of that nature.


I moved on to testing the footsteps module for the following physical materials


  • Cloth

  • Wood

  • Sand

  • Snow

  • Water

  • Grass

  • Rocks

  • Flesh


Yes, flesh surfaces. Like when you're dungeon crawling in a torture pit filled with parts. Squishy. This approach can also be used to make sound effects for when weapons hit flesh.

I saved everything and submitted my progress to Perforce.


After a short break, I got back to it. This time I turned my focus to the interaction system.


  • Integrated and tested all behaviors for triggers, doors, and pickups.


After testing, everything worked as expected, another testament to how well Hyper's modular components are made.


Lastly, I integrated the swimming plugin which was simple and straightforward.


I previously got the oxygen bar to display and hide properly when underwater, so I spent some time styling the oxygen bar to match the casting bar more closely. It works, but it's still not completed. I will address UI styling incrementally because personally I find the work tedious and kind of boring.


Overall, it was a great Saturday for game dev. I ended up too tired to write my post, so I'm posting it this morning. With it being a 3 day weekend, I should be able to get some decent progress in today as well.


Cheers,

Vinny



11 views

Recent Posts

See All

60 FPS

Comments


bottom of page