2/18/2011Version 0.002 released. This version is a response to feedback that the game feels as though it swings between being playable and being impossible too quickly and incorporates the following modifications:
- When the player has 3 or fewer counters no new rectangles spawn.
- No more than three rectangles will ever spawn at a single turn break.
- If the total number of rectangles in the painting excedes the level's high rectangle count parameter no new rectangles will spawn.
11/16/2010Version 0.001 released, see downloads pane. Version 0.001 lacks the following:
- Audio of any kind: I have ideas about what kind of music and sound I'd like but unfortunately I have no skill in this department. If anyone is interested in implementing Mondrian's music contact me via the email address listed above
- The title screen and intermission graphics are not implemented.
- Alternate play modes. I want to have a speed round at level transitions.
11/15/2010Screenshot. Created this site ... stats via
Ramblings on the Aesthetics of Videogames, etc.
I've worked on Mondrian on and off over the course of the last few years. Mostly it was a project to learn the basics Direct3D programming e.g. how to set up Direct3d for a 2D game, but I also wanted to make concrete some of my thoughts on videogames.
In particular, Mondrian is intended to be a comment on the videogames of the 80's and what differentiates them from the games of today. The original goal of Mondrian was to develop a game that was genre-less, minimal, and addictive. In other words, my goal was to out-Tetris Tetris and as a bonus I thought it would be nice if the game, because of its mechanics, couldn't have been implemented on 8-bit era hardware. If you think about it, this is exactly the sort of thing you don't see: a game that is extremely simple but which requires modern computational power and therefore necessarily isn't a rehash of some old game for the Apple II.
The extent to which Mondrian succeeds at being addictive is not really for me to decide but it is genre-less in the same way that Tetris was genre-less before it had created the Tetris-clone/well-game genre or the way that Pac-Man was genre-less before it created the maze game genre. I also think it is minimal in an almost mathematical sense: the gameplay basically consists of the user four-coloring a graph.
I got the idea for what became Mondrian while working on a modular origami project, constructing a thirty unit Sonobe ball such that each unit was one of three colors and no two units of the same color were adjacent. Getting the coloring right is slightly too difficult a problem to figure out by trial-and-error while assembling the model, so I drew out the unit adjacencies on paper as a graph. I felt coloring a graph was kind of fun and started thinking about a graph-coloring puzzle game in which the underlying graph evolved as the player attempted to color it.
I got a copy of Graph Drawing: Algorithms for the Visualization of Graphs by Giuseppe Di Battista et. al. because my original idea was to render the graph being colored using a forced-directed method, in which the edges of the graph act like springs and the vertices like point masses; however, leafing through the book I became intrigued with orthogonal representations of graphs and the compaction of orthogonal representations, and started thinking about the works of Piet Mondrian.
Mondrian presents the user with a field of rectangles which the user must color such that no two adjacent rectangles are the same color. The user manipulates a circular cursor with the mouse, applies the cursor's current color by left-clicking, and changes its current color, between one of four colors, by right-clicking.
When the user has successfully colored the rectangles such that no two rectangles of the same color are touching, the painting is complete and the user moves on to a blank painting. Blank paintings are composed completely of white rectangles but the color white is not special in any way: white can be applied like any other color, and white rectangles must not be neighbors for a painting to be complete.
The painting evolves as the user colors it. Generally, areas of the painting that are correctly 4-colored will temporarily remain stable and then die away, while areas that are not 4-colored will spawn more rectangles.
The player scores points in Mondrian in any of the following ways:
The player can score points by applying a color to a rectangle such that (a) the target rectangle becomes four-colored and (b) the applied color matches the currently displayed bonus color (see above diagram).
Chaining behavior is possible if the player successfully scores bonus color points more than three times in a row without applying a color that does not score points. Chained bonus color points cause the base bonus color factor to be multiplied by a power of two determined by the length of the chain.
The player may receive an aesthetic bonus after completing a painting. Aesthetic bonus is calculated based on the following factors:
Minimum Number of Rectangles: the completed painting must contain at least ten rectangles to receive an aesthetic bonus.
Percent white: the percentage of the painting's area that is white must be higher than a minimum value, and paintings with high percentages of white score proportionally higher.
Aspect Ratio: for a painting to receive an aesthetic bonus the ratio between the number of apparent rows and columns of rectangles must be greater than a minimum value, and paintings with aspect ratios closer to one, i.e. paintings that look square, score higher.
Number of Colors: it is sometimes possible to complete a painting using fewer than four colors. In such cases, if the painting fulfills the requirements necessary to receive an aesthetic bonus, it will receive a much larger bonus.
After completing a painting, the player receives a time bonus proportional to the number of bonus counters he or she has earned. Bonus counters are discussed below.
- Bonus Color
A game of Mondrian ends in one of two ways.
Mondrian displays an analog clock on the panel to the left of the painting. Above the clock are a number of circular counters. A counter is deleted every time the clock's hand makes a complete revolution. When the clock hand has made a revolution but there are no counters left, the game is over.
However, the player may earn bonus counters upon completion of a painting. Each painting has a hard-coded difficulty rating representing the number of clock revolutions the painting is expected to take. The player receives a number of bonus counters equal to the difference between the number of full clock revolutions actually taken to the complete the painting and the difficulty value of the painting.
Maximum Rectangles Exceeded:
A game of Mondrian will end if the number of rectangles in the painting exceeds a maximum value. Currently the maximum number of rectangles is set at fifty.
The current version of Mondrian does not indicate how close the player is to losing due to a high rectangle count in any way. Although, it is far more common to lose by running out of time, this can be considered a bug in the current version and I hope to add a rectangle count GUI item in the future.
At a given a moment while the game is being played, a possibly empty set of rectangles is dynamically growing into existence and a possibly empty set of rectangles is shrinking out of existence. The growing rectangles will all reach their target size and shrinking rectangles will all completely disappear at the same time; in this sense the evolution of a Mondrian painting is discrete. Each discrete step of rectangle creation and destruction can be referred to as a "turn" of Mondrian.
Every ten paintings of Mondrian comprise a level. Paintings in a level share similar game parameters that effect the way the paintings evolve. Mondrian's major game parameters are the following.
Low/High Turn Duration:
The Low/High Turn Duration parameter controls the turn duration approached as the number of non-four-colored rectangles in the painting becomes low/high. The particular values considered low and high numbers of rectangles are currently hard-coded into the game as zero and thirty, respectively. The interpolation between the non-four-colored count and turn duration is close to linear but has asymptotic behavior at the ends: the game will never quite reach the low or high turn durations.
Generally, there is a direct relationship between turn duration and the non-four-colored count, i.e. the game gets faster as the player does better.
Low/High Birth Rate:
At each turn break, each non-four-colored rectangle may spawn an adjacent blank rectangle. The probability that this will happen is controlled by the level's Low/High Birthrate parameter. The actual value of the birthrate probability is determined by interpolating the non-four-colored count between the low and high values as discussed above.
Low/High Death Rate:
The death rate parameters are analogous to the birth rate parameters but control the probability that a properly four-colored rectangle will be deleted during the next turn.
Number of Rectangles:Defines the initial number of rectangles in a blank painting.