Development Log 11/21/2024
Hi folks! Mark here, again!
I hope you’re all doing well and staying healthy!
This is a text-heavy post so I apologize there aren’t as many pretty pictures or videos with this one!
I haven’t made a development log around a month or two, so I wanted to provide some context. Long story short, I’ve been dealing with some personal health issues that hasn’t allowed me to work as a I normally do. Thankfully, I’ve been trying my best to keep up with development, but the paperwork, and sadly this development blog, come second while I’m recovering.
I know I’ve mentioned health issues in the past, but thankfully I’ve met with some doctors and I’m working on slowly feeling better. I don’t get into too much personal information in these logs, but this would be my reason for the sparse development logs.
That being said, I have worked on QUITE a lot during the last month or so. These are in no particular order because I have a hard time remembering the order I did these things (oops).
Here it goes:
Weather:
I’ve been spending some time learning about VDB (Volume Breakdown) clouds within my scene. The goal is to have these clouds act as storm clouds in the game so players can easily see them within the world. I’ve provided an example below!
Special thanks to FastChaos and their tutorial on VDB clouds.
Custom Assets:
I also spent some time in Blender learning to make some Low-Poly rocks. I’m hoping to replace the existing placeholder rocks from Quixel/Fab with some lower poly custom rocks as I believe it will fit with our style more in the end. There isn’t too much to see here, but here one of my rock.

Unreal Animation Sample
Somewhere within UE 5’s release, Epic released an Animation Sample Project that uses motion matching and essentially single-flow animation graphs using states, that essentially check for various game things (player running, sprint) and blends the animation based on these states.
I’ve wanted to implement this new technology into my project for a little bit but the project seems fairly daunting, especially while I wasn’t feeling well.
More recently, I spent a solid 2-3 days to implement it into my project. I started with an empty level and migrated the player character and all related object to my project. After some error boxes and project issues, I eventually got it working using a blank level and manually setting the character and gamemode to the animation sample’s assets.
Sadly, I forgot to get some footage of this while I was working on it.
After that, I had to decide my implementation strategy, since my player character and animations are already pretty full, I either add my character stuff to the animation sample, or add the animation sample to my character.
Since we already have some character children and basic multi player logic, it will probably be easier to add the animation sample stuff to my own character. I’ll spare you the details because this took me a day or two, but eventually was able to get my player character to use UEFN player character and Unreal’s animation matching sample.
After some editing, I was able to get it working with my existing camera boom and first person camera logic.
This was fun to add but overall, I feel fixed about how well it works. I’ll admit, I didn’t do much to get it working, but I found the 5.4 animation sample lacking on un-even terrain. The character would have issues determining when to start the walking animation, so it would essentially stutter between the first couple walking animation frames.
As I finished this, Unreal released UE 5.5 and a new version of the animation sample. This new version seemingly fixed my issues with uneven terrain and added logic for crouching and climbing. I figured it might be a good idea to add this to my project.
After a good few hours of re-building and recompiling my project for 5.5 just so I could use the animation sample, I determined it wasn’t worth the upgrade time currently. To be more specific, I could update it just fine if I didn’t use some plugins, such as Wwise or noise generation.
After struggling for a little bit, I reverted to my branch prior to the upgrade and continued to work, now waiting for Wwise to upgrade so I can use UE 5.5 later.
But here is what we currently have, so we’ll see how 5.5 work when we get there. Please excuse the poor framing and debug objects, please 😀
Wwise
Since I’ve mentioned it a bunch, I’ve been using Wwise in this project. I’ve never used Wwise or other Third-party audio solutions but I realize Wwise and Fmod are standards, so it might be worth exploring.
This attempt was my second or third attempt at using Wwise. It’s not too complicated once you figure out a workflow, but opening Wwise without any context can be really confusing, especially for a beginner.

After watching some tutorials online (watched a lot, so I’m sorry I don’t remember), I was finally able to get Wwise working in my project. Essentially, I had to add AkAudio in one of project build source files and add some Wwise blueprints and a component. Wwise explorer/browser in Unreal was also super helpful when generating this audio.
Basically, place your audio in Wwise, then create an event and attach that audio to your event. Then create a sound bank using the event and sounds, which Unreal can read. This is the simple form of it all, but it works well for general music or backgrounds.
I was also able to learn about random containers in Wwise which allows a random sound to placed in an event, instead of just one. Currently, we have this implement for weapon sounds but hope to utilize it a bit more.
With all of this, I added some background music and sound to the gameplay level and went from there.
Terrain & Island Generation
Terrain and island generation has been a iffy topic while working on this project. It’s probably the biggest part of this project I’ve been actively putting off. But thankfully putting it off with other work throughout the game 😀
Currently, our islands are presets or premade islands and our code handles the randomization of these islands. This will definitely be needed for story and special events, but I’m hoping to generate the rest of the islands and their contents.
I spent a lot of time learning about various terrain generation method in Unreal. During this time, I also explored a bunch of Unreal plugins (official and unofficial) trying to find a solution. There are many options on the Unreal Marketplace/FAB for terrain generation but they tend to be expensive, or require a bunch more work than I want for a $200+ plugin.
With that, I explored a handful of solutions for terrain generation.
First, I created solution uses blueprints and the dynamic mesh component. Essentially, you create a bunch of points in a grid, and logically iterate through these points to create triangles and then apply a material. We can get variations and randomness by varying the height, using a noise or height map, or more a more basic random number generation on each points Z position.
I followed this tutorial from fettis GameDev which helped out quite a bit when figuring this out.
This worked, but I realized this implementation might be limited and performance heavy. And in the end, I had to decide how much time and brain power I wanted to dedicate to this
I was able to find a simple terrain generation plugin that utilized Realtime generation using height maps and this seemed to be fairly close to what we’re looking for at this point.
Noise Map Based Generation (below):

Dynamic Mesh Realtime Generation, noise map with random height and water shader (below):

Weapons
Weapons have given me quite a few headaches this development cycle. Long story short, I set up a data structure for all of my weapons and made a bunch of weapon world objects so the player could use them. As I’m adding these weapons, I’m adding new elements into my data structures to get everything to work.
The fun part about STRUCTS in Unreal is handling them. Not that fun, it breaks your projects and that’s what happened. I saved, closed, and reopened and my project would not open and didn’t want to build.
Basically, if you change your structs and other blueprints use them, they need to be reloaded or they fail to compile. It will work using the basic cached compilation, but every blueprint that reference that out-dated structure will break.
I spend a solid 2-3 days trying to get the project to work.
I also explored more backup solutions, as at this point I wasn’t keeping up with my GIT and I had a hard time getting PerForce working. I spent a day or two trying to get perforce working with basically no success and support from the company. I ended up reinstalling Git LFS and making sure I use more backups and branches.
I never got it to work properly, I had to remake a bunch of data structures and simplify their usage. Now for weapons, all of the weapon data stays the same, but all of their decoration text (name, description, etc) exists in a different structure so we don’t have to update EVERYTHING that uses weapons everytime we change it’s name or wording.




In the end, I was able to get ~5 weapons more finalized into the project. These weapons exist within the world as objects and the player can pick up, drop, shoot, and interact with them.
The weapons themselves need tuning and weapon bones/sockets need proper placement. Basically, on the character, there is a point where the weapon attaches, but each weapon is sized and shaped differently, so we need to do with in regard to our character animations.
Since we have the animation sample currently in place and might be replacing it with UE 5.5’s version, I figured it might be a good idea to wait on this until the character is updated.

Goodbye for Now!
Welp, that was a lot of stuff and typing for me! I hope it wasn’t too confusing or too much of a jumbled mess.
That’s enough of me rambling. I’m sure I forgot something that I’ll add later or next time, who knows. But beyond that, it been fun and real and real fun but we got to say goodbye until next time.
I’m hoping to get some more work done over the next week to show you, but sometimes life happens so we’re hoping for the best.
LAST BUT MORE IMPORTANTLY……
Take care of yourself and make sure you eat and do something you enjoy this week. Hang in there. Life can be hard some times, but there’s people out there who love you and want to see the best for you. Nothing in life is perfect, so we don’t have to either. We’re all good enough. I believe in you. You got this.
If you read this far, thank you so much. I’ve been having a lot of fun making this project so I’m happy to share some of the love and hard work I’ve put into it.
Catch you on the high seas!
~ Mark
11/21/2024
Leave a Reply