Development Log 10/15/2024

Hi folks!

I hope you are all doing well and enjoying the weather while it lasts. I know some people prefer fall, but others might like the warmth so who knows!

Development since our last post has been slow and sort-of boring but progress is coming along. I would have liked to work on more but honestly, I’ve been chronically sick and I’m trying my best to work through my illness. Unfortunately, I’m unsure what’s wrong with me until I see the right doctor. It’s been a hassle, but I’m doing my best. I don’t expect that to stop me make this, but it may take longer. Again, I’m only one person and we all have life issues.

Enough about me though! I wanted to talk about the game a bit more! What I worked on this week was:

Upgrade Houses

The upgrade houses have had some progress since we last talked. All of our UI items now interact with the upgrade station. I was also able to add some quick hover effects and logic to select/deselect menu items. I’ve also added a background placeholder image for the time being. I’m hoping to use a canvas map or something, but this should be good enough for now.

I still need to complete the actual upgrades themself, but I’m slowly getting there. I currently have the first upgrade’s logic and systems integrated. I was important for me to develop functions to dynamically handle mission upgrades since we will have many houses with many upgrades in the game. Most, if not all, of this data is handled in the background so there’s not much visually to show.

This was completed earlier last week in a fairly short amount of time and was not the primary focus of this week but I did make some progress so I wanted to mention it!

Movement

Swimming

Surprisingly enough, swimming has yet to be implemented into the game. I tried implementing it a few month ago but ran into issues and I didn’t have enough patience at the time to work though it.

I had a basic idea of how I wanted to do this so I tried my best. After some headaches, I turned to Youtube and found a great video from Gorka games on making a simple swimming system.

I don’t normally use Youtube if I don’t need to, as it can become really confusing whenever the person you’re watching has a huge project already or is trying to sell you an Unreal course instead, so I do it spairingly. But it doesn’t hurt to see if there are quick implementations and this worked pretty well after some headaches.

From there, I was able to tap into Unreal’s character movement component and set if the character was walking or swimming. Thankfully Unreal does most of the work for us. Lastly, the water was saved as a blueprint so we could add Begin/End overlap events to trigger the walk/swim change.

I spent sometime learning how to import Miximo animations again for the swimming. I’ve done it in the past but there’s a lot of buttons and can be hard to remember.

From the video, I ran into some bugs. Occasionally, the player would get stuck on the top of the water and float around, and another case where the player would jump out of the water and immediately plummet into the void of the sea.

After some time, I was able to get a solution I was happy with.

Ladders

This one is sort-of, kind-of movement depending on your perspective. As a player, you wouldn’t really consider a ladder to do much with your movement, but it’s really similar. Funny enough, the ladder tells the player to start climbing, not the other way around.

I was able to implement the same character movement component logic using ladders, but instead of swimming, we tell Unreal to “fly”. Once this is set, we then translate the forward/backward input to up/down.

I don’t really want to go into the specifics of it because it still needs work. I’d like to limit the horizontal movement a bit more so players cannot fly off it they already have a velocity.

In a more general feedback approach, I’d also like to improve the animations and attach the character properly to the ladder, but who knows. It works for what it needs to do so I’m hesitant to work on details and animations at this point. More than likely after early access, unless it becomes a problem in multiplayer.

During the making of this, I heavily referenced Shaun Foster’s video on Ladders in Unreal. It was very helpful and provided a great foundation for a ladder system.

This ladder also translated and worked on the ships as well without any additional work!

Mission Selection

This was where the majority of my work was this week. Upon getting bored working on the upgrade houses, I wanted to do basically the same thing with the mission board for some reason.

The last time I talked about the Mission Selection board, it was just finished being built and didn’t have any interactive elements to it. I learned about widget interactions but the board/buttons didn’t actually do anything.

I got the board to eventually populate the data after some headaches. Generally, the board creates new missions whenever loaded but I needed a way to translate the mission cards information to the board, and then eventually the server itself.

Whenever I said this week as sort-of boring, this is what I meant. Most of the work was data structures and effectively telling the mission board how to communicate. What I decided was, the mission card holds the mission data. Once selected, the mission board stores the card’s information to populate the rest of the screen and pass to the server on accepting the bounty/mission.

Here’s a general idea of basically every function with this data:

It’s coming along slowly but I’ve had to think of what data we want to use and how that is managed. Then in the end, this data will be passed to the server for the world generation, game settings, and mission objectives.

The fun part of creating data structures in a creative project is that anything can happen. The world is my oyster and there are so many ways I can overcomplicate things. I settled on having limits and preset values for each mission type/objective. Separately, the world can influence this during generation, as well as separately determine the world to load.

I realize most of this is probably mumbo-jumbo unless you’re a developer, but trust me, this was a lot of data handling, logic, numbers, and math in the end with basically nothing visual to show. I wanted to create the mission data prior to jumping into world generation again, since that’s a WHOLE other headache and story.

But in the end, the mission selection board now properly interacts with the player, updates it’s information to display, and sends this information to the player and the server for later.

I still need to add more mission types, but one at a time for now until the whole demo is made, then we can add more.

What’s Next

Next will be to complete this data stuff and move onto world generation and missions for a little bit. We currently have two bad mission systems (because I decided to remake it whenever making the tutorial forever ago for some reason) so I’ll have to choose one, but I’ll get there.

I also need to decide on a world generation solution. For the time being, I’ve been using pre-made meshes for the islands. It “works” but it’s not what I want in end. I’m hoping to mess around with C++ and procedural meshes but I’ve been putting it off.

Speaking of putting things off, a few weeks ago, I started an Unreal Blender course using a book I purchased from Humble Bundled called Unreal Engine 5 Character Creation, Animation and Cinematics by Henk Venter and Whilhelm Ogterop from Packt. I’m not a huge fan of Packt published books as they’re usually pretty lacking in detail (as this book is) but it gave me a solid workflow making things. Primarily, I learned about character modeling and sketching, as well as control rigs and armature. This book also provided some solid guidance on post processing and camera and light effects.

I didn’t take too many screen shots as it was course and I wanted to rip through it and I realize none of the videos have any textures or a fully working armature, but here are some things I did early on at least:

Goodbye for Now!

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
10/15/2024


Leave a Reply

Your email address will not be published. Required fields are marked *