fidaner

LD14

Let’s create!

Hi everyone!

I used SDL, SDL_image, SDL_mixer, SDL_gfx, SDL_ttf to develop Itchy! in Global Game Jam. Probably I’ll use them in LD too.

I hope we choose a flexible theme that can lead to a variety of creations.

Good morning!

Eating and thinking of walls and dooms.

Breakfast

I will survive.

Comments

omer
14. May 2009 · 05:30 UTC
I missed this kind of breakfast so badly.

Flowing through

Ideas anyone?

prototype

Inspiration: The scene from Shining where hallway is filled with blood

The Shining

It’ll be less disgusting, I promise.

Comments

18. Apr 2009 · 09:30 UTC
Is that a fluid simulation? What code did you use?
18. Apr 2009 · 09:45 UTC
I modified Stam’s code (1). It is a really short and relatively simple code for 2D fluid simulation.
18. Apr 2009 · 14:55 UTC
Ah, yes, I’ve seen that solver before; I was guessing that you were using it 😉

Gas chamber

In the beginning is an empty room with little people (white boxes) in it. The poisonous gas starts to flow downward from the top. The people start running from the gas (red boxes) when they smell it. They die after some time (black boxes). You build additional walls to manipulate the gas. By manipulating the gas, you can poison people differently, and make them flee to different directions. The control is somewhat indirect. This can be the level editor, or it can rather be the gameplay itself.

prototype2

As you can see, this is still a toy. When it becomes a game with a backstory, you’ll probably have to kill some guys and rescue others. There’ll be some sound and graphics too, hopefully.

You can test and comment on the prototype:
Download fidaner-LD14-prototype1 (Windows)

Keys:
Enter – Restart
LMB – Put wall
RMB – Delete wall
MMB – Put agent

I’m open to new ideas too.

Tags: fluid, LD14 - Advancing Wall of Doom, prototype

Comments

ManTis
18. Apr 2009 · 14:43 UTC
Politically incorrectness ftw
jolle
18. Apr 2009 · 15:09 UTC
This looks pretty cool
georgek
18. Apr 2009 · 15:12 UTC
I really like the look of the gas against the squares and walls.
18. Apr 2009 · 15:13 UTC
I didn’t even consider politics, I was only concerned about the mechanics. Hmm… Maybe it will be only about rescuing other prisoners. Then, this prototype shall be the level editor.

Thank you :)
18. Apr 2009 · 15:16 UTC
i think that looks pretty cool :) away from windows atm, so haven’t got to see it in motion yet.
18. Apr 2009 · 16:47 UTC
Thank you! I’ll surely make it into a game with your support…

The Final Solution

The game is the story of a different prisoner every time you start it. It is a short game with seven scenes. Your progress is not saved, but current scene is restarted when you die.

The Final Solution

Download “The Final Solution” (Windows)

Download source code (MSVC, C++)

Tags: final

Comments

dessgeega
24. Apr 2009 · 10:49 UTC
i wasn’t able to find this on the voting page! where are you hiding?
24. Apr 2009 · 18:14 UTC
:) just search for “fidaner”
dessgeega
24. Apr 2009 · 19:36 UTC
i don’t know why i couldn’t find you before! thanks!
omer
14. May 2009 · 06:07 UTC
Perfect atmostphere and cute game play. But collusion detection is weird sometimes. Quite short game and even it has different stories each time, it doesn’t feel like to play again.

The Final Solution – Postmortem

If you did not play my game “The Final Solution”, you can get its win32 binaries and source code from my previous post.

This is my first LD.

I recently attended Global Game Jam [1], which was another 48-hour game competition held in 53 places around the world. We were 48 developers in Ankara divided into 13 teams/individuals, working like bees in our cubicles. My two friends joined separate groups and I started to make a game myself.

Having people around to test your game really changes the development process, as in the case of Itchy! in GGJ [2]. However, as LD is a solo competition, and I wanted to allocate my full attention to it, I did not see anyone during LD, and did not go outside except for getting food.

To mention a few lessons learned in LD;

  1. A designer’s perspective conflicts with a programmer’s perspective. If you focus predominantly on subjective game experience (which I did), you acquire a less objective mode of thought that prevents you from rigorously perfecting your code. Thus, you’ll either make elegant classes/interfaces and end up with a regular game, or you can tweak and play with the game elements until it becomes something unique and consistent, and end up with a spaghetti of enums and ifs.
  2. You should keep a journal to keep track of your development, and be open to comments to keep your development on track; especially if you are alone (like me).
  3. Tools and tech can be reused, generators are okay, but the content is part of the art. So you must use original content (and sound, as I had to).

In the beginning was void

I woke up a few hours after the theme was announced. I tried to think of ideas. I joined #ludumdare, briefly looked at the blog posts of the first hours, and I was surprised to see how early people started prototyping and sending screenshots. One of the first posts by Comtemno was about magma [3], which reminded me of this fluid dynamics code [4] I wanted to use in a game.

At first, there was just a piece of smoke that grew and filled the screen. I painted it red, and it reminded me the flood of blood filling the hallway in The Shining [5]. I put new tiles to form a container, and modified the fluid simulation to make the blood fill it and pour out of it, adding gravity. This required me to modify the simulation so that the walls bounded the fluid. I had no idea of the gameplay, but this seemed to be a good direction for the theme. However, the code did not simulate a liquid but a gas, so I had to find a compatible scenario.

Gas, walls and agents

Gas and “wall of doom” reminded me of gas chambers. So, the container became the topdown view of a corridor instead, and the gas diffused from one direction to the other through the corridor. There was also people inside, and they had a basic AI that allows them to flee from the gas if they smell it, i.e. the gas density gets over a critical threshold. It took me some time to implement the agent behaviour and collision detection. Agents approximate the gas density gradient from a few grid cells around them, and then flee in the inverse direction. Agent positions are floating point coordinates, but walls and gas densities are based on an underlying grid, so is the collision detection, and that’s why the collisions seem a bit wrong.

As I was programming the agents, the game felt like going out of control. I had no idea where would the player fit in this picture. I was playing with the gas by adding/removing walls, so I thought this could be what gameplay is about. The player would be changing the wall structure to kill some agents and rescue others. I even added a sink object that could be put to suck the gas. At this point, I released the prototype and asked for ideas from friends and LD community.

You can escape the gas, but not its connotations

Then, I saw ManTis’ comment in favor of the “political incorrectness” the game acquired, and also one of my friends wondered if we would be “playing Hitler trying to build the most efficient gas chamber?” Eventhough making a simulation of genocide did not really pass my mind, my prototype had evolved into one before my eyes (I’m serious. Well, I know about Hitler and fascism from movies, but it’s not like being taught about it in history lessons). The holocaust connotation was so strong that it required no explaining. In fact, there was only a poisonous gas and some living beings escaping it. It could as well be fish escaping pollution, vampires escaping light, fairies escaping a dark cloud, etc. Whether it was the poverty of my imagination, the strength of the connotation (see Godwin’s law [6]), or the non-existing artwork to suggest an alternative interpretation; I was actually facing the necessity to finish and submit a game that eventually presented itself as the simulation of genocide.

The big decision was putting the player in the shoes of a regular agent, i.e. a prisoner escaping the gas. This introduced a huge emotional load to deal with, so I needed a soundtrack to capture the atmosphere. There was an ambient audio file I previously saw on freesound.org when we were looking for a background sound for Itchy [7]. I did not know original sounds were required, so I picked this sound for the game, and put it on VLC player in loop mode until I finished the game. I like these kinds of atmospheres, like in Dungeon Keeper or Thief. I wish someone had made an ambient sound generator that I could play with (though I’m not sure to what degree generated sounds can be considered original). I know some pd, and I’ll be playing with supercollider, so I may come up with a generator some time.

Seeking meaning in despair

Anyway, there was this little problem about the game: What meaningful aim could a holocaust victim possibly have? Rescuing other people would clearly be an unrealistic fantasy. Achieving some kind of score would be ridiculous… So, it could not be an aim of collecting or winning, but only of simple exploration. This reminded me Mirror Stage [8], where you lit up places by walking around and touching boxes to complete a level. I decided to adopt this as touching people, other prisoners. The idea was the player having the courage to get close and see people just before they died. In the beginning, other prisoners were colored identical to the walls, so they were the part of the prison around you until you got close to them and each of them lit up, as a person like you. The color metaphor triggered other ideas, like randomly generating a particular color and name [9] for the player, which was elaborated further while writing the story.

The game obviously required no explanation for the context and the gas, but the little colored boxes needed some meaning to relate to. I chose a font from GLUT’s functions, and began writing sentences on a black background. I changed the level#.txt files to include an explanation for the level and two ending messages in addition to the map. About my decision on narration, my example was Judith [10], in which all the story was told in first person, the gameplay did not involve a challenge other than exploration and collecting pieces of the story, yet managed well to put the player in the shoes of the character(s).

A rejoice in death

In this framework, I now needed an actual storyline that spanned a few levels, was compatible with the social-historical facts and meaningful enough for the player to pursue. I wandered in pages about the gas chambers in Auschwitz, looked at pictures taken in former chambers [11], searching for something that I can represent in my game. The best I could find was a report about prisoners’ lives in Auschwitz by Witold Pilecki [12], the only person known to go there as a volunteer. He organized prisoners to improve their life. Anyway, it’s a long story. Here is a passage from that report that felt like the key to make a meaningful game [13]:

“Many prisoners, while going to the gas in a car, cried to his friend recognized in the row: ‘Hello Johnny, hold out!’ He waved his cap, he waved his hand, he was going in cheerful spirit.

All in the camp knew where they were going to. So, why did he rejoice? It can be supposed, he was so fed up with what he had seen and suffered, that he did not expect to see anything worse after his death.”

Thus, the title, “Final Solution” primarily refers to Endlösung [14], but it has a secondary reference to the death as a final relief for the prisoner.

The variations in story

When you start the game, four things are generated for the character: A color, a name, a number, a daily activity (“..when they got me”), and a close relation to the person that is being looked for (mother, daughter etc.). Other than these, the story is identical. What the game switches is only who the story belongs to, not the story itself. I avoided major variations, because the story was already about the fading of these particularities of the subjects in their shared fate.

As the game evolved into what it came to be, I played it many many times in all its stages of development. To me as its developer, the game gave a weird feeling that it lived in a separate reality, condemned to an endless repetition. It went on and on, like the ambient sound in the background, each time about the similar fate of a different person. The game stubbornly held these made-up stories against me, as if it acquired an attitude of its own. Every time, the story began like this with a new name:

Story of Peter
-I was reading the paper
when they got me.
It was not unexpected,
but still a surprise.
They brought me here,
to this building.
Shown this door,
where can I go?

And after each time it started, it demanded the player to direct the character’s actions to what must happen.

Character as mind, player as body

I believe that, in the game, there is a divide between the player who determines the actions of the character’s body, and the character’s mind facing and interpreting the consequences of these actions. This divide is emphasized by the duality between story and action. The player either controls the character, or follows the story through his/her mind. This looks like the common conflict of immersion: What does the player want? A character to relate, or an avatar to embody? I think you don’t have to solve this conflict, you can directly incorporate it to enhance immersion. After all, there are times when we feel a divide between our mind and body. Especially in the extreme circumstances of a unpreventable fatal threat, we can imagine a body that cannot help but feel a useless anxiety about being there, and a mind that frees itself from self-worries. In the game, despite the obviously desperate conditions, the character (as the mind) rarely uses negative words and never mentions the gas directly. This avoidance inversely effects the player (as the body), forcing her to undertake the anxiety that is missing from the character’s mind.

To conclude

I owe to everyone that played my game, found it interesting, dramatic, depressing, not-fun, or any other adjective that bears a strong meaning, as it was what I sought to achieve.

fidaner

~~ References ~~

  1. Global Game Jam
  2. Itchy! The adventures of a bug fleeing the very creature it is walking on!
  3. Comtemn’s post
  4. I used Jos Stam’s fluid simulation code
  5. The Shining by Stanley Kubrick
  6. Godwin’s Law @ Wikipedia
  7. archi_soundscape_cavern2.wav by Argitoth
  8. Mirror Stage by increpare
  9. I used name list for 2009 in this page
  10. Judith by increpare & Terry
  11. Auschwitz Scrapbook on Gas Chamber
  12. Witold Pilecki @ Wikipedia
  13. Witold Pilecki’s Auschwitz report
  14. Final Solution (Endlösung) @ Wikipedia

Tags: post-mortem, postmortem

Comments

Uskudarli
30. Apr 2009 · 05:13 UTC
Very interesting to read. Thanks for writing this up and sharing. Hope to see many more of your games.