During the month of May, this is what I worked on:
Emissive masks on the character sprites
I wanted to introduce magical weapons and give them some sort of visual indicator that they aren’t just regular weapons. The weapons already had a texture for RGB and opacity. Adding a glow mask should have required adding another texture, which I didn’t want to do. So instead I messed with how the material interprets the alpha channel, which now serves double duty as both the opacity mask and the emissive mask. The glow itself is very simple: a tiling cloud texture at different scales, one panning up-left and the other panning up-right, multiplied together, used as the alpha for a lerp between two colors.
Reassembling my sprite material (which is basically a lot of textures layered in different orders depending on camera direction and pawn direction) in order to layer the glow mask properly ended up being a large undertaking. But I think the effect turned out nicely.
New pumpkinhead character
An RPG just feels like it needs more enemies than I currently have. These pumpkinhead guys start with the Strawman character class and can unlock the Scarecrow class. They use scythes and sickles, deal high damage, and have low defense. All of their speech consists of lines from the Hollow Men by T. S. Eliot. The poem itself is a little unsettling. Having a scarecrow recite relevant lines from it during combat is even more unsettling.
New fire and lighting effects
Himeko Sutori’s fire used to consist of flipbooks from a purchased asset pack. I’m replacing most or all instances of those fires with procedural fire, which looks a lot better IMHO. I made a jagged shape with a yellow-orange-red color ramp in After Effects. I multiply that by a panning yellow-black-red noise pattern. And then I pan a different noise pattern and add it to the texture coordinates, and I get a beautiful shimmering, flickering, dancing fire.
I had been avoiding dynamic lights for a long time due to performance concerns, but eventually I reached a point where I just could not achieve the desired effect without them. I tried out some dynamic lights and realized that in my target hardware requirements, a couple of dynamic lights here and there won’t hurt performance.
And here’s a tip that I’d like to share with you. I learned it recently after watching some GDC videos. Ever notice how additive particle materials just look white in a bright setting, and translucent materials don’t look bright enough or have dark edges? Here’s how you solve that: Use the texture’s alpha to blend between (brightness * texture) and ((brightness * texture) + destination). That way, you can have the material glow as much as you want around the edges, but you keep the color in the middle of the material in bright settings. I don’t know how many people will read this. Maybe I should make that information a separate post.
New town
I’ve realized that I really prefer the aesthetics of a fixed camera position. Whether fixed to world space, or fixed relative to the pawn, I like the way it looks and I like the simplified level design. So in large open areas like the world map, I’ll allow camera movement. And during combat I’ll allow camera movement. But just about anywhere else, I think I’m going to keep a fixed camera. The fixed camera works really well in places like this town. This level just wouldn’t work with a spinning camera.
This new town served several purposes for me. It let me try out a new camera mode. It also changes the pacing of the first chapter and gives me a place to introduce crafting stations.
And of course I had to add crafting materials and recipes, which was really time-consuming, but not as interesting as any of this other stuff.