Base idea:
A puzzle game consisting of ice and snow. As the Snow Queen, make your way through a series of trials to reach the Ice Queen. While you can walk freely on snow, you will slide on ice without stopping. By grabbing snowflakes, the Snow Queen can use her magic to create a line of snow across the ice to help her access new areas. To be developed in Godot 3.2.
Day 1:
Created some very ugly tiles to use for the ice and snow, and grabbed a spritesheet online to use as a placeholder for the player (it's pixel art, which I don't intend for the final result). Did some research into Godot's tilemap functionality to quick create a test level, and used parallaxbackgrounds to create a simple, moving background.
The movement is tile-based (meaning the player moves a tile at a time per step, as opposed to freely), so the movement code was actually pretty straight-forward. Essentially when a movement key is pressed, set the player's destination as the next tile they are facing. The player object then moves itself towards that destination until it is reached, then waits for input again. I next made the ice slippery, which just meant looping through player destinations until reaching either a snow tile or an empty tile.
This was further than I thought I was going to get to today, so I decided to create the snowflake pickup object. This used Godot's basic collision handling to detect when two objects (in this case, the player and the snowflake) intersected. For now the snowflake just disappears when picked up, I plan on adding some sort of particle effect to make it more interesting. When the action key is hit, all tiles in front of the player turn into snow. Since the level is rigged using tilemaps, this was simply a matter of changing the relevant cells in the tilemap to the snow tile.
What's next:
- Add a goal object for the player to reach
- Handle falling off the edge better (right now the game needs to be restarted)
- Make another test level, and work on transistioning between two levels
I'm intentionally holding off on bells and whistles (improving graphics, sound) until the end if I have time, as I have a history of getting fustrated with such matters and abandoning projects as a result.