It’s been a while! I had almost forgotten that I was writing this blog, but I remembered just in time to talk about a project that I worked on a couple months ago called Ad Infinitum³.
Ad Infinitum³ was the brainchild of Andy Muehlhausen, who had worked on a project under the same name a couple of years ago. Both projects took about the same form: they were theater pieces disguised as videogames, in which the audience would interact with the “actors” (in this case, us) by playing the game. The game itself was separated into three stages, each themed after a specific conception of human groups, and they each played differently. The audience used their smartphones connected to a local network that we set up to play the game.
Unfortunately, I was not involved in many of the technical aspects behind the game engine — my coding experience wasn’t sufficient to aid in the building of the game engine itself. I CAN tell you that the game was written using a combination of Java and HTML5 (among other things), and involved a node.js server that we used to parse messages sent from the audience’s phones. We stuck with HTML5 because it allowed us to keep the level of tech low on the clients’ side — rather than downloading and installing a proprietary game controller app distributed by us, we could instead just have them connect to a locally-hosted HTML5 web page and use that as the controller.
As far as the design of each phase went, the first two acts were designed during the first iteration, but the third act was completely re-done. The first act, which concerned the individual, involved two modes: the “join” mode and the “eat” mode. Eat mode would allow players to consume other players, killing them and making the player larger in the process. If two players in eat mode decided to attempt to eat each other, the larger player would win the confrontation. The Join mode is where these interactions got interesting — if two players in Join mode collided, they would form a “family bond”, which prevented either player from being eaten by a solo player. While in the family, either player could switch to eat mode and eat others, which was hugely advantageous because it allowed them to consume without fear of being consumed, as they were invincible to other solo players. In this phase, we introduced the main antagonist of the game, dubbed the “creature.” The creature was extremely powerful and could move around the screen very fast, as it was controlled by a Microsoft Kinect tracking our dancer, Alyson. The creature couldn’t consume players in families, but it could break family ties apart very easily, opening players up to being consumed.
The second phase was the “family” phase, where we divided the players into three teams based on their family bonds. We would then flash a shape on the screen and command the players of each team to attempt to fit into the shape. If they were successful in fitting into the shape by our standards, we would “pass” them and they would receive a point. The performances of each team would dictate their role in the third act.
The third act involved all three teams united against the creature in an attempt to kill it. Each team had a different role: the first team had to gather supplies (crystals) and bring them to the corner of the map, where a weapon would charge. The goal was to charge this weapon to kill the creature, and the suppliers were the most direct path to the audience’s victory. The second team were the harpooners, which involved gathering harpoons scattered around the map and shooting the creature, which would leave a harpoon and a place to attach to. The third team’s objective was to attach to these hooks and “pull” the creature away from the other two teams.
An interesting tactic that we used to make the job easier for us (we had 10 weeks to build the whole game) was to take parts of the game that many would think to script (such as moments of cutscene transitions and determining whether the players were in the shape in act 2) and “perform” them ourselves. We had a MIDI controller that sent messages to Ableton, which was hooked up to Max/MSP through Max for Live, and we hit buttons ourselves to change scenes and start cutscenes. This helped a lot! Rather than having to set a specific time limit for each act to coincide with the music, we could simply count down the last couple of bars for each phrase and start the cutscene when the phrase changed, reducing our scripting task from “script the entire play experience such that it coincides with 30-second loops” to “script a 30-second cutscene”. It also made the game much more performative from our point of view, which raised a couple of cool and interesting questions regarding performances in both videogames and theater — if you take a system that’s typically scripted and “un-script” it without telling the audience, what effect does that have? And vice versa: scripting a performance through code will dictate the audience’s experience in a much different way than scripting a performance and having actors act it out.
The soundtrack itself was a lot of fun to write, and it’s easily the most cohesive piece I’ve worked on. The challenge was to have a piece that would loop easily without getting grating, and also be cohesive in a more global sense — I ended up releasing the soundtrack as a 23-minute continuous mix, so I guess I was pretty satisfied with its cohesion!
As far as my job went, I helped in the design of each act and helped with much of the sound design. I also worked on all of the sound effects and soundtrack. Andy was really great about putting a big emphasis on sound design (he’s a sound design major). We also had Dylan Phan help us with the backend coding, and by help, I mean pretty much write faster than I’ve ever seen anyone write. Eric May was our projection mapper and Primary Kinect Operator (PKO). Alyson Van was our dancer for the creature, and she was great with both improvising and taking directions from us. Rick Thomas was our coordinator and helped us keep on track with deadlines/milestones/etc. So there’s the staff list!
And some photos!
More stuff about Four//Four soon, I promise! Very substantial stuff!
Link to the soundtrack: http://spacetownsavior.bandcamp.com/album/ad-infinitum-original-soundtrack