Launch: Brush-Up Breakthrough
Hello, I'm Ryohei. At covelline LLC, we have an initiative to explore the potential of new products by creating user-interactable items from various ideas. You can view the products we have released so far on the covelline Lab page. This time, I will introduce a game I created.
Brush-Up Breakthrough
Brush-Up Breakthrough is a simple puzzle game where you program a familiar household cleaning robot with simple commands like "move forward" and "turn" to clean up trash on each stage. It's completely free to play in your browser, so please give it a try.
Programming
Programming might seem difficult, but this game is designed so that even people with no programming experience or children can play.
This game has five command blocks. You can create a program just by arranging these blocks.
For example, you can clear this stage with just one "move forward" command.
What about this stage? You can clear it with "move forward," "turn," and then "move forward" again.
For instance, a program to move in a zigzag can be created by combining turns and forward movements.
Breakthrough
So far, it was very simple. You can clear all the stages in the game using this method. However, the addition of the "jump command" changes the way you think.
Those familiar with programming may recognize that this command is equivalent to the BASIC GOTO command or the assembly language jmp command.
This command allows you to move the program's position to a specified place. For example, you can create the zigzag movement program with a very few number of commands using the "jump command."
Players are challenged to clear stages with as few commands as possible.
Indeed, this game subtly teaches you the thought process behind programming through a puzzle game. The experience of suddenly expanding the possibilities of what you can do by combining commands is precisely what makes programming interesting and is what we wanted to express in this game.
Development Background
As part of covelline LLC's new product initiatives, we are experimenting with creating products from individual ideas. For this, I chose games as a genre that anyone can play and has a wide appeal.
Initially, I wanted to create a game based on Bristlebots.
Bristlebot
A Bristlebot is a simple toy made by attaching a vibrating motor to the brush part of a toothbrush, commonly made in craft workshops. The brush movement mechanism is well-known in engineering.
The idea was to create a game where you make a Bristlebot in-game and navigate obstacles.
The Challenge of Making a Game
I aimed for a sort of silly game taste, using physics to make a Bristlebot that moves by vibrating brushes, slowly advancing with Unity's joints. However, this theme proved to be very challenging.
It was slow, lacked power to climb slopes, and couldn't turn, making it impossible to realize the concept of overcoming obstacles. The behavior was hard to control due to the physics, and these challenges remained unsolved to the end.
After trying and failing to replace the toothbrush with tires, the game lost its interesting unpredictability.
Switching to a Programming Game
The high-level concept I aimed for in this game was to experience the fun of making things through a trial-and-error loop of "customize the machine → run the stage → customize the machine → ...".
Then, another idea came up: "writing the program for a cleaning robot yourself". This concept of a trial-and-error loop could be directly applied.
Development sped up once the theme of programming a cleaning robot was decided. Here are some screenshots from during development.
We decided to make the cleaning robot look like the "cats riding Roombas" often seen on social media, as a cylindrical robot is hard to orient and lacks charm. Based on concept art generated by ChatGPT's DALL-E, we modeled it using Blender.
Despite not being very skilled at game development, I am relatively good at UI design, so I focused on creating a clean, user-friendly UI. Playing to my strengths made the work go faster and better.
Implementation
While the puzzle game concept wasn't overly complicated, various innovations were incorporated. The game is displayed in 3D, but the robot's position is managed as Vector2Int for simplicity and to reduce bugs. Initially managing positions as Vector3 led to errors in collision detection due to floating-point discrepancies.
Also, based on past experience creating puzzle games, I knew it was helpful to have a separate tool for creating stages, so I implemented a stage creation tool in JavaScript.
This tool was not only useful for me but also for other members of our team to help create stages. In the development version of the game, stages could be quickly tested by copying and pasting JSON from the tile editor.
Release
It took about two months to get the game to a publishable quality, using about one day a week of development time, as it wasn't a full-time project. We did a rush job of localization the day before release, publishing it on itch.io for an international audience and on unityroom for Japan!
This project started with the idea of creating a game as a new product, and I'm glad we managed to make something everyone can play. Development is complete for now, but there are still many stage gimmicks I'd like to create. If the reception is good, I'd like to continue, so please share your thoughts and share on social media!
Files
Get Brush-Up Breakthrough
Brush-Up Breakthrough
Status | Prototype |
Author | covelline |
Genre | Puzzle, Simulation |
Tags | Casual, Isometric, Minimalist, programming, Singleplayer, Unity |
Languages | English, Japanese |
Accessibility | Interactive tutorial |
Leave a comment
Log in with itch.io to leave a comment.