Hello everyone and welcome back! I started my end-of-year vacation from my full time job on Wednesday, so I’ve had more time to work on The Cursed Crown this week. I unfortunately ran out of time to play around with the crafting system, but I finished out all the other work I planned for the week as well as adding some extra work in and completing that.
I initially planned to experiment with the crafting system, experiment with the saving and loading system, and experiment with the fast travel system. By the end of the week, I also added in the enemy class upgrade task and created and added a new task to create an open world sandbox for development and testing.
Even though I didn’t quite finish everything that I wanted to get done, the update log is pretty long, so let’s get to it!
Update: I woke up early Friday morning and decided that I wanted to experiment with this system just to see what it will entail to implement it later. So, in the end, everything I wanted to complete this week is done. And then some!
Cursed Crown Updates
- Issue 7: Enemy Base Class Upgrade
- I created a new base class for the enemies. This way, I could have my customization that are available to all enemies without having the edit the base class provided by ACF every time it updates.
- While I was performing this task, I did the same for the player character controller and for the same reasons.
- On the enemies, I removed the widget that displays the enemy’s name and health. I re-removed the red flash and popup numbers that appear when the enemy takes damage.
- I created a new enumeration and variable on the enemy base class to handle different variants: Base, Strong, Elite, and Boss. Each of these selections should make the enemy tougher and stronger, but provide more XP for the player on death. (The XP system will be reworked at a later date.) I tried several ways to handle this functionality but was unable to make anything I tried work so I went to the ACF Discord server for help.
- The lead developer of ACF (Pask), let me know that this just wasn’t how the system was set up to work, so after some discussion, it was decided that the best way forward was to just create separate blueprints for each variant of each enemy type that I wanted. While this is easier to set up initially, if I want to tweak things or change some feature about the different variants later it becomes more tedious to do. But it’s something that I’ll just have to live with for now.
- I reverted the changes to the variant system that I added (functions, variables, and enum) and everything is working properly again.
- Issue 41: Create Open World Testbed Level
- Created story, created level, added to “always package”, ‘open OpenWorldTestbed’ to play, map area from ACF set up, set base game mode blueprint to use, should be ready to develop further
- I created this story specifically to add to this sprint because it’s something that I just wanted to get done.
- I created a new level ‘OpenWorldSandbox.’ It’s just a large, mostly flat terrain that has plenty of room to build and test larger functionality.
- The level was added to the “always package these levels” options in the project settings, so even though there’s no menu options to go to the level, it will always be present in the builds.
- Testers can access the level by pressing TAB to go to the console then typing ‘open OpenWorldSandbox’ there.
- Issue 32: Experiment with ACF Saving and Loading System
- I did spend some time experimenting with the saving and loading system provided by ACF. It functions pretty well as a base system. It does need some tweaking, though.
- I created a basic checkpoint/bonfire blueprint where the player can save the game. I added a couple of these to the Overgrown Ruins level. There is currently a message in the top-left of the screen letting the player know they can’t save when in combat, but this should be updated to be more explicit.
- The player can reload their save from the menu.
- Currently, after saving and reloading, every enemy remains dead. I want this to not be the case. I believe I have a path forward for this, but it needs testing to be sure.
- Issue 36: Experiment with ACF Fast Travel System
- I played around with this system for a while. It functions pretty well, but there are a couple quirks that I think I want to address.
- The fast travel system is initiated via an NPC. The player can’t activate it on their own. This MUST be changed for the final game. I just need to figure out what functions are being called and to patch into them through some other process. There could be a spell or something, or maybe an option at checkpoints. I don’t know how I want to handle this part just yet.
- The fast travel points are separate blueprints from anything else in the game. They are activated when the player gets within a sphere around the point in the world where they exist. This could be a perfectly fine way of doing it. I would just have to add two blueprints instead of one whenever I add a checkpoint I want the player to be able to fast travel to.
- I also want to set up the same “in combat” check that happens at the checkpoints to keep the player from being able to fast travel when they’re in a fight. This could be superfluous if the activation is an item (like the homeward bone or feather) or a spell, since either of these would have a time cost and enemies might not give the player time to perform this action.
- Issue 20: Experiment with ACF Crafting System
- Updated: I managed to get some time to work on this on Friday morning anyway!
- So, like ACF’s fast travel system, the crafting is currently controlled by talking to a vendor. The player can choose “I want to craft new gear!” in the dialog tree to open the crafting menu.
- I dug through the dialog tree and the blueprints and it looks like it’ll be pretty easy to hijack the functionality and add it to the player’s abilities so they don’t have to find an NPC. I don’t think it would be unreasonable to link it to “crafting tables” that can be found all over the place in the world. Or, maybe there will be only a couple, but the player can fast travel to the main settlement to find one to work with. I’m imagining something like the alchemy or enchanting table. I’ll need to figure that one out.
- The recipes are really simple to implement and store. So far, the UI blueprint for crafting just includes an array of the recipes. I’d probably like to find some way to dynamically add these recipes so the player can only craft things they’ve discovered or found a recipe for.
- Other Updates:
- I updated the ACF plugins to their most recent versions for Unreal 5.4. I downloaded Unreal 5.5, but I wasn’t quite brave enough to perform this update this week. It is on the list of tasks to do, but it’s potentially going to take quite a bit of time on its own, so I need to dedicate enough time to work on it. A couple things broke when I did this update, so I had to perform some fixes to get things back to a working state:
- The volume issue returned. I had to reset the effect pack volume to be able to hear sounds again.
- All the skeleton meshes I was using (Kara with and without the cape, Burke, and all the enemies) had to have their skeletons reassigned to the version included in ACF. This forced the skeleton to be updated and luckily it was a simple process to do this time.
- I restored Kara to the version with the cape. The assertion/crash issue was still a problem, so I did some more testing and tried to solve the problem the correct way.
- The issue turned out to be related to the Chaos cloth physics solver interacting with poorly-created collision meshes. I ran around in the area where the crashes were happening and twirled Kara around to get her cape spinning. Every time I hit a crash, I reloaded and modified the collision for the mesh that caused the issue. In the end, I think I changed the collision on all the stone faces, one of the stairs, and all the cliff faces in the Lordenfel set. I haven’t had a crash since.
- I need to keep an eye on this moving forward and just make sure there are no issues with other meshes that I didn’t catch.
- I lowered the download size of the demo package significantly by changing the quality of the build lighting. It may look lower resolution due to being built with preview-level quality, but it provides faster build turnaround for me so I think it’ll just stay how it is for now.
- With all this work, I bumped the build to version 0.2.2. A downloadable build should be available this afternoon!
- I updated the ACF plugins to their most recent versions for Unreal 5.4. I downloaded Unreal 5.5, but I wasn’t quite brave enough to perform this update this week. It is on the list of tasks to do, but it’s potentially going to take quite a bit of time on its own, so I need to dedicate enough time to work on it. A couple things broke when I did this update, so I had to perform some fixes to get things back to a working state:
Thanks again for stopping in. It’s time for me to try to relax a bit for the weekend. I can’t promise much work due to a social gathering I am attending on Saturday, but I’ll do what I can. Since I have off next week, progress will still be better than on normal weeks anyway. I’ll have to decide what I’m going to plan for the next steps.
In the meantime, I hope you all have a wonderful weekend! Until next time, keep on gaming everyone!
Leave a Reply
You must be logged in to post a comment.