Summary:
In which trails are made; hit-flashes are implemented; a particle system is developed; a stone guardian is (I think) completed; work on that guardian provides a base-model; a worm is partially done; and the player-avatar acquires damage-effects.
Greetings and salutations!
This entry's screenshot shows some new effects, and an indication of an attack used by an enemy:
Aside from a miscellany of fixes, changes, and suchlike, this past fortnight focussed, broadly, on perhaps two elements: enemies and special effects:
Starting with effects, three new special effects were developed in the fortnight just past: a "trail" effect, a hit-flash, and a particle system.
Of these, the trail-effect is perhaps the most salient. In short, this effect allows me to create an animated path, such as in the wake of a moving object.
And indeed, that is its primary purpose: along with some new variables stored in the locations of the game, it gives the player-character a trail of whatever's appropriate to the area: dust, for one, and I'm hoping that it'll extend to a water-wake, too!
Here you can see it producing fine dust in the Treasure Hoard Moon:
And here it is in my testing area, with different parameters:
Perhaps the least interesting of these new effects is the hit-flash: it's simply a set of bright spiked rays, of varying directions and lengths, that appears suddenly and then dwindles and fades away. It's intended to be used specifically to convey physical damage--things like hits from material weapons, and suchlike.
And final of this set of new effects is the particle system.
Now, Panda3D actually does have a built-in particle system. However, I've long found it a little disagreeable to work with, and it has a few limitations--of which perhaps the most salient to me is the lack of an easy way to create a sudden, single burst of particles. Further, I think that I suspected that a simplified, shader-based system might perform better.
So, I created such a thing: a simple particle system that uses a shader to place and render its particles.
And indeed, it does seem to perform a little better than the built-in system (or at least did prior to some of the later changes to the system; I haven't tested it subsequently). Further, it has a mechanism for burst-emission!
Here it is producing some particles in my testing area:
Moving on to enemies, I believe that I have now completed one more enemy--or a draft thereof, at least--and nearly done so with another.
That first enemy is a stone guardian, a tireless, sleepless watcher over things deemed by someone to be important.
As a game-foe, it is essentially a melee opponent, albeit a strong one: it primarily chases down the player in order to attack with a powerful stab of its stone spear. However, if the player manages to stay at range, it has one more ability that may help it to close the gap: a dash-attack that both moves it rapidly forward and does significant damage in a broad swathe along the way.
(And as you may see above, this enemy uses all of the above-mentioned effects: a double trail-effect for its dash; hit-flashes on landing hits; and particles on taking damage or being destroyed.)
The stone guardian's particle effects have been tweaked a little since the above gif was made--here then is a still of their revised appearances:
And as the stone guardian is the first humanoid character thus far developed for the game, it also provided a base-model that I intend to use for other humanoid characters.
And the second enemy is a creature endemic to the Treasure Hoard Moon specifically: a worm that eats the gold stored there. And should a threat approach--such as the player--it rears up and spits globules of damaging aqua regia at the interloper.
And finally, the player now has some indicators of damage being taken and of the state of being at low health. The former is a particle effect--one that I'm not yet quite happy with. The latter, on the other hand, uses the extant fire effect to create a ring of crimson flames around the player's vessel.
And that, then, is all for this post--stay well, and thank you for reading! ^_^