Posted August 12, 2024 by agoo
#3d #indie #low-poly #mind-bending #minimalist #puzzle #rolling #singleplayer #short
Before Starting
Before diving into this one month project, my idea was to create a small puzzle game. I fondly remembered a Flash game from my childhood where you rolled a block through various puzzles. After searching online for a while, I finally found it—Bloxorz. My plan was to retain the core mechanic of rolling the block but to remove elements like the switch blocks, orange blocks, and teleporters from Bloxorz. I felt that the later puzzles in Bloxorz leaned more towards exploration rather than reasoning. I wanted to create a game focused on static puzzles centered around rolling, similar to The Witness. In theory, you should be able to deduce the solution at the start of the puzzle, while incorporating some mechanics that don’t disrupt the static nature.
Week 1 (July 8 - July 14)
This week’s focus was on quickly experimenting with game mechanics and evaluating the development difficulty and time required.
Initially, I planned to create a true 3D block-rolling game, supporting blocks of any shape and 3D puzzle. While implementing 3D rolling was relatively simple, writing a solver proved challenging, and the algorithm’s performance was taxing. Based on my experience with the TD Laboratory project, I knew that once problems enter the 3D space, their complexity increases significantly. Therefore, I quickly abandoned this idea and adopted a mechanism similar to the original Bloxorz, where a long block rolls on a plane. The cleverness of this mechanism lies in the fact that, although it appears 3D, it can be entirely treated as a 2D problem.
For the mechanism design, I mainly referenced my old project, PuzzleMino. At that time, I summarized some common puzzle variations, such as walls, symmetry, multiple start points, multiple end points, and colors (all inspired by The Witness, which is truly a treasure trove of puzzles). Given the time constraints, my goal was to implement four mechanisms (I ended up completing only three) and to create 40 puzzles (I finished 31).
I decided to focus on puzzle design, so I removed non-essential features, including the start menu and the level selection page, opting for a linear progression of puzzles.
The image below shows the implemented rolling controller.
The next image demonstrates solving unconventional moves using the A* algorithm. However, I didn’t delve into the corresponding heuristic function, so the calculated path might not be the shortest, but it can determine if a solution exists. If the path is not displayed, it means there is no solution.
The final image shows the simple implementation of the random puzzle generator, with a roughly 10% chance of generating valuable puzzles.
Week 2 (July 15 - July 21)
The main task this week was to support the wall mechanism.
Week 3 (July 22 - July 28)
This week’s focus was on enhancing the visual appeal.
The image below shows the ultimately discarded water effect.
Week 4 (July 29 - August 4)
The image below shows the near-final art style of the game (there is a color flickering issue during level transitions in the image).
Week 5 (August 5 - August 8)
The image below shows the sword puzzle.
Review
Although the mechanics and the number of puzzles didn’t meet my initial expectations, and the level selection system is overly “minimalist,” with the selection system being somewhat perfunctory, the game feels very complete. All the necessary content is there, and I’m personally very satisfied with the quality of the puzzles. For those who enjoy challenging hardcore puzzles, give it a try—it’s free!
I estimate that about 80% of the project’s time was spent on puzzle design. Good puzzles require inspiration, iteration, and refinement; it’s a highly creative process that can’t be rushed by simply adding more hours. To improve puzzle design efficiency, the only way is to keep designing puzzles and accumulating experience.
Regarding the method of making a game in one month, I find it very effective and highly recommend it. Not only does it ensure the game gets released smoothly, but it also helps alleviate my anxiety about sharing.
A Better Way to Share Dev Logs
I used to write dev logs regularly, but the content was mostly superficial and lacked depth, which wasn’t meaningful for others and didn’t offer much value for my own review. If you want to write good logs that share techniques and insights from the development process, it requires a significant time investment, which can disrupt the development flow and cause you to focus too much on things outside of development.
In previous projects, I had many techniques and insights I wanted to share, but I always felt that these would continue to evolve as the project progressed. Writing a good article was too mentally exhausting, so I kept postponing it, and eventually, it never happened.
After releasing my last project, Mota24, I found myself writing two sharing articles very efficiently. There might be two reasons for this:
With a strong desire to share, I wrote the articles in one go, which was very satisfying.
After finishing the Bloxpath project, I have similar feelings, but even stronger. Besides this review article, I also plan to write an article summarizing puzzle design techniques. Stay tuned if you’re interested in that!
Future Plans
I originally planned to start my next indie game development project (also a one-month endeavor) at the end of the month, but I’ve had some new ideas recently, so everything is uncertain. However, the next two weeks will definitely be a break. A month of intense development is quite exhausting, and I need some time to recover.