We sat down with Game Engineer Alex Beauchesne to learn more about how Diffission came to life.
What was your process for developing Diffission?
Diffission is a product of experimentation, attention to feedback, and a clear vision for player experience. That development process can largely be attributed to the project’s origins.
Diffission started off in November as a Unity port of one of our games from a few years back, Satisfraction - you might notice some mechanical similarities. After implementing the base mechanics and tuning them until they felt satisfying to play with, I began experimenting. Procedural levels gave way to a scoring system, which in turn led to the timed challenge mode. With positive early feedback, I started seriously considering how I might build a larger game out of the prototype. How could it be structured? What mechanics could I add? How did I want players to feel while playing? Out of these questions rose a relatively clear vision that clarified further as development continued.
Having a vision for the player’s experience early on was incredibly useful. It established a context within which all other decisions could be considered. Feature feels out of place with the desired emotion? Cut it or tweak it until it fits. Challenge Mode is too stressful? Adjust it until we’re applying right amount of pressure. Paying attention to the result of my decisions, not only from my own perception of the game but also others’ experiences, helped create what I believe is a largely coherent game.
What's the coolest mechanic of the game?
I have to say the dissolve blocks, if only for their sheer efficiency. They test spatial reasoning, divisibility rules, and even a light form of resource management through an easily-understood ruleset. Highlight a dissolve block to destroy its shape. You might have to destroy some to solve the level. Leave some behind to earn more diamonds. A simple but interesting dynamic.
Say you have a level with seventeen blocks, three of them dissolve blocks. You’re asked to make one-half. By getting rid of all three dissolve blocks, you’re left with fourteen blocks - clearly divisible by two, but you’re not getting any extra points for leaving dissolve blocks behind. You can use a dissolve block to get rid of itself and two regular blocks. Great, now you’ve got fourteen blocks total with two dissolve blocks - again, divisible by two. Better make sure to leave one of those halves free of dissolve blocks so you don’t destroy it by accident. You could also get rid of a single dissolve block and divide sixteen up into groups of eight. Already, in this simple example, there are several skills at play and many ways of approaching the level.
Dissolve blocks are the clearest expression of my desire to make improvements to the game's design that are coupled with the learning objectives.
What was the most challenging thing to program?
I'd say the level generation algorithm was the most challenging thing to program and tune throughout the project. The earliest version was easy to understand but would often generate levels that were impossible to solve without getting a penalty. T-shapes were the bane of my existence until I wrote the second iteration, and the third iteration solved several problems introduced by the special block types. It's not perfect, but I'm very pleased with the results - it's been almost nine months since I started prototyping this game, and I'm still surprised by the kinds of layouts I encounter while playing.
What changed the most over the course of development?
Definitely the overall structure of the game. Really early on, I had thought about structuring the game around "runs" of a fixed amount of procedurally generated levels, unlocking new modifiers by accumulating diamonds across runs. This later shifted to a shop-based progression - players could purchase new block types, modes, and starting difficulties, again with their accumulated diamonds. This stuck around for quite a while, though I was never really satisfied with it - there were several problems with messaging the system to the player, and the way new block types propagated across the modes meant you couldn't go back to easier difficulties if you wanted to. I ended up switching to the current progression scheme in March. Automatic unlocks proved much easier to communicate, and separating block types into their own stages gave players the freedom to go back and work on their skills. While some of the details have changed, particularly with Challenge Mode, it has largely shown itself to be a much better structure.
What do you hope players take away from Diffission?
The most obvious is a stronger understanding of fractions and division. The game provides a visual framework for understanding fractions. Additionally, the endless amount of procedurally generated content helps shifts the focus away from memorization and strict procedure and more towards fractions as a system. Ideally, it guides players towards finding their own ways to solve problems.
The more subtle value, one that drove much of the game’s development, is the value of self-improvement over perfection. I wanted to take the emphasis off perfecting any individual level, off that “get three stars, make no mistakes” mentality, and instead focus on improving your skill with the mechanics over time. That’s why you’re free to skip levels at any point, why you’re allowed to move on even if you fail. The game is not judging you or imposing any serious consequences for failure. There’s no mandatory pressure forcing you to retry until you get the maximum number of diamonds. There’s no requirement that you understand everything right away. You’re free to experiment and learn the systems at your own pace. Retry as many times as you want, skip the levels that look too difficult for you. Success in this game is not a result or an end - it’s an ongoing process you help define as a player.
Any secrets or Easter Eggs to share about the game?
Yep, there's actually a whole chain of secrets hidden somewhere. The first link in that chain is a little difficult to find. I would recommend treating it almost like a summer blockbuster and sticking around after the credits. Beyond that… I’d rather not spoil it. It’s better for players to discover for themselves.
Additional Classroom Information
Diffission is aligned to Common Core Standards. As with all games on FilamentLearning.com, Diffission features a no subscription pricing model, the ability to recycle student accounts every two months, self-guided learning experiences, standards-aligned curriculum, and a teacher dashboard that provides real-time information on student progress.
If you’re interested in volume pricing or implementing a game-based learning program in your school, contact us! We’d love to help you create a custom program that meets the needs of your staff and learners!
Alex is a game developer and engineer at Filament. He believes a good engineer works to give as much creative power to the rest of the team as possible while minimizing the pressure of technical constraints. To this end, he takes a particular interest in systems and tools work.