We SCRAPPED A HALF-YEAR OLD SYSTEM to up our shadows and light ambience visuals in GODOT (& learnt some lessons along the way) - How does it feel?


Hey all! We had been fighting with the shadows the last half a year or so, never really coming to a solution. We wanted to provide the absolute best and use fully dynamically-shaped shadows. After MANY (and I mean it) tries, it always had something going wrong. FYI, Godot 3.x has absolutely no built-in support for this kind of stuff at the precision we were attempting to reach.

The tediousness of this dynamic shadow system was probably the biggest bottleneck in our progression. And to top that off, I've always felt like we won't ever get to the end of it this way. Something was just always missing from working 100% functionally. So yesterday I proposed we actually bite the bullet and stop clinging to it. We never had to do anything like this with any game code that had a fair amount of effort put into it, so it was hard to actually eject the concept.

And so, last night, we came to a compromise to just use black dots and stretch them arbitrarily, based on the character/prop we're depicting.

We went from this:

Dynamic shaders aim to depict shadows - Imagine if we also used them on trees! Yeah, it would look off if we didn't hand-pick each one's offsets, even with a better modulated shadow.

TO THIS:

Arbitrarily stretched spheres represent shadows

Unfortunately for us, Godot 3.x doesn't have complete support for directional shadows that conform to the sprite, thus we had all the trial and error to try and make it work. But eventually, maybe this new solution is better, as we had no consistent methodology to like, display shadows above ground props like a rock.

This means, if we passed by a rock, the shadow would partially be covered by it. And yeah, that's quite unacceptable to begin with. I don't wanna get too technical, but some character sprites/animations would've also required unique rotations, scales and offsets for their shadows. AND even then, it wouldn't work from every angle.

We really wanted to pioneer the visual world while having Godot 3.x as a tool help us, but one can't always have it all. Sometimes you gotta let go of things if they don't work out, and find alternatives. That's what we did, and recreated this shadow system with like 5-10% of the time cost our old shadows consumed.

Thanks for giving this a read, I hope it was as worthy as for me to get this out of my head. If you wanna know more about our game, please pay our Discord a visit :) We're gonna look for testers shortly, and it'd be awesome to have you around!

Have you ever had any similar situations where you were overly biased to keep a feature that has given you enough hard times? How did you overcome it?

Get Odyssey of Dremid'ir ALPHA

Leave a comment

Log in with itch.io to leave a comment.