Meet BB8 is a demo made exclusively for the Star Wars Celebration convention, displayed at the Starlight Foundation booth to help kick off the announcement that Starlight and Lucasfilm are teaming up for Star Wars Force For Change.
The demo allows the guest to "meet" BB-8 in an authentic Star Wars environment, where their beloved droid comes into the room and hangs out with you for a few minutes.
I designed and implemented this demo, and collaborated with a small team of developers to polish the demo for general public use. I used procedural animation to create a foundation of locomotion and lookat capabilities with which to build more complex behaviors. I then designed intuitive inputs based on the guest's body language to drive an AI behavior tree, resulting in a memorable experience that was a highlight of the show floor.
Millenium Falcon Ride
This yet to be named ride for Star Wars land involves riding on the Millenium Falcon! Holy cow!
I made some small contributions during the preproduction phase of this project, consulting and creating prototypes. It was such a pleasure to meet real-life Imagineers and feel like I helped make magic happen at Disneyland, however small.
Sources of Inspiration for Accessibility in Virtual Reality
One of the great privileges of my career was to attend a Star Wars Celebration convention as an employee of Lucasfilm and share Trials on Tatooine with the fans directly on the show floor of the convention.
Over the course of the convention we served thousands of guests at our booth. This was effectively the largest single public playtest we had performed, including individuals with conditions that exposed usability issues in Trials on Tatooine that created barriers for some guests.
This experience affected me profoundly, and sparked an interest in researching what other industries and disciplines have done to address accessibility in physical and virtual spaces. The result is a GDC lecture Sources of Inspiration for Approaching Accessibility in VR, written with my colleague Hannah Gillis, along with an online survey conducted in collaboration with Alice Wong. The lecture focuses on taking inspiration from architecture, theme parks, and film set design.
Trials on Tatooine
Trials on Tatooine is a "virtual reality cinematic experiment" set in the Star Wars universe for the HTC Vive. This project was an incredible experience to work on. It was the first time any of us had attempted to tell a coherent story in a virtual reality context.
My personal highlight has to be the work designing and implementing the feel of the iconic Star Wars light saber. Prototyping with a Oculus DK2 and Razer Hydras before we could get hands-on with some of the first developer kits of the Vive, working with a rendering engineer to get the blur trail of the blade just right, collaborating with an audio designer to create a procedural sound system, figuring out how to make deflecting incoming laser blaster fire feel fun... but also cinematic and authentic to the movies... and can you make it feel like you're rewarded for using the force? It was a truly multi-disciplinary effort and my definition of dream-job material.
Trials on Tatooine required a great deal of traditional gameplay programming work, helping out with breaking down a linear movie-style script into a gameplay flow chart, identifying branches and additional dialog needs. It was a really small team so there was lots of opportunities.
Oh and we also crammed the Millenium Falcon model from ILM in there somehow. Might be a vert or two missing from the movie version, don't tell anyone!
Transformers: The Last Knight VR
This Transformers VR project was fun because we were allowed to just be as bombastic and rediculous as we wanted. Explosions, slow motion, robots, fast cars, guns blazing at all times.
My favorite system I worked on for this project was a collaboration with level designers to choreograph visually in the level editor the desired path for chasing enemies to take, and be able to define what state of transformation (ie car or biped) they should be in at a given moment. The AI would figure it out from there!
Broken Age: Gameplay
Broken Age is a classic adventure game with a modern approach. As a gameplay programmer I was responsible for taking the artwork, animation, writing, and puzzles our talented team generated and integrating it all into a cohesive gameplay experience; To implement the vision behind the artwork, and create an interactive world for players to take part in.
This meant coding new features into our engine, prototyping game mechanics, scripting levels, authoring dialog and cutscene assets, and writing tools for artists.
Being on a small team meant constant communcation with teammates was crucial, and afforded me many opportunities to have an impact on many different areas of the game, from taking part in puzzle brainstorming sessions, to discussing sequence blocking with animators, to discussing workflow challenges artists face.
Broken Age: User Interface
I was the principal programmer for Broken Age's title and in-game menus, writing a lightweight 2D UI framework in our MOAI-based engine. I worked closely with art directory Lee Petty to integrate the artwork created by designer Cory Schmitz, and polished the final interface with procedural animations and sound.
Broken Age's UI has a light and playful feel to complement it's bright and saturated color palette. Dynamic objects in the UI have an implied weight. Everything is animated to slide, spring, and bounce into place according to a certain heft that just feels right.
This UI is incredibly flexible. It is displayed on computer monitors, tablets, and phones using the same artwork, using the same codepath. It is localized in English, Italian, French, German, Spanish, and the active language can be changed at any time.
Mnemonic was a prototype made for Amnesia Fortnight 2014. I really loved working on this project! The art is beautiful and moody, and the gameplay is quite unique.
You play as a young psychiatrist in a late 1940's San Francisco, set in an alternate universe where the atomic bomb was never dropped. The gameplay takes place in a series of incomplete memories, which must be reconstructed. The clues are made via loose connections using "dream logic." An abstract shadow reminds you of an object in another dream. A lantern becomes the headlight of a car.
One thing I love about AF is that you get to explore roles you have not had the chance to try before! So in addition to gameplay programming, I got to contribute a lot to the puzzle design and story on Mnemonic. I am especially proud of the "skyline key" puzzle.
My first project as a freshly minted programmer at Double Fine! I learned so much working with an extremely talented team to bring this unique adventure game to life.
As a gameplay programmer on the Cave I worked on the opening and closing levels, and the Twins' and Knight's character-specific levels.
This a project I worked on for the summer of 2008 in the Shared Reality Lab at McGill. I am working on a graphical simulation of different ground materials to augment a tile system built for simulating the haptic perception of stepping in different materials. I worked mostly with Alvin Law under the supervision of Professors Jeremy Cooperstock and Paul Kry.
So for example, say the tiles were running in "snow mode," then my simulation would render a snow landscape on top of the tiles. Using motion capture, I will track the user's feet and deform the ground material based on how much pressure they exert on the ground, effectively creating footprints in the snow.
A heightfield is dynamically deformed based on the forces exerted on the tiles. The deformation is a fast and efficient GPU operation, yielding a realtime simulation for our environment. A paper describing the system can be found here.
Another student project, going through the NeHe tutorials teaching myself immediate mode OpenGL, written in Java using the Light Weight Java Game Library. It's an investigation of music and rhythm and how these aspects can be linked to effective gameplay.
This project went unfinished, but it was very fruitful in terms of learning the basics of OpenGL, and implementing a beat detection algorithm.
Java Pong Clock
This was a fun student project, the concept is from a piece of artwork I saw. I wrote it in Java using some weird built in 2D graphics library. Two AI driven opponents play pong, and the score of the game reflects the current time.