Gravitation/Passage Analysis Paper

I decided after class on Monday that I wanted to write my analysis paper on the games Gravitation and Passage.  The two games are very similar.  Both were created by Jason Rohrer.  I am thinking about using a compare and contrast approach for the paper.  In my paper, I’d like to identify and dive into some of the themes that are present in both works.  By examining these two works together, I hope to gather a deeper understanding of the underlying messages that Rohrer attempts to convey in his work.

One of the elements of Rohrer’s games I can examine is the way the screen changes.

In Passage, the character you control (and his wife if you choose to marry) start on the left side of the screen.  You have the ability to move the character up, down, left and right through a narrow passage.  Regardless of how much the charater moves around, his orientation in relation to the screen will always move from left to right.  So even if you don’t move your character at all, he will still end up on the right side of the screen.  This is a way Rohrer depicts time.  It gives the player the sense that death is eminent and whatever you manage to accomplish during the game is inconsequential.

In Gravitation, the screen is very small, focussed only on the character you control.  By playing with the child, you can cause the screen to expand, allowing you to view more of the playable surface.  Unlike Passage, the Gravitron map goes upward.  The further upward you go, the more screen visibility you lose.  By playing with the child you can gain back that screen visibility.  However, if you stand still, the visibility will fluctuate regardless of the amount of time spent with the child.  Also, when the screen is small, everything is snow-covered and wintery.  As the screen expands, the snow melts and everything begins to look like spring. Also, at the climax of spring, the character’s head catches fire and gives him the ability to jump higher.  I would like to see what meanings I can draw from these elements of Gravitation using scholarly essays.

  

Another element I can examine for my paper is the way family/companionship enables/limits your performance in the game.

In Passage, you have to chose (almost immediately) whether you’d like to marry or not.  If you chose not to marry, you are able to navigate your character through smaller openings to get stars.  If you get married, those stars are unobtainable because the passages are to slim for two people to fit through.  If you chose not to get married you have the benefit of being able to collect more stars, however, you will eventually die alone.  Rohrer made the game this way almost certainly to show the limitations as well as the benefits marriage and companionship can give an individual.

In Gravitation, the limitations/benefits are more obvious.  By building a relationship with the child, you are enabling more of the screen to be viewed as well as improving the weather and increasing jumping height.  However, by leaving the child and going upwards to collect stars, you lose the vision, weather and jumping power.  The relationship is simultaneously enabling the game to be played further as well as restricting it from progressing too far.

Those are just a couple of themes that I plan to dig into with the help of scholarly essays.  The only roadblock I can foresee is finding Scholarly works on these two games since they are both relatively recent (’07 & ’08).  My favorite thing about Rorher’s games is how simple they are.  He doesn’t try to wow you with mesmerizing graphics or fascinating game play.  He really cuts it down to the bare essentials and forces the player to think about the deeper meaning behind the game.  That’s what I enjoy most about Rohrer’s work and it’s why I chose to analyze it.

Addicting game for iPhones!

Jason Rohrer is an independent video game designer. Rohrer has released 13 games over the last four years. For these thirteen games he made all of the code, graphics, and music. Jason produces some of his games on a broken Dell which was given to him by his sister. He also operates on a used iPod and his wife’s first generation tray loading iMac to make games for Apple products. Jason Rohrer is most famous for the first game that we played in class called, Passage. This game was really confusing for me due to the limits that Rohrer makes. In Passage you only could move in four directions. Although the game was really confusing to me I loved how Jason Rohrer provides the source code for his fans to look at. Out of deep respect for Rohrer I decided to play some of his other games. I really liked his game called PrimRose.

 

PrimRose was Rohrer’s 6th game that he made over the last four years. PrimRose is a tile-based game designed for the iPhone. This game is a little different than Rohrer’s other games. In an interview Rohner stated, “Working on Primrose felt very different, much more like a process of design than a process of making art… The goal in designing Primrose was to make something with gameplay that was as interesting and compelling as possible.” In this game Jason Rohrer developed gravity free chain reactions.

Rohrer got the idea of developing PrimRose from other puzzle games such as Tetris, Bejeweled, Drop7, and Puzzle Fighter.

Every time I played PrimRose I developed another pattern. To play this game you choose where you would like to place the first color block. Next you are given limited choices where you can place the first block’s pair. The music in the background really gets you into the game.

This game is really addictiong! For the second level the blocks have numbers and letters on them. I noticed that I was placing the blocks in the same pattern as I did in the first level, but this time I wasn’t scoring as high. After playing this game for over 45 minutes I decided to download it to my iPhone. I really like playing it on my iPhone due to the touch screen!

Check out this link for more of Jason Rohrer’s games!

Poking around in Passage

One of the first games we played in this class was Passage, by Jason Rohrer. In this post I’m going to take a look at the source code of the game as a paratext which can aid our interpretation of the work. This approach is heavily influenced by Critical Code Studies, from Mark Marino , and a continuation of work I did last semester on a different Rohrer game, Gravitation.

The code for this game can be found on Rohrer’s website. Download the Unix Source, and starting poking around with any text editor.

In the “gamma256/gameSource/” directory we find the meat of this particular game. Most of the files are supporting libraries for “game.cpp,” the main file for Passage, so in this post I will only deal with that file. Diving into a new code base can be intimidating, and I do not yet have a perfect way to understand what’s going on. In this case, I began scrolling down, reading comments and variable names, looking for anything out of the ordinary.

The first interesting piece I found was this:

Lines 524-526:

// track whether we ever met the spouse
// separate from World’s haveMetSpouse()
char knowSpouse = false;

 

The “spouse” is monumentally important in Passage, being the only character other than your own avatar. This seemed like a good starting point, so I searched for everywhere in the file with the word “spouse.” This particular code segment is two lines of comments, denoted by the slashes, and one variable declaration. The comments are somewhat like notes in the margins to remind Rohrer, or any other reader of this code, what the next line does. And what it does is keep track of whether you have met your spouse yet.

It is interesting to note that Rohrer calls this character your spouse, rather than partner, wife, girlfriend, or any other adjective we could think of. You are married to this person, immediately.
In fact, we can pinpoint where in the code that happens.

Lines 1203-1214:

if( ! haveMetSpouse() &&
! isSpouseDead() &&
distanceFromSpouse < 10 ) {

meetSpouse();

knowSpouse = true;

startHeartAnimation(
(int)( ( spouseX – playerX ) / 2 + playerX ),
(int)( ( spouseY – playerY ) / 2 + playerY ) – 2 );
}

 

This code segment looks much more intimidating, but is very straight forward. The first three lines are the logical if statement. The “!” can be read as “not”. So all told it can be translated as approximately “If you have not met your spouse AND your spouse is not dead AND you are less than 10 units away from your spouse” then the piece of code inside the curly braces is executed. If any of those conditions are false, then the computer skips the inside part.

The inside part of course, is where you meet your wife after the “meetSpouse()” function is called. We could go track down the particular logic of that function, but from the name it is clear what it does. Somewhere in “meetSpouse()” and “knowSpouse” becoming true, you are married. How romantic.

Being married does have consequences. Here is an interesting one.

Lines 1229-1234:

int spouseExploreFactor = 2;

if( haveMetSpouse() ) {
// exploring worth more
exploreDelta *= spouseExploreFactor;
}

After you get married, you get double points for wandering around. This is clearly a part of the message of the game. Rewarding you with points for exploring at all is a message, although it is up for debate how significant these points even are. ”Go West Young Man” and seek your fortune. In Passage, the act of seeking is its own reward and seeking with a partner is doubly rewarding.

There are of course emotional consequences for becoming married.

Lines 1167-1172:

if( age >= 0.85 ) {
dieSpouse();
}
if( age >= 0.95 ) {
diePlayer();
}

This is the most famous, emotionally manipulative part of Passage. Those six lines are basically the reason we study this game at all.
They are completely black and white. At a certain age, you and all of your loved ones will die, and theres nothing you can do about it. In Passage, no matter what you do, you will outlive your spouse.

There are some interesting consequences of this. Here are two seperate, but related pieces of code.

Lines 578-579:

// use to slow player motion after spouse has died
char movingThisFrame = true;

Lines 951-956:

if( knowSpouse && isSpouseDead() ) {

// player moves slower
// toggle motion on this frame
movingThisFrame = ( frameCount % 2 == 0 );
}

 
To me, this is exciting. It excites me because I have played Passage several times in the last several years, and never noticed that you slow down after your spouse dies. Perhaps I’m just not very observant, or perhaps I still get emotionally involved by her death, but by reading the code I learned something new about the game in question.