Sharing progress on a game I decided to work on. The game will be based off of this cover:
I kind of figured there might not be much of a game here actually. I kind of just want you to relax on a moving train in the sunset. Some ideas would be to change the lighting as time goes on (maybe weather?), maybe have passengers come in and out but I really don't know what I'd do past that. I brought a composer friend (Cowberry) on board to do some music and she immediately suggested we do lo-fi tunes, so think of this as a slightly interactive 'anime beats to study' to thing you see on youtube a lot. Inspirations include pretty much any Shinkai film and 1041uuu.
I will also be attempting to make something in Godot for the first time and use Sprytile (also for the first time) which is an addon for Blender (also a program I'm learning for the first time). I'm probably going to keep things simple as a result, likely confine it to one train car (or at the most multiple train cars that are just duplicates), not sure how far the exploration/interactions would go yet.
I contacted the cover artist to let them know what I'm doing and they're looking forward to it.
I started with the bare essentials a walking sprite and a mocked up area made in Sprytile. I eyedropped the exact colors from the cover. I want the angle to be pretty close to a side-scroller but in perspective so you can see both the outside and where you're walking.
Eventually I decided to add lightning but uh, not too impressed with the native options.
I looked into cel shaders for Godot and luckily there's a free one already made. Also luckily it has an base/dark image to plug in. 3D Sprites in Godot have a material override tool that lets you apply shaders to 2D elements, this is something I did not expect! There are some challenges to get it working right though, automatic billboarding no longer works and you have to pay attention to Render Priority (just like y sorting in gamemaker).
To explain further there's a dark and a light sprite, the light simply blends between the two. This makes it so the artist can better control the contrast and in general do very minute details to things like eyes glowing or the white outline I wanted to preserve. This can also apply to the environment which I add to the next gif. Really my goal is to gain the advantages of 2D "intention not result" lighting along with the dynamic parts of 3D. Though there's a bunch of game ideas I have with this style in mind, so it's also a learning process.
But what really gives something its depth are cast shadows.
Remember when I said I had to use a material override? Well in order to do shadows I had to duplicated the same 3D sprite disable material override and use cut-out transparency, it's then set to invisible with the shadows only option. I also set the animation frame the same as the base sprite. Each time I think I've hit a brick wall I always manage to find some sort of work around. I'm impressed with what Godot has built in such as sprite sheet support.
To go further and beyond though would be to add normal mapping to the sprite itself so the shadow "bends" around the forms so it's not lit like a flat card. But I think that's a battle best left for another project.
I could spend forever on this but it's time to move on and do the backdrop next maybe even start actually modeling some stuff. Stay tuned.