In Circuit Slimes you play as an Electrical Slime Engineer trainee, your job is to repair and complete circuits by deploying your slimy assistants and wrangling them in just the right way to get the job done.
To complete levels you must conduct the electric slimes from their power source to their respective outputs. In order to complete circuits, you use different types of slime to alter and add components on the board. Will you be capable of mastering these little creatures and getting them to collaborate?
This Demo was developed during the first semester of 2020, by myself and three other software engineering IST students for our game development methodology course.
However this isn’t the first incarnation of Circuit Slimes, this project began as a GameMaker prototype that I and another team-member submitted for GGJ 2020 based on the theme “Repair”. Previously I wrote about my experience making the 2D prototype, you can read all about it here.
Later that same year, joined by our two other colleagues, a new version was built completely from the ground up using Unity3D. This version was presented in a local games showcase here in Lisbon, MOJO 2020 at the end of May.
2D Prototype made for GGJ 2020 (GameMaker)
Mobile 3D Demo presented at MOJO 2020 (Unity)
When it came to gameplay we were pretty faithful to the original design since we got pretty good feedback and it seemed to hit the goals we had set out to achieve. Instead of reinventing the base concept, we focused on perfecting the game loop and polishing the user experience. I’ll briefly summarize the core mechanics.
Electric Slimes, Flow from power sources (Batteries) to power outputs (LEDs). To beat a level the player must make sure that the path is clear for them and also create/repair any broken connections.
Solder slimes are friendly creatures, whose only drive is to consume solder droplets. When they do, they create a circuit tile beneath them. The player can place these droplets strategically in the board to indirectly incentivise the slimes to create/complete circuits.
Water slimes are the complete opposite, they hunt electric slimes and create short circuits breaking connections. So unless the player distracts them with some water droplets they will completely ruin the circuits. In some situations, this can also be used to the player's advantage.
For this project, although I worked a little bit all across the board (gameplay systems, level editing, menus, etc), I was also responsible for the visuals, including all game assets (models, textures, and shaders), player interactions, and technical art.
Early art tests proved that we could achieve something very close to the original in 3D, so we started exploring cartoon-style shading to reduce the detail needed and make our art pipeline faster.
Facial animation shader tests
I also created a way to control the expression of the slimes so we could add a bit of animation and personality in a pinch!
Slimes blink and bounce, and they can express a couple of different emotions depending on what situation they are in.
By this point in development, we were already pretty pleased with the way things looked but we came across an important challenge. Phone screens really made it hard to see a slime’s face. So the solution was to refine the style further. We made the outlines thicker, gave the slimes new textures, and made the faces much larger, facing up at the player.
A slime IS 100 % face by definition anyway 😊
I was tasked with developing a couple of key features for the game, among those were camera control, touch input management, and board interaction
Mobile camera controls
The game was built from the start with the primary focus being mobile platforms but we also wanted fully functional builds for PC and Mac.
As such, we had to create pretty robust input management and make sure that all platforms were considered when implementing any sort of interaction.
Another interesting challenge was figuring out a visually pleasing and efficient way to draw the solder lines.
Due to the nature of these connections I had to implement an automatic tile-set algorithm to dynamically decide which tile to choose at runtime.
This ended up being quite an elegant solution and gave us really simple and clean lines that players could read easily.
Solder connections dynamic tile-set
Grid placement and collision visualization
I also created a way to telegraph to the player where pieces could or could not be moved at any given moment.
With this system, a piece can have any shape and take up as many grid spaces as we like, and, below the model, a little visual cue is drawn using color to indicate if the piece is colliding with any other existing piece or not.
Procedural board generation system
We discovered, through playtesting, that players were having trouble editing the board because of the slight camera angle we had chosen. A simple but effective solution was to change the camera perspective between play and edit mode, this was a great quality-of-life change and it also helped distinguish between the two modes a little better!
Yet another example is the game board itself. To add some more visual polish and really drive home the “electrical engineering” thematic, I worked on a procedural PCB line and port generator. These additions are purely cosmetic but they gave a little more context and helped sell the setting of the game.
I’m quite proud of my contributions to this project, and how well it all turned out in the end.
The playtest feedback that we gathered was very positive and it was extremely rewarding to see people have fun with the game we worked so hard to make!
Original Article Published on Medium