Postmortem for Itchy

Itchy! is the game I developed for GGJ 09 in Ankara. The theme was “As long as we have each other, we will never run out of problems.” and one of the adjectives “affectionate”, “patriotic” or “missing”.

Itchy 1.01 (for Windows)

Itchy 1.01 (Source code)

(Abbreviated translation from the original Turkish text)

Itchy’s hero is a little bug. It wanders around and feeds itself on a green surface. Nobody knows about the blue things it eats, except that they are healthy. Also, red markings appear where the bug walks. Soon, we understand the meaning of these markings, as the giant green hand of a monster reaches to scratch its skin, on which our bug is wandering. The bug makes the beast itchy, and he reaches to scratch. Purpose is simple: We try to eat blue food, but our bug can die in a scratch if we are not careful.

(I chose “missing” because the bug was always “avoiding and escaping” the beast and also the beast was always “missing the target”. Moreover this escaping from each other “missed” the point, because practically the two were always together.)

When the theme was first told, Ugur, Basar and I started walking around the corridor, thinking. Togetherness and problems made us think of different things: molecules and chemical reactions, things destroying each other, nations that are hostile to each other, lovers that cannot come together… But all these relations showed a mutual and symmetrical structure. Thus, I wanted to use a most asymmetrical relationship, I thought of the relation between parasite-host, and Itchy came out of this idea. Basar slipped to the social themes and from the individual’s relation to the people around her, he decided to cover accumulation and cheering of a crowd. This idea transformed to make the game Hooligan. Ugur, on the other hand, went up to the level of relations between groups of living beings, planning to build an ecosystem. With certain changes, this idea formed the main theme of the game Lucid.

From now on, I leave these games to their makers and focus on my game, Itchy. For detailed information, you can look at the pages of games developed in GGJ 2009 Ankara.

At first, I thought what could happen between a parasite and its host. The parasite could harm the host, gain from it, disturb it… The creature could attack the parasite, shake its body to drop it…  But, firstly, it was neccesary to determine what would the skin be like. I considered a side-view wavy skin surface, but it would limit the player’s movement only to left and right directions. Then I decided on a top-down view, but I wanted to distort the uniformity of this surface, and find an automatic method not requiring level design to do so, as the time was limited.

I saw this image while looking for skin textures in Google:

1272

In fact, this is a synthetic image, but it looks real. This view reminded me of Voronoi diagrams. Read Wikipedia article for details.

voronoi

Maybe Voronoi was used to generate this skin texture, but my intention was to make it more than an image, make it the map of the game. Thus our game area would consist of irregular polygons, contrary to squares and isometric quads in Civilization, or hexagons in RPG games like Fallout. The player would be at one cell center at a time, and every move would be only towards a neighboring cell center. I thought this kind of a topological limitation would make the game more interesting, instead of a uniform 2D plane, where every direction looks alike. However, it could still be turn-based, real-time or user-directed like Snake or PacMan.

Production

My first night was spent on Voronoi algorithm. I believed this idea was original and novel, independent of the resulting game. I used Sjaak Priester’s Delaunay triangulation code for generating the Voronoi diagram.

At last I managed to generate the map. I played on it by drawing a snake-like thing through its cells.  Then we went to our aunt’s to sleep, handing over the job to create to our subconscious. Most of the participants stayed at ATOM in the first night, but we didn’t want to be sleepy at times of important game decisions.

player2I started the second day making the bug. Our hero was not going to be a weird stretchy shape, but a hopping or running little bug. My cousin Sera and friend Ugur convinced me on this. But the moves would still depend on the cells. In brief, every mouse click would make our bug rush from a cell to a neighboring cell. And some cells would contain food for it to collect. But still I did not know how I would make a live monster out of a green surface.

I worked on making the bug walk for some time. The camera had to show part of the map, and follow the bug. Also, the food had to be decrementally consumed. Most of the day was spend on things like these, adding to the action of the game. Thus, our bug was able to happily wander around and feed itself. Now it was time to make the life difficult.

handAt first, I considered putting eyes that watch the bug on some cells, to indicate the monster. But it would not suffice for the monster to look around, it had to do something. It could shake the surface, but the action had to be meaningful in gameplay. With Ugur, we walked the bug, trying to think of something. We thought about the sounds the monster would make. It would groan, roar, and… scratch the places made itchy by the bug! Making this clear, we decided on the sound effects. Irritation, scratching and relief for the monster; rushing, eating and dying of the bug, and the music. We chose Hulla appropriate for the game, with the low sounds for the monster and the high notes for the bug. Then we looked for a silent place to record the sound effects on the upper floors, and found the stairways of ATOM. By making weird sounds to the microphone of our recording device, we formed all the sound effects in the game. By pitch-shifting Uğur’s voice a few octaves, we obtained a perfect monster. The structure of the ATOM building also contributed to the ambience of the sound effects, giving a cave effect. We strengthened this effect with an ambient sound we found, which also happened to hide the noise in our recordings.

We needed a scary hand image to go with the monstrous sounds. As we did not have a visual designer, I sketched something out in Paint .NET. After Ugur added some shadows, it became nicer. With sound and action together, our beast came to live and the game really started to be fun. Now, the gameplay circuit was close. We had to define the rules, and balance the game by adjusting the parameters.

Last hours and “polishing”

I worked through Saturday night as the time was short. The gameplay was ready, and it had to be turned to a finished game. There was no time to make a sense of levels and progression, but at least we could leave the game parameters to the player, by translating them to natural language. At this point, I decided main parameters like the bug’s walking and eating speed had to be constant. The three adjustable things would be (1) the frequency and speed of monster’s scratching (2) the itchyness, or skin properties, (3) amount of food available on the map. Here is the selection screen:

freeform

Until finishing the gameplay, I made everything global and patched up every function in a single main.cpp file. But to insert different screens like intro and menu, I had to completely go through and organize the code. On Sunday morning, Ugur prepared images for screens like intro, game menu, options and game controls, and we built the general skeleton. The player could “Learn” about the controls, “Play” the bug, or start a “Freeform game” to adjust difficulty level, look at “Credits” or “Quit” the game.

In the last few hours, we tested the game to make it more fun and more challenging. We made the bug faster, made it longer to eat, made the scratches a little more frequent… We tried to heighten the chasing in the game. Of course the default difficulty level would not be satisfactory for all of the players, but at least they could change things with the Freeform option. Lastly, we inserted hints to the “Game Over” screen to reduce the frustration of a losing player, and handed the game in.

Itchy’s shortcomings

I told you the game’s development process like a story, wihout distinguishing good from bad. Now, we are going to investigate what Itchy lacks from the critical comments from people who played the finished version of Itchy.

1) “The game’s too easy, finishes very quickly.” In fact the game is not that short, if you increment the difficulty from Freeform mode. Of course it would be better for the game to include a level system and progression. I considered a progress from one beast to another, or through different parts of the same beast, but it would have been necessary to create the material to support this set up.

2) “Instead of the cheery intro music, you could make it more gloomy, similar to the game’s atmosphere.” It seems like a matter of choice, but the thematic consistency and what the player is made to expect is important.

3) “The controls are difficult to get.” Though the game is real-time, we divided the map into several cells. Every click makes the bug walk to the nearest neighboring cell. This requires a different kind of thinking while escaping the monster. This was a feature that made the game different, but we lacked to convey it to the player, getting ourselves so used to it.

4) “There could be different food that made bug faster, slower, etc..” Few different food types could be fine, but we would have to draw, code, explain, test and balance each of these objects.

5) “There are small artifacts in the graphics.” Rendering the game map in a visually satisfying way was one of biggest challenges. We needed to generate a texture that reflected a Voronoi diagram while looking natural. I first tried to make floodfill after drawing straight lines, leading to a mechanical looking texture. Finally, to use for every edge on the diagram, I prepared a static alpha image and pasted it at different rotations and scales to form the map. This image consists of two bands (light and dark) getting thinner to the corners and less opaque to the wings.  It is not perfect, but I couldn’t find a better way.

6) “Resolution is low.” This is partly due to neglection. We could have made the image quality better in a short time, but it first had to come to our attention. However, as the hours passed and we added new things to the game, the game seemed more and more beautiful to our eyes. Sleeplessness also could have prevented us to be critical to our own creation.

Itchy is a little game, produced in 46 hours. When GGJ was beginning, it was told for the gameplay not to exceed five minutes. So, we emphasized the quality of the experience over the amount of gameplay.

Even if a player feels for a moment like a bug wandering on the skin of a green monster in a dark cave, we count it as success.

Happy gaming…

Işık Barış Fidaner
February 2009

To download:
Itchy 1.01 (for Windows)

The game’s site on GGJ:
Itchy @ GGJ

Credits:

Işık Barış Fidaner
Game design, programming, graphics

Uğur Güney
Sound design and recording, visuals

Special thanks to Başar Uğur; Nuray, Hıdır and Sera Göktaş

Music: Hullu (Purple Motion, 1994)

Advertisements

2 Comments »

  1. […] * : GGJ 2010 participant, member of Parazit [1] viralfire.wordpress.com [2] “Postmortem: Itchy” [3] “GDC notes (2) Back shelves” (Turkish) Published […]

  2. […] * : GGJ 2010 participant, member of Parazit [1] About ViralFire [2] “Postmortem: Itchy” [3] “GDC notes (2) Back shelves” […]

RSS feed for comments on this post · TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: