Mondrian Dynamics Part 2 – Risk Reward

“Difficulty” is a tricky thing to describe when it comes to videogames. Plenty of games have one base-level of difficulty throughout, and it can’t be adjusted, so you better get good. Other games follow the Easy/Medium/Hard model (or sometimes “I’m too Young to Die” through “Ultra Nightmare!”). Recently we’ve seen the creation of assist modes such as in Celeste or Mega Man X Legacy Collection to remove nearly all punishment for failure, and make playing the game easier for newcomers. No matter what though, Difficulty has traditionally been a static variable for one or two mechanics, such as Enemy or Player Health, or the availability/strength of items. In Mondrian, Difficulty is dynamic, and nearly every system in the game adjusts depending on how tough you are.

But seriously, how tough are ya?

When beginning a new game, players can select from 4 difficulties: Relaxing, Easy, Medium, or Hard. Increasing the Difficulty has the immediate, visible effect of opening up progressively tougher variants of each level, and in fact, in Mondrian Maker, you can iterate the Difficulty in order to change your level’s Block Types and Modifiers, with up to 4 different variations per level (Obstacles are not allowed on Relaxing, but Modifiers are). The game will always load a variant less than or equal to the current difficulty; for instance, if you’re playing on Relaxing, you will only see Relaxing variants, while if you’re playing on Easy, you’ll see both Relaxing AND Easy variants. Essentially, the player is rewarded with more content for taking the risk of playing at a higher difficulty.

Difficulty also has some effects on the levels themselves. Gray Blocks take multiple hits to destroy, and the higher the difficulty, the higher their health. Splitter Blocks break into multiple, Regular Blocks when hit, and the higher the difficulty, the more Splits they create. Modifiers are not directly linked to the Difficulty value, but you can adjust their timers manually per Difficulty to create tougher effects, suited to your personal tastes.

There are, of course, other systems at play related to Difficulty, such as how likely a Gem is to spawn (lower chance at higher Difficulties) and the maximum value of those Gems (higher value at higher Difficulties); how many blocks it takes to make the Speedball go faster; how much the Breakerball heals when hit with the Paddle or a Gem is collected; how much the Stretch paddle scales when a Gem is collected and how quickly it shrinks the rest of the time; or how much action is allowed on screen before the ball will gently rest in place, giving you a chance to take in the particles and collect Gems. Essentially, we are making sure as many game systems as possible are tied to the Difficulty value, where appropriate, in order to scale the entire game and not just one or two systems.

Of course, this is just the Difficulty value. The Game Speed value, selectable under Gameplay Options instead of at the start of the game, can also be seen as somewhat of a Difficulty value, though it has more of an impact on the feel of the game than on the mechanics. Whether the game is played on Slow, Middle, or Fast has no effect on, say, the chance of Gems spawning, just how quickly they’ll try to fly out of the field. Game Speed is tied to anything with movement, including Paddle Spin, Stretch Paddle scaling, Ball speed, the groove rate of blocks, and even the soundtrack! That’s right, if you’ve never changed the game speed in Mondrian, you may want to just to hear totally different tunes.

By using Difficulty and Game Speed in a dynamic fashion, and tying them to every game system instead of just one or two values, Mondrian is able to scale pretty nicely across a broad spectrum of skill levels. It’s still a tough game, and we’ve even heard some complaints about the toughness, so we’re in the process of adjusting some math. Our goal here is to not make the game too easy – we still want it to be a challenge! – but to smooth out some curves of unexpected behavior, speed up the end of levels, and make moment-to-moment gameplay act a bit more predictably.

Since Cuphead launched in 2017, there’s been a debate about how difficult games should be. Hidetaka Miyazaki, designer of the Dark Souls series, has said that his goal is to give players a sense of accomplishment by making them overcome tremendous odds. Some designers like things that way, setting how the game plays from beginning to end. Some designers like adding in difficulty settings that change one or two variables throughout the game, while others take the halfway approach, having an “envisioned” mode but offering some assist options if players need them. I like to think of difficulty as a number, not an adjective, and seeing how math can shape an experience. In the case of Mondrian, I’ve always wanted players to be able to play the game how they want to play it. Want to chill out at 3am with some slow jams and pretty colors? Mondrian can do that. Want a high octane action/puzzle experience that puts Polybius to shame? Mondrian can do that too. We want Mondrian to have a little something for everyone, but with a core ruleset. No matter what speed or difficulty you’re playing on, we want you to get familiar and comfortable with those rules, but more importantly, the relationship between those rules. Much like Mondrian’s color wheel, our aim is to make the game’s dynamics work together in harmonious beauty.

Mondrian Dynamics Part 1 – Color Theory in Action

Everything is expressed through relationship. Colour can exist only through other colours, dimension through other dimensions, position through other positions that oppose them. That is why I regard relationship as the principal thing.

– Piet Mondrian

Mondrian – Plastic Reality is an orbital brickbreaking game where players explore the lives and works of five modern artists. The game is the sequel to our surprise hit Mondrian – Abstraction in Beauty from 2015, and one of the goals with this one was to take a greater level of control with regards to the game’s dynamic generation. Instead of just randomizing everything, we wanted to create a harmony in the randomness. This started with color, and the relationship between colors in particular.

Mondrian – Plastic Reality’s Color Wheel controls the visual relationship between all colors on screen in the game.

The Color Wheel is the simplest method, in art, of defining colors, no matter how we are classifying them: warm or cool, bright or dark, bold or soft. Mondrian also has a color wheel, but defines its color through code instead of on a palette. The additive RGB color space covers 16,777,216 colors (256 red * 256 green * 256 blue). However, for the purposes of scoping, Mondrian, like a classic color wheel, has 12 colors: Red, Orange, Yellow, Chartreuse, Green, Spring, Cyan, Azure, Blue, Violet, Magenta, and Rose. When defining each individual element’s color in-game – blocks, the paddle, the background, etc. – we set each color channel – R, G, or B – as the Primary, Secondary, or Saturation channel. Effectively, the Primary and Secondary channels control the brightness and hue of the element, and the Saturation channel controls how gray it will be.

Red, Rose, Magenta Adjacent Color Scheme

A max lightness is set for the entire level (randomized between 127-255), and then each element’s Primary channel is randomized between 64 and that max lightness. The secondary channel, if needed, is then set to 1/2 the Primary. The Saturation channel is then set to a Random value between 0 and the Secondary channel’s value. The result is a wide range of colors, though more in the range of 7 million colors than 16.7 million.

Blue, Yellow, Orange, Azure Tetrad color scheme

Before colors are set, however, the game must know what colors will even be allowed. This is performed via a dice role for visuals. Color Theory comes into play with the Analogous Color Schemes, where the game can determine if colors should be Monochrome (one color), Adjacent (three colors in a row in the color wheel), Triad (three colors that form a triangle in the color wheel), or Tetrad (four colors that form a rectangle in the color wheel), and even whether or not to include Compliments (opposite color to the starting color). A few other schemes are included as well, including De Stijl (Red, Blue, Yellow, Dark Gray, Light Gray), Grayscale, and Totally Random. Using this, one randomized starting color, and 128 possible levels of brightness, the game is able to generate 18,179 possible color schemes. If you also multiply the background being able to be a full color or one-color variant, that’s over 36,000 possible looks for a level, via instant dynamic generation alone.

Recreating Johannes Vermeer’s Girl with a Pearl Earring in Mondrian Maker

However, if dynamic generation isn’t your thing, you can also paint your levels. Painting your levels disables dynamic color generation on blocks, effectively meaning those blocks in your level CANNOT be randomized and will always be generated with their painted color, no matter what. This can be used to create “pixel art” works, abstract puzzles, pseudo 3D effects, whatever your creative heart desires.

Pseudo-3D achieved via Mondrian Maker’s painting tools

Dynamic generation is a core part of Mondrian, but in order to achieve an aesthetically pleasing balance between the hand-crafted and the computer generated, it’s necessary to set limits and define relationships of color in the code. Most designers think that dynamic generation is limited to gameplay, such as random level layouts in games like Nuclear Throne or from prebuilt chunks like Spelunky, but our goal is to create dynamic systems that truly stretch the bounds of what art can be. Manual & automated creativity can work together to create beautiful imagery. Relationship is the principal thing.

Azure, Green, Orange, and Rose Tetrad color scheme

If you enjoyed this post, please consider Wishlisting Mondrian – Plastic Reality on Steam or grabbing an Early Access version of the game on itch.io or GameJolt.