Personal Work


LifeCycle: Tour de Dance

 

Introduction

LifeCycle: Tour de Dance is a procedurally generated endless cycler game where the player must avoid traffic and break the record for longest uninterrupted cycle. The player must avoid traffic and other dangerous obstacles as any stopping will cause the record to have to be restarted.

Overview

The game will require the player’s full attention while playing, they are automatically snapped to the middle of which ever lane they are cycling in and must swap lanes when a car starts to approach. Cars can approach from behind or in front and their drivers have a particular distaste for cyclist, they wont care if you’re in their way, so you better change lanes!
Other obstacles will include angry pedestrians, elitist cyclists, dogs, stray footballs etc This ensures the player cant become to content with their environment and must keep on the lookout.
The “Tour de Dance” refers to the fact that every object in the scene will have it’s own sound and/or riff associated with it. While they are in the scene they will mix together to create a dynamic soundtrack that changes while you are playing. For instance, cars will have a slow bassy thump while they drive, cyclists will have higher pitched tones and a faster tempo, lamposts will have singular dings of sound as the come into the scene.

Scope

In 11 weeks I hope to have a completed game with at least one sound / riff per dynamic object in the scene, a sprite with at least 3 frames of animation per dynamic object and 1 frame per static object.
The player will be able to move lanes, collide with cars and turn corners at as the road changes.

Challenges

The image in my head for this game is that of a colorful NES game. It being in 2D has it’s own challenge of sorting collision layers based on what lane an object is in.
I’m a relative newcomer to pixel art, especially the animation side of things, if I cant find someone to outsource this work to I could possible lose a lot of valuable time to getting it looking right.
Finally the audio aspect will require a lot of tuning, while I’m confident I can get the technical aspect of it working, it being a somewhat dynamic system makes it a challenge to compose something that isn’t a cacophony of noise. Ultimately though I think the audio aspect could help with the “composition” of certain chunks of the game by dictating what and when to spawn things, thus taking some of the randomness out of the game.

Production plan


VRGB – In-world rom list update #2

oculusGameboy 2014-05-21 16-37-34-01

 

I managed to write some code that will scan the \Roms\ directory for any file ending in “.gb” and store them in an array of strings so that they may be called whenever the user wants to load a new game!

Then we instantiate a 3D model for each ROM and store that in a list.

var info = new DirectoryInfo(path);
var fileInfo = info.GetFiles();
int i = -1;
foreach (FileInfo file in fileInfo)
{
  string romName = file.Name.TrimEnd('.', 'g', 'b');
            
  if (file.Name.EndsWith(".gb"))
  {
    romList.Add(romName);
    i++;
    GameObject InstantiatedRom = Instantiate(romToInstantiate, 
      new Vector3(transform.position.x - (i * 0.1f), transform.position.y, 
        transform.position.z - (i * 0.1f)), transform.rotation) as GameObject;
    InstantiatedRom.GetComponent().UpdateRomName(romName);
    InstantiatedRom.transform.parent = gameObject.transform;
    romCarts.Add(InstantiatedRom);
  }
}

I also added the ability for the user to pull in any labels for their ROM collection. In the loop we put the following:
if (file.Name.EndsWith(".png"))
{
  if (romCarts[i].name == romList[i])
  {
    StartCoroutine(GetLabel("file://" + path + file.Name, i));
  }
}

Then we make the function that pulls the images in as Textures:
public IEnumerator GetLabel(string URL, int index)
{
  var www = new WWW(URL);
  
  yield return www;

  romCarts[index].GetComponent().labelGO.renderer.material.mainTexture = www.texture;
}

I just need to add some controls to help navigate through them and then I’ll be releasing a new version!


VRGB – In-world rom list update #1

The emulator project can now list any roms you put in the \roms\ directory!
ingameromlist

 

This will let us have 3D modelled gameboy carts and will allow us to pull in any label images too. Soon you’ll have a 3D shelf of Gameboy games!


Oculus VR Jam – Spacecraft Simulator

So I was taking part in the inaugural Oculus Jam, I was recording my progress on a daily basis and even demoed the project at dubLudo 7! But then my Razer Hydra controller broke, so I stopped working on it as the game was based on using the controllers as an analogue for your hands in the virtual space.

The project used a combination of the Oculus Rift, Microsoft Kinect and Razer Hydra. Rift for head tracking and general VR immersion, Kinect for positional tracking of the body and Razer Hydra for positional tracking of the hands. I could have used the Kinect for the hands but it is far worse at tracking limbs.

Here are the two videos I did manage to make of my progress before the controller was broken:

 

 


IAMAGAMER 2013 – Fish Puncher!

So while on vacation here in Austria, myself and Clare Byrne (who did all the art on paper and took photos of them on her phone since she had no laptop) decided to take part in Iamagamers first game jam! The theme was “Strong Female Protagonist”, so we picked Sylvia Earle as our inspiration. She lead the first team of female aquanauts, which is pretty cool!

Fish Puncher Menuiamamagamer2

We gave our character a kickass submarine to help her explore the ocean for treasure and other cool stuff.

You can play it here: http://www.shaneobrien.ie/gamejams/iamagamer2013/