Warning: Table './jgarbe_jacobgarbe/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:62:\"Non-static method view::load() should not be called statically\";s:5:\"%file\";s:61:\"/home/jgarbe/public_html/sites/all/modules/views/views.module\";s:5:\"%line\";i:906;}', 3, '', 'http://jacobgarbe.com/passingon', '', '18.118.33.98', 1734791197) in /home/jgarbe/public_html/includes/database.mysqli.inc on line 134

Warning: Table './jgarbe_jacobgarbe/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:134:\"Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state)\";s:5:\"%file\";s:82:\"/home/jgarbe/public_html/sites/all/modules/views/handlers/views_handler_filter.inc\";s:5:\"%line\";i:607;}', 3, '', 'http://jacobgarbe.com/passingon', '', '18.118.33.98', 1734791198) in /home/jgarbe/public_html/includes/database.mysqli.inc on line 134

Warning: Table './jgarbe_jacobgarbe/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:130:\"Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state)\";s:5:\"%file\";s:82:\"/home/jgarbe/public_html/sites/all/modules/views/handlers/views_handler_filter.inc\";s:5:\"%line\";i:607;}', 3, '', 'http://jacobgarbe.com/passingon', '', '18.118.33.98', 1734791198) in /home/jgarbe/public_html/includes/database.mysqli.inc on line 134

Warning: Table './jgarbe_jacobgarbe/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:154:\"Declaration of views_handler_filter_boolean_operator::value_validate() should be compatible with views_handler_filter::value_validate($form, &$form_state)\";s:5:\"%file\";s:99:\"/home/jgarbe/public_html/sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc\";s:5:\"%line\";i:159;}', 3, '', 'http://jacobgarbe.com/passingon', '', '18.118.33.98', 1734791198) in /home/jgarbe/public_html/includes/database.mysqli.inc on line 134

Warning: Table './jgarbe_jacobgarbe/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:130:\"Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state)\";s:5:\"%file\";s:77:\"/home/jgarbe/public_html/sites/all/modules/views/plugins/views_plugin_row.inc\";s:5:\"%line\";i:134;}', 3, '', 'http://jacobgarbe.com/passingon', '', '18.118.33.98', 1734791198) in /home/jgarbe/public_html/includes/database.mysqli.inc on line 134

Warning: Table './jgarbe_jacobgarbe/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:126:\"Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state)\";s:5:\"%file\";s:77:\"/home/jgarbe/public_html/sites/all/modules/views/plugins/views_plugin_row.inc\";s:5:\"%line\";i:134;}', 3, '', 'http://jacobgarbe.com/passingon', '', '18.118.33.98', 1734791198) in /home/jgarbe/public_html/includes/database.mysqli.inc on line 134
Passing On | Jacob Garbe

Passing On

Passing On is an Android game created during the TOTEM Mobile Mixed Reality Game Jam Hackathon in 2012. Working with three other people (Marta Clavero Jiménez, Jon Back, and Sahar Vahdati), we created a game in four days utilizing both the geolocational asset creation tools and the networking protocol developed by the TOTEM team in association with FIT Fraunhofer.

The Story

The TOTEM summer session took place in Birlinghoven Castle, where we spent our week programming under the gaze of historic oil paintings and statues. As such, our concept couldn't help but bear the fruit of our environment. One of the greatest strengths--or weaknesses--of compelling geolocational games is their close tie to surroundings. We decided to run with that, while resisting the urge to create something exclusively concerned with history.

Thus, the story is one of modern-day ghosts. The current inhabitants of the castle have found that mobile devices have increasingly come under the influence of three restless spirits. To rid himself of the nuisance, the castle chancellor has secured the services of three paranormal investigators to communicate with the troubled ghosts and somehow help them pass on to peace.

The investigators use their mobile devices to navigate the historical space of the castle and its surrounding gardens to discover the memories lost to the ghosts, and in re-connecting them with their past, heal the fracture within them that is preventing their passing on.

The Game

Our team was intensely interested in the opportunities presented by asymmetric gameplay. We incorporated it into the game by having six people divided into three teams: one ghost and one investigator each. The teams compete against each other to be the first to pass on.

The Investigator has no interface on their mobile device. They talk to the ghost through a phone call established by the system. They receive "knocks" from the ghost in response--one knock for yes, two knocks for no, or perhaps one knock for left, one knock for right. They follow the ghost's instructions, which lead them to a specific location. At that location the phone displays an impressionistic haiku communicating a part of the ghost's story. The investigator reads the text to the ghost over the phone. The ghost then gives them directions to the next location.

The Ghost has a mobile device displaying a Google map with a point representing the location of their Investigator, and the location of the memory site. They receive communication from the investigator through a phone call, but they can only respond by "knocking" via clicking a button on the interface. Through establishing a common language (as well as some trial and error) they guide the investigator to each location. When the investigator reads them the text, they click on the "Memories" tab where they must enter in a three-number combination to solve the memory, and move to the next one.

Once three memories have been solved in this fashion, the investigator and ghost alike are directed to meet at a single location, where the player guides the ghost through the portal so that they can pass on.

The Technology

Passing On uses the ZebroGamQ protocol developed by TOTEM to manage the game session, take care of sending GPS and knock patterns between teammates, and keep the game state synchronized across teams. One of its advantages is that it caches messages, so that if a mobile device loses communication at some point, the missed messages are delivered upon re-connection.

We also made use of TOTEM Designer, which allowed us to easily create assets and parse them into the program after exporting to XML, and TOTEM Scout, which allowed us to precisely tie assets to a location in the field using a smartphone.

The Experience

Three teams were used for the initial playtest conducted immediately after finishing the first development sprint. We were constrained by a couple factors in this test, namely the inability of the devices' telecom provider to provide data and voice at the same time, which necessitated the use of walkie-talkies to simulate that functionality. Data connection and GPS signal on the phones was spotty or non-existent in certain areas, so there were also frequent lapses of ghost-to-player communication. If the game were to take place in a more urban area, these problems would become less of an issue.

Teams were directed by developers in how to begin, and told there would be a half hour limit on the length of the game. The investigators took off in their respective directions, and the ghosts commenced directed them. Interesting modes of direction soon emerged, as the teams established their common language. Some of these included:

  • One knock for yes, two knocks for no, and the investigator asks directions
  • One knock for left, two knocks for right, three knocks for stop, and the investigator starts walking
  • Other binary options such as "on / off the path", "in front / behind the castle"
  • The inclusion of "three knocks for I have no clue"

One developer walked from ghost to ghost, informing them when a team had solved one of their three riddles, in order to increase the sense of urgency. Because the captive audience was around fifteen people, we ended up having two to three people working collectively as one ghost for the two to three people acting collectively as the investigator.

The teams seemed to solve the riddles in a fairly evenly matched manner. When one team completed their last riddle and won the game, the other teams were at two and one riddle solved, respectively.

The use of hand-written haikus on aged paper placed in bottles at the locations was a time-constraint solution so that we didn't have to tackle communication of proximity to the players, etc. However, it ended up being a very compelling aspect of the game. The nebulous, virtual nature of the communication was grounded by the physicality of that game mechanic, which provided a nice contrast. Unfortunately, as many developers have noted, this also constrains the game to a curated experience requiring set-up and a specific time and place.

All things considered, feedback was largely positive. Teams were at first bemused by the asymmetry of communication, but found ways to work around the obstacle in a manner that gave them a feeling of connection with their partner, and a sense of ownership / agency in their experience.

Future Development

As the development team spans countries, one goal to pursue will be finishing the functionality that will allow the fractured memories to be purely digital. This will allow the opportunity to set up game locations that will require custom content, but will be available at any time. It will also afford the ability to instantiate new games without needing to place physical objects, or worry about the removal of those objects by players or others outside the game.

From there, improvements to the UI and communication protocol such that disconnections are signaled to the player are all on the list. It is our hope to get the game to such a state that it can be played by different people around the world.

My Google+ profile