There’s a lot of minor stuff I am doing all the time that doesn’t really fit anywhere or makes other posts bloated. So I’ll go over some important but small things that I am working on. A lot is to do with effects and animations, as those as the most finicky and visually obvious things.
Firstly, there’s an annoying issue where the player’s walking animation continues for a short bit when the player stops. You can see the legs shuffle about after they stop:
This is subtle and not always apparent, but it’s kind of obvious when you see it all the time. Something feels off. The reason is that my speed is not an exact drop, but a gradual decrease:
What I need to do is have mobs witch to idle state when the speed drops below some threshold, like 25% of max speed.
Also, while debugging this, I realized my camera smoothness gets in the way of me actually seeing the exact results. So I added a debug switch to disable this smooth “lagging” behind along the other camera options:
And now I can see my animation results clearly with this threshold:
It looks like the player actually stops animating exactly (well, close enough) where they stopped.
As I’m messing with player’s definitions, I realized I have a better way of doing these than having a definition for each avatar:
In fact, I have reusable bonuses now, so I can just add the bonuses to the avatar definitions:
Normally, I want the game to just launch into the level, so I can test quickly. But not always. It gets tedious changing and recompiling this debug call, so I added an in-scene debug object I can toggle to force this on or off.
I removed the “key features” stuff from avatars. Instead, they show the bonuses, same as loadout panel:
I can debug-see all the bonuses as well (here, the avatar provide +20 HP):
Another debug issue is that I was fixing the positioning of my effects. They got really broken recently, and I hadn’t gotten around to fixing them. One delay is that I don’t actually know where exactly they think they should spawn. So for that I added little editor-time pinpoints to indicate where they spawn:
This helps immensely seeing where effects appear (and if they even do). This really helps prevent mistakes. And every time I don’t need to play the game to preview something, the speed of iteration increases drastically.
Another thing I have been thinking about is how to better encode animations and effects, and I’m adding animation presets for various “parts” rather than having generic “shake” or something. I will talk about effects tying with animations in the next post. Anyway, here’s an example of tank-thread mobs having their “own” animation instead of shaking:
Speaking of shaking player, here’s the player shaking:
I had a bunch of issues getting the correct animation to work, so I added a toggle to see how things look without smoothing:
In preparation for animation changes, I split the part animation definitions from their modifier definitions:
This let’s me manager, link and use these easier.
While digging around the mob stuff, I decided to re-encode their “size” as an actual mob size:
This also means I can ditch the specific drop shadow size values per mob and use values based on this size. I briefly mentioned the mob drop shadow sprite selection asset:
And now it properly correlates the mob size to the visual sprite I want.
I’ve also been testing and expanding things to do with effects and their appearance. To test, I added an energy impact effect for weapons:
This spawns a bunch of energy particles (to be arted) when a weapon hits something:
This provides some nice visual feedback for these impacts:
Of course, I would need to adjust art, add variation, etc. But it’s passable — much better than nothing. And at least the system allows this now.
There is a lot of editor and debug stuff I have been adding and tweaking. Oftentimes I feel like I’m focusing way too much on the tools and not the in-game result. For example, my animations now only show the full preview when they actually have one:
This is important because my bosses have a dozen parts and I can’t have half the screen be icons. At the same time, props have 1 part and unique sprites and I need to preview them to know I have the right on selected.
There’s also an issue with the minimap I haven’t fixed forever that has been bugging me no end in that it can get cut off if the dungeon gets generated too “far”:
The map is center-anchored, so it doesn’t know where the “edge” of the screen is — the images are happy to extend as far as they want outside the actual minimap area. What I want instead is for them to be bottom-right anchored — in the corner:
Then I remove current spawn room centering, and let them center with “absolute” coordinates:
Now I can go through all images, and offset the whole image container to the furthest image’s position (that is, the bottom-most and right-most coordinates) plus an extra margin:
Of course, I can’t just offset a fully hidden map or the player will “know” the layout, so it happens gradually and only visible images are considered for centering — the element shift as new ones appear:
And I need to make it gradual to avoid the jarring jump:
And that’s much better! (If not pixel-perfect.) The rooms themselves don’t fade in, but I will leave it for now — I have so many other things to take care of first.
Alright, that’s enough stuff for now. I expect to be posting these more and more often, as the game nears completions and I start tweaking small bits rather than making any big systems. Then again, I’ve said the same before and I’m still making massive changes. Like the next post…