Level Editor, Smooth Animations and Art Overhaul(days 4,5 & 6)


welcome to the 3rd devlog! firstly, lets go over why I'm now waiting 3 days to do a devlog:

1)Im lazy and dont want to make masses of devlogs XD

2)This means the devlogs are more interesting, allowing me to ignore small detailed and pick out the "good bits"


to start day 6, I just played the game, getting a feel for how it all plays and making:

An "S" shape farm:

And, a "H" shape farm:

Next up, I started the animations. I wanted all my animations to happen at the same time and was aware of "instant pushing" with the update order, and that unless I do things differently, it would cause multiple animations.

To counter this, I decided to spend hours on a complete system overhaul (lots of work xd)

My "block mover" node:

And it finally working for animations!

I had alot of debugging ahed:

fixing ticks happening before animation finishes

groups moving like normal and tiles only moving once(the other moves get culled), also note the animations update the tiles


Finally after a few things I dont mention:

The animations and new system works!

Yet this won't stay for long... I decide it sucks having it like this and I would prefer to go back(this makes me consider using a git repo and version controll)

And its back to normal(also with arm rotations)! animations are now done completely seperate to the game loop, allowing for optimization later.(this is a lie - each frame waits for animations to finish)

Cool demo of the instant moves, but heres where I realize a few bugs in the arm animation:

I desperately felt like a break from all this coding and debugging, and deciding to try to make visuals like in the concept(drop shadows and a grid background).

I thought of adding a seperate, offset tilemap with a shader making it black, but decide that would be inneficent and to use one post processing shader to add drop shadows to the image.

I start by trying somome else's outline shader directly on the tilemap. (The issue is that 1)the shader's fragment doesnt run on pixels not in filled tiles, and 2) expanding all the verticies with vertex function on a shader isnt ideal(they would need to access the other verticies). 


After this I realize I need to use post processing. I read alot of godot docs and watch a video of how viewports work, and then manage:

Viewports are perfect, having a width and height and offset, and rendering all the nodes in that region onto a texture you can apply a shader to! (Apps in godot have a viewport node built in that you can only access via code, to render to the window)

And I must admit, I yoiked this drop shadow shader from the internet:

https://github.com/godotengine/godot-demo-projects/tree/master/2d/sprite_shaders


Next up: alot of time spend making a checkerboard shader:

AAAAAAAND FOR THE MOMENT OF TRUTH:

Side note - I had vsync off to do stress test of the ticking, but left it off.(the shader ran at 2800fps).. later realizing this is why my gpu was whining XD

I did some thinking over how to visually show what group something is in. I wanted to do autotiling and an outline for each, but reading the docs didnt show a way to change the autotiling. After making this, I learnt that you can override the neighbour tiles

My way also means it looks lovely and colourful!

And for obvious reasons, making this animated was painful(I will save you the detail, and just provide a few gifs):

After dealing with these problems, I thought about where to take the game before going to bed.

One feature I loved the idea of was an "update order reverser", allowing instant pushers to go both ways


(I love watching this gif XD, i might make something like this for my background)

Playing around with godot's built in post processing(environment node) I think mine definatly fits the style much better.

I do a little "concept" of how the ui could look, realizing something super basic would be perfect:

To make the buttons, I watch an amazing video on UI themes:

https://www.youtube.com/watch?v=3AGGBZVVVTw

Buttons done entirely using ui themes(I love this feature)

My shader's code I backed up before deleting(I wanted to change the background to be rendered with an image, because working it out real-time is useless.

And we go straight to the second gif of the level editor. (The rotation buttons were not functional when I made this.)

And here, I find a gap in all the minor changes I talk about in discord, so I'll take the lazy route and just send the finished video:


The last change to make after the video is adding an individual tick button, and big changes to how the update loop works(now uses signals in godot)

This wraps up day's 4, 5, and 6.

My observations are that I have little to no talk about, actually I think no talk about the coding or how anything works, some of wich is interesting, insted just showing parts of the game with screenshots and gifs. Tell me wich you prefer. Another thing Im unsure about is whether to make devlogs more or less frequently. less frequent means even less detailed and less time and effort for me lol

Get my game thing lol

Leave a comment

Log in with itch.io to leave a comment.