Always interesting how those early mistakes seem to catch up to you at some point. There are many things I did not know exactly how to do them or the best way to move forward. I just did them to get that next piece of the puzzle down and try to build upon that. With such a large project as mine though when things start not matching that creates quite the title wave of issues.
I was being somewhat optimistic that I could have a loot and combat demo out by the end of the month. That quickly became apparent it would not be the case. I have something like 100 main blueprints representing all the different NPCs in my game. They all individually need to be modified to get things up to par with what I need.
It’s also been quite a while since I’ve played around with the inner workings of most of them. While I do have some notes on why things are a certain way. Sometimes things just don’t come back to you as fast as you would like them. That is before any issues run into.
On June 22nd I had noticed one of the NPCs I was working on was no longer walking around or attempting to follow the player. While they could still take damage and dropped loot on death. They for whatever reason just stop working otherwise.
In further trying to discover what was going wrong I noticed this was a much wider spread issue. Around two dozen NPCs in several different zones also had the same issue. To this day I am not sure what went wrong.
I restored an older work of the project hoping to only have lost a little bit of time and sadly for whatever reason, the NPCs were broken in that version as well. This was quite odd as I tested it quite heavily and never came across that issue.
I ended up having to go back around 10 hours’ worth of work to find a version where the NPCs were working and are currently working. Not quite the setback I wanted to deal with but you just got to deal with it and move forward.
This however points to the much larger issue of having to deal with 25 different zones and 100 or so different sets of NPCs. It’s very time-consuming and even repetitive with how I was going about it. I did not use a parent and child setup as much as I should have as I was expecting all of them to require just too much situation-specific work to be done.
There are also a lot of components that the main NPC blueprints interact with further adding to the complexity of the issue. From behavior trees to animations and so many other things. Just wanting to change one thing can require a lot of other things needing to be reworked as well for it all to come together and work.
I came to a point somewhere in the week where I decided this was not something I could just slap some band-aids on and getting to work the way I wanted. Chances are as my game expands one day I could be adding hundreds of more NPCs for the player to fight. All of which will result in the same large-scale manual labor.
There will always be quite a bit of work when it comes to NPCs regardless of how I go about it. What I can at least do for now is try and make it more streamlined and cleaner. I can set things up more so I can just create child blueprints. With everything that needs to be overridden as functions and using the function override feature in UE4 (Unreal Engine 4).
This also presents me with an opportunity to redo some other things that I got working just not very great. Such as state machines for handling things like walking and animations. They all need quite the overhaul to deal with what I need now. Many of them were quite basic and even had some lazy leftovers from trying to copy and paste many dozens of them as quickly as possible before changing what I needed for a particular NPCs.
The downside is it’s all a lot more than I was expecting needing to do. I also was just not ready for it either. Sometimes you realize just how much time and effort it could end up taking and it slaps you across the face. Who knows what other things I might decide is the time to redo as far as the NPCs are concerned.
Final Thoughts
While in the long run things will be much better off for the project and myself. In the short run, it sucks. With there being 25 zones I tend to take things one zone at a time. This could take an entire month to sort out for what time I can put into things at the moment.
Other Posts:
- 51. The Inventory System That Broke Me
- 52. Alpha Channel, Fixes, And UE5
- 53. Eight Hours To Fix A Bug
Information
Screenshots were taken and content was written by @Enjar of @Enjargames. Screenshots are from Nightly Dungeon and Unreal Engine 4
Game roadmap.
Damn I feel you Npc are such big stuff to handle, I'm always trying to avoid them for now. Of all the older project when I go and update them is always Npc that break in one way or another. Even when the engine drops a new update I feel a shiver.
🙏
I've had that happen a few times as well. I'll also go to compile the project and always it fails the first time due to an NPC and some strange issue that popped up.
Feel this very strongly lately. 😅
You are making lots of progress, it just does not feel like it when you are doing rework instead of new work. Gotta do what you gotta do though. Keep at it! 😁
Never ending work it seems hehe.
Personally, I am a master at underestimating how long it will take me to get things done. "Yeah, I can do that in two weeks," almost always turns into... more than that.
Another important thing to consider is to not underestimate the amount of progress you're making, either. Sure, the NPC may have needed work, but it's still forward progress which, in itself, is awesome.
Thankfully I’ve been rather lucky to be over estimate the amount of days things will take for the most part as far as deadlines are concerned. Then again I’ll be grinding crazy hours till sunrise sometimes to make them happen.
While it is forward progress. It seems like it’s never ending the things that need to be done.
Shared on Twitter.
Congratulations @nightlydungeon! You received a personal badge!
You can view your badges on your board and compare yourself to others in the Ranking
Sweet.
Your content has been voted as a part of Encouragement program. Keep up the good work!
Use Ecency daily to boost your growth on platform!
Support Ecency
Vote for Proposal
Delegate HP and earn more