This was a bit of an unplanned code clean-up week!
As I was setting up/connecting remaining gameplay features to buttons, I found that some related (and unrelated) code made things a little tricky, so I decided to refactor some systems.
I also managed to get some neat things implemented in the process.
Accomplishments this week:
Essentially, refactoring involves rewriting code without changing is underlying functionality, and most of the refactoring I did involves renaming some classes and functions, as well as moving some functionality into places that made more sense (and also giving those functions some better names).
One class that I refactored and renamed was an “ActorPhysics” class. This was a class I wrote to handle some shared physics behaviors and collision checking to be used in the various states that characters have. I also cleaned up several others.
Here’s some of the standard scripts/classes that most characters will have:
I managed to implement some new collision checks and debugging gizmos that make it easier for me to tell when a character is colliding with something and where. For this, I simply have the ActorPhysics class generate different points around the actor’s collider.
I’ve made it easier to change/create overhead popup text above characters.
I added the ability for Breeze to be able to grab enemies (this was a bit irritating to write, but made me rethink some functions in other states)
Made it easier to access the animator/sprite of a character. As often as these two are updated, etc, I wanted to make sure that I could easily access the two in code without having to jump through hoops.
Worked in ensuring that characters abide by the game’s grid, to make it easier to design levels around them, and being able to work with more reliable values for physics forces.
Continuing to streamline animations and animation transitions.
This is being done by planning out the standard set of animations most (or all) characters will use in the future, this way, as we implement/add new characters, adding in their animations is a simple matter of dropping them into one of the various animation states in the graph below (note, some of these states might be removed/renamed):
Added in a tool for debugging. So far, I mostly have it displaying some “profiler” information, but hopefully soon, I can add in some debug console stuff too!
Well, I didn’t really get to work on tasks that I outlined the last update, so I’ll shoot for them again this week:
Ability to remap controls.
Start getting things ready for some testable builds again (maybe even some for patrons 😊 )
Sounds and Particles/VFX. Now that a lot of combat and movement features are much more developed, I’m really eager to add on some bells and whistles (and verify the pipeline for getting these things imported and working for different scenarios)
AI: Looking to get some enemies doing some cool things again. I’ve actually got a more solid AI framework going (compared to the mess I had a year ago), but we need to actually start looking at individual behaviors for different enemies more thoroughly.
Updating the Patreon page and Website/Blog design. I haven’t exactly touched either in a while, but I want to make things a little more attractive here and there.
UI: Been holding off on this, I really should look at getting things in this area more fleshed out from not only a design standpoint but functionality