My passion is in programming games and interactive experiences

I am a software developer at Harmonix working on Rock Band VR, and I create my own games like Intern Astronaut with a small team under our group Broken Door Studio.

Skills

cpplogo.png

Contact

Email: seanjhalloran@gmail.com

Twitter: @Comic_Seans

Social Networks

Resume

.pdf resume

.pdf resume

.doc resume

.doc resume

From June 2016 to present I worked as a gameplay programmer on Rockband VR.

Take on-the-job training to new heights!

Intern Astronaut is an immersive virtual reality game for the GearVR and Oculus Rift that enrolls the player as an intern tasked to fly a secondhand spaceship. The configuration of the spaceship is new at the start of every game, so every attempt will feel like the first day on the job!

I am the the one man programming team on Intern Astronaut, responsible for optimizing code and graphics to run on mobile VR, handling cross platform VR input, effects and lighting, spaceship generation and gameplay, and generally taking care of what explodes when. As a member of an indie team, I also wear many hats like, public speaker, PR person, and social media caretaker.

Read about our win at the MassDigi Game Challenge in the Boston Globe.

aim and grapple to branches

aim and grapple to branches

ghost replays of past lives

ghost replays of past lives

swing between trees

swing between trees

high flying action

high flying action

Hikari Hook is a game for the Oculus Rift and Razer Hydra controllers where you grapple through the trees of an ancient forest with dual lighthooks. By pointing and aiming with the Hydras, you can attach yourself to branches with beams of lights, and either swing form them or pull yourself towards a target. I was the project manager and a programmer for the team of WPI students who traveled to Japan for forteen weeks to complete this project in the Takemura Lab of Osaka University.

I managed the team of four programmers and one artist and reported to our lab and remotely to a professor back at WPI. I wrote and scheduled requirements to finish an alpha of the game with several hours of levels to complete featuring:

Razer Hydra

Razer Hydra

  • Player recording and playback system
  • Recording synchronization with a cloud server
  • Voice acted audiologs
  • Intractable swinging physics platforms
  • Wind zones that effect physics objects

Coding for this project, I worked on the player controller and input system using c# in Unity. The theory behind our VR traversal system was that if we created a physically realistic system of in-air rotation for the player that eliminated jerk and limited acceleration, the player would be able to better anticipate and control their motion while flying, and feel more comfortable doing so. Whatever improvements we made to this system though, a significant number of players always found the movement discomforting. If we were to attempt to make a game with swinging mechanics again, we would keep the player's rotation constant, and design a game of smaller scope that worked with this fixed rotation, more of an endless runner and less of a complex platformer.

Travel photo of myself at Miyajima

Travel photo of myself at Miyajima

Soda Drinker Pro for the MyoPro

As seen on...

 
Devs mod Soda Drinker Pro to help stroke survivors recover

Devs mod Soda Drinker Pro to help stroke survivors recover

Soda Drinker Pro helping disabled people through a mechanical arm brace

Soda Drinker Pro helping disabled people through a mechanical arm brace

WPI student hacks ‘Soda Drinker’ video game to help stroke patients rehab

WPI student hacks ‘Soda Drinker’ video game to help stroke patients rehab

 
 

While working as a software engineer at Myomo I reached out to Soda Drinker Pro about creating a special version of their game to be played with our powered orthotic brace the MyoPro. I then used the software tools I created for Myomo to make a version of the game that connects to the Myopro over bluetooth and uses it as a controller. Now, to drink a virtual soda, you can use your real arm with the assistance of a Myopro! This is a great and relaxing experience for new Myopro users to train themselves on how to use the device in a fun environment full of positive feedback.

The MyoPro, a powered orthotic brace controlled by a user's intent to move

The MyoPro, a powered orthotic brace controlled by a user's intent to move

Bounce, a Pong-like game played with the MyoPro

Bounce, a Pong-like game played with the MyoPro

MySpace, a top down space shoot'em'up played with the MyoPro

MySpace, a top down space shoot'em'up played with the MyoPro

Backgammon, played with the MyoPro

Backgammon, played with the MyoPro

The company I made these games for

The company I made these games for

I spent two summers working full time and two school years working part time as a software engineer making games for Myomo, a medical device company who makes the MyoPro, a powered orthotic brace for one's arm that uses EMG to read an impaired user's intent to move their arm and responds by moving their arm as they intend. For someone living with an impaired limb, the MyoPro is a great way to make their limbs functional again, and the games I made above focus on allowing users practice using the MyoPro and train them to find it useful in their daily lives.

I worked in c++, c#, and Unity to make these games myself with assets from the Unity Asset store. This involved designing UI's for connecting the MyoPro to the game, AI's to play against in Backgammon, and the portable tools for making the MyoPro work with Unity.

Using the MyoPro in Unity

When I started on this project, Myomo had a c++ library for receiving streaming data from the MyoPro. I wanted to get this data into Unity's c# scripting environment so I could parse it and use it as input. To do this I wrote a Unity plugin with c++/c# interopability this that abstracts away the complexity of connection management and streaming data over bluetooth and gives Unity a nice set of prefabs for finding new Myopro braces over bluetooth, using braces as input, and controlling the mode of operation of connected braces. I wrote the c++ backend that handles device communication, parsing streaming data, and sending commands to the device, as well as the c# interop code for making this useful in Unity.

Chair Simulator

Flying by the seat of your pants

Chair Simulator is a first person chair experience where turning your chair in real life turns your chair in the game. By turning to steer and leaning back in your chair to accelerate, you race across tops of skyscrapers to travel as far as you can for a high score!

Chair Simulator features the Seat Cushion Controller, the only input device needed to play the game. All of the hardware for detecting the movement of the chair is contained inside the cushion and sent to the game over USB. Inside the cushion, a Wii-Motion+ gyroscope and force are read by an Arduino microcontroller which calculates chair's position and sends this data to the game made in Unity3D.

flowchart.png

I designed and programmed the Seat Cushion Controller, its communication with Unity3D, and its control in the game. My partner on the project created the procedural level generation, the soundtrack, and all 3D models. We completed this project in two weeks for the class Novel Interfaces for Interactive Environments at WPI.

On this sample office chair sits the Seat Cushion Controller used to play Chair Simulator.