Only Ones
Author: Veronika Kukk
Problem statement
I have been working on a puzzle game where I need to come up with my own puzzles. Until now I have first tested them on paper and then put them into the game to make sure they work. This process can be made faster by having a level creator where I can easily test out the puzzles. In addition, this could be useful in the future to allow players to make their own new levels.


Project idea
I will be developing a level creator for a puzzle game in Godot. I want to create the following features:
- Level creation UI
- Saving a new level
- Editing a level
I have never made any level creators and I am not familiar with saving data in Godot. Therefore, this will be challenging.
Current state of the game
I have a demo out on itchio. It is a puzzle game where you need to destroy zeroes and have only ones remaining. There are two game modes - one where the player has a limited amount of destruction points and the other where the player can use as many moves as they want. The zeroes can be destroyed when two or more adjacent zeroes are selected and everything that is on top of the destroyed tiles will fall down. The player has to plan ahead on which zeroes to destroy first to not have any solitary zeroes that cannot be removed. There are currently about 30 levels and 15 of them are on itchio.
Technologies and difficulties
I will be using Godot 4.3 because this is the engine where I have developed the game. For the art I will use Aseprite which is meant for creating pixel art. For any layout designs I will either use paper or do them in Miro.
As I mentioned before, I have never dealt with saving data in Godot because it sounds scary. I will need to research how to do that.
Milestone 1 (10.03)
- Research how level creators work (4h)
- Design the initial layout for the level creator (3h)
I searched the internet for anything related to level editors/creators and here is the information I gathered. After that I wrote down what elements I want my editor to have and tried to visualize what I want in my head. Then I used Miro to create very basic layout designs.
Here are the files that anyone can leave comments on for feedback:
Most of the materials I went through focused on the level editors that are used by the players. For me it is more important to create something that makes my work faster rather than something for the player. Therefore in the designs that I made I focused on what I need to have and what I am okay with leaving out. For example I want to be able to add new rows and columns while I am editing and I don't care much about inputting the grid size at the start of creating a level. A lot of the materials put the emphasis on making the level creation fun for the player but I don't need to think of that because this is for me. There wasn't much information about this type of puzzle game level editors that I am making so I tried to follow my gut.
Milestone 2 (24.03)
- Draw new buttons (2h)
- Create the base scene with all of the buttons but no saving/editing functionality (1h)
- Explore Godot node that could be used for the puzzle grid (2h)
- Create the puzzle grid (2h)
Done
Drew buttons
- I made the icons for the save, play, minus, add.
Created the base scene
- Added most of the buttons that I had in my original level layout.
- I decided to not add the 0 and 1 buttons to the bottom of the screen because I realized that pressing those buttons slows my process down.
Explore Godot nodes
- I watched some videos on UI nodes in Godot and did not find any better nodes to use.
- I decided to use my GridContainer idea, that I have in the actual game level, as a base.
Create the puzzle grid
- I added more than promised, because I used the same system as before and did not have to spend time coding that.
- I created the grid that holds the columns of the game.
- I added creating rows and columns functionality.
- I added removing rows and columns buttons but no functionality to them yet. Although, I made it so next week it is pretty easy to implement.
- I added changing the value of the button by clicking on it.
Milestone 3 (7.04)
- Add remove rows and columns functionality (2h)
- Shortcuts for selecting 0 and 1 (1h)
- Improve the alignment of the buttons (1h)
- Add moving around with mouse in the scene (2h)