Long rant on a small game

In Itchy, the player controls a bug that walks on the skin of a giant monster and makes it itchy. The bug tries to eat the food while fleeing from the scratching hand of the monster.

Game map is automatically generated as a Voronoi diagram. In some games, Voronoi diagrams are used to generate natural looking texture and terrain. The diagram visually resembles a reptile skin, but it also forms a complex cellular structure that can be used as a movement constraint. In chess or hex, where square or hexagonal tiling is used, every cell looks alike. But, in a Voronoi diagram, every cell has a different shape and varying number of neighbors. I used the Voronoi cells as the valid positions for the bug.

On the map, the bug is allowed to walk from one cell to one of its neighbors at a time. From top-down view, player left-clicks on the map to make the bug walk to a neighboring cell. Some cells contain food the bug should eat and finish. The bug creates itchyness on the cells it walks on.

Presence of the monster is felt by hearing its groanings of irritation from itching. After every moaning comes the monster’s hand to scratch. The main tension is either to continue eating or to flee the expected scratch. The bug is either eating food or running around.

Itchy does not include a level progression, but has a freeform mode where the player can adjust the difficulty by changing (1) the frequency and speed of monster’s scratching (2) the itchyness of the skin, and (3) the total amount of food available on the map.

Itchy is developed in GGJ at Ankara. Strong points of Itchy are the generated game map, its rich sound effects that count in gameplay and fun factor.

Voronoi as game map

In Itchy, generated Voronoi diagrams are used as a hard constraint for player movement. I emphasize this, because previous applications of these structures such as texture synthesis and terrain generation are (to my knowledge) less directly related to gameplay. But in Itchy, the player directly faces this geometrical structure as a constraint and determinant of her actions. The obvious alternative would be allowing her to walk the bug to anywhere she clicks on the screen. By applying this constraint, we reduce the selection of clicking from 100.000s of pixels, to a choice from merely 5-6 neighboring cell directions. As the bug arrives in each new cell, a different multiple choice appears, necessiating the player to plan her moves in small discrete steps. This also simplifies the actions, removing the need to aim the mouse accurately. This discretization of gameplay is typical in turn-based games, but it can as well be used in fast, real-time interactions. This is like when people (especially children) walk funnily by stepping on one rock, or one paving stone at a time, using the existing segmentation under their feet like a game board. What Voronoi diagrams offer is the procedural, automatic generation of naturally segmented game maps that directly affect the gameplay by shaping and discretizing the player’s movement.

Chess uses square cells and Hex uses hexagonal cells, but as far as I know, there is no game that uses cells of a generated Voronoi diagram as valid player positions before Itchy. I think this is mostly because of the additional algorithmic complexity introduced by leaving behind the regular grid structures that are so convenient to code in the memory blocks of today’s computers. By the way, these regular tiling systems are special cases of Voronoi diagrams, and the algorithm can be used to generate altered or distorted versions of square, hex and triangle tilings. Most of the previous game designs can be adapted to this new structures to get more interesting games. For example, the cells can be painted to different colors to denote opponents’ territories, making it a strategy game with multiple units distributed to several cells on the map. The actual geometric distances can be used as an external cost, as an intrinsic cost of time like in Itchy, or they may not be used at all.

Eternal conflict

In Itchy, the game space is defined by the strange arrangement of skewed green cells, expressing the unwelcoming, alien skin of the giant beast, stressing the smallness of the feeble bug. This effect is strengthened by the startling roars by the monster, and the fact that the player can only see parts of the monster: Either the part of skin the bug is walking on, or the monster’s hand and fingers as an immediate fatal threat.

However, the monster is also disturbed, maybe even more so, as the bug can constantly irritate it by moving around, and it is always possible for it to flee the monster’s scratching (though it can be made harder by difficulty settings).

This is a game about mutual and endless relationship of irritation and threat between two beings that are completely different from each other.

Today, most of the games are about purposedly destroying the (offered-perceived) enemy agents to preserve one’s own homeostasis, usually in a series of missions. Every mission ends with a momentary success, only to be upset by another challenge, another threat to oneself. The conflict is further segmented into individual enemy units that are distributed by level designers to gradually increase the difficulty of the game. This approach creates an economy of challenges and benefits that have precalculated effects on the “gameplay”, making the life easier for the game designer and harder for the level designer. These games are like a TV series where each episode repeats the same scenes and stunts in different looks, but makes it interesting by playing with their quantities, making the chase scene shorter or longer etc. Each episode/mission presents an absolute enemy, which is always defeated in the end, before reappearing/respawning in different costumes to further keep the watcher/player’s attention.

Thief is a counter-example where the guards are only bystanders, thus no agent claims to embody the “enemy”, raising the antagonism to a larger context, thereby stringing the missions together in a long approach to the unreachable. We never know everything, there are several times in Thief that we reach somewhere and the mission objectives change, similar to our bug in Itchy facing a different set of choices at every cell it reaches. This is one of the reasons I did not implement levels and progression. It would create an illusion of success where none is possible.

Another counter-example is Dungeon Keeper where we are the commanding evil hand over our feeble creatures (Itchy probably owes its atmosphere to DK, by the way). We are the evil side killing good guys, our creatures are full of hate and fear, some of our creatures fight with each other… There is no inner balance to begin with, and there are no external enemies other than the monstrosity in our own agency. In DK, you can use the Possess spell to see through the eyes of our monsters, and their visions are either awry or distorted. You Possess the chicken and the creatures eat you. The imps run around, being weak and short sighted, similar to our bug in Itchy. DK presents a game space where no clear cut template applies. This is like expressing the concept of ideology through a game.

Black & White is another counter-example where our primary enemy is your own power and contemption over our people, as we will lose power if we give in to our urge to throw them around. These are games that contain structural conflicts that cannot ever be resolved. You can instantly make an algorithm respawn less enemies, send more medikits or whatever to balance a fake conflict, or series of small conflicts. But in these games, the conflict is implicitly coded into the primary relation between the player and the agents in the game. The intrinsic parameters of this relation must be fine tuned to a certain level that adds to the fun-complexity, and preferably not modified during the game, as the player will adapt and learn these parameters throughout the game. This is like raising the player control parameters (like friction or deceleration speed) to a more global level, to the shape of game-space itself. If the intrinsic skewness of the game space is adjusted well, level design should not be a problem, as the primary gameplay properties of the game will respond fruitfully to different types of simple modifications. This is similar to having fun improvising with a beautiful musical instrument, despite the lack of talent. That’s why we spent several hours in the Game Jam to play and adjust the primary parameters of Itchy, making the bug faster and making it longer to eat.

Itchy is a game where there is only one primary conflict, between the itching by the bug and the scratching by the monster. This conflict is fun to play with, but it is obvious that it will never completely resolve (unless the bug dies). Moreover, the roles of both sides are defined by this conflict, and the existence of both sides feed and depend on the sustanence of this never-ending struggle. Mathematical tools like Voronoi diagrams are only used to reach this goal of creating something meaningful that is original and consists only of core gameplay.

Leave a comment