Category Archives: Programming

DinoRancher – Build Virtual Worlds, Round 5

Introduction: Developed on the Oculus Rift with PS Move, DinoRancher had guests play atop a Triceratops armed with an electric lasso. The goal of the guest was to shepherd a herd of Stegosaurus to safety, protecting them from danger.

Platform: Oculus & PS Move | Time: 2 weeks | Role: Programmer – Designer – Producer | Team Size: 5

Story:  You are a DinoRancher armed with your electro lasso and trusty trike. Travel across the desolate wasteland, and protect your herd from those nasty predators!

Design Challenges:

  • Herd behavior
  • Enemy types
  • Environment design
  • Integration of the PS move into Virtual Reality
  • Trike movement system

Design Goal: To create an experience that made the guest feel like a cowboy travelling through the desert protecting a herd of dinosaur from predators.

My Contributions: As producer I arranged meetings, delegated pending tasks, and contributed creatively. In addition as a programmer I was responsible for setting up the games environment which included, asset preparation, level design and developing agent behavior.

DinoRancher was featured at The Forbidden Forest in The Entertainment Technology Centers end of semester festival!

Festival Footage

Multi

Platform: Windows | Time: 3 weeks |  RolesProgrammerGame Designer – Artist – Sound Designer | Team Size: 1

Introduction: Multi is a game built on Game Maker for Windows using Game Makers scripting language. Players control a character who traverses a series of levels in a platformer style game play.

Design Goal: The primary ‘design goal’ with this project was to further my design skills whilst practicing level and mechanic design.

Design Challenges:

  • Creating levels that were interesting to play with the mechanics I created.
  • Difficulty design.
  • Teaching players how to play.
  • Audio which included, character, and environment sound design.

My Contributions:

  • Programmed the code of the game (adapting some freely available physics code). I completely designed the game.
  • Made the majority of art assets (character art and animation taken from a game maker tutorial)
  • Collected audio that suited the game play from free sources (credits bundled with Multi).
  • Conducted play testing with younger audiences which I believed would be interested in the game.

Download:

Follow the link below to download a .zip file containing the game. When the download is complete, unzip the file then have a look the read-me and, then run the .exe file to play the game.

 Download Multi!

Continue reading Multi

Seize the Sky – Building Virtual Worlds, Round 1

Introduction: Seize the Sky was built during Building Virtual Worlds at Carnegie Mellons Entertainment Technology Center. The world was constructed using Oculus Rift, and Leap Motion. Using these technologies we put our guest into a virtual reality space with an ability to use a natural interface in our world.

Story: A mighty giant heads towards a town with murderous intent. A country side boy notices, and cries to Zeus for help to defeat the giant to save the city. You are Zeus, save them all!

Platform: Oculus Rift + Leap Motion in Unity 3D | Time: 2 weeks |  RolesProgrammer – Game Designer

Design Goal: Our design goal with Seize The Sky was help character A (the boy) who is afraid of character B (the giant).

Design Challenges:

  • Incorporating a satisfactory use of Leap motion.
  • Achieving our a sense of character A is afraid of character B.
  • Level design.
  • Game-play design.

My Contributions: As the lead programmer on Seize The Sky I made large contributions to the code base for this project. I also took an active part in the design process with working with the team to develop various aspects including game play, and level design.

Development

Iteration 1

The development process started with being assigned teams. In our first team meeting we made clear our skills, started brainstorming ideas, and kept good development processes in mind.

This slideshow requires JavaScript.

During brainstorming we tried using several appropriate methods, such as gesture centered brainstorming (due to our use of Leap Motion). Finally we had five initial ideas:

  1. Help mend relationship between characters.
  2. Play piano to make baby sleep.
  3. Use light to guide a character home.
  4. Keep animal safe growing to adulthood.
  5. Hold characters hand to guide them.

This slideshow requires JavaScript.

With our initial ideas we further boiled them down to three concepts with the following reasoning:

  • Concept one was hard to conceptualize compared to our other ideas which seemed simpler and more clear.
  • Concept five could be incorporated into concept three.

Creating sketches of each concept we then sought out the advice of our professor Jesse Schell.

bvw_round_1_initial_three_concepts

With Jesse Schells feedback we went with concept C, because we wanted to explore squeezing in Leap Motion.

bvw_round_1_post_meeting_notes

We then began further conceptualizing the idea with sketches, and research into the capabilities of Leap motion and Oculus.

This slideshow requires JavaScript.

With this in mind we began assigning tasks to complete, considering game play, and used a scrum board to assist us in tracking tasks.

This slideshow requires JavaScript.

On the technical side we used a NavMesh, and simple A.I. to run the behavior of the Hunter and Deer. The behaviors of the two agents were essentially:

  • The deer always moved to nearest tree that has an apple.
  • The Hunter patrolled around fixed points, and if it came close enough to the deer it began chasing it.

The result of our hard work was the following.

We then received feedback at interim, which sadly wasn’t good…

Iteration 2

Continue reading Seize the Sky – Building Virtual Worlds, Round 1

Hero of Allacrost

Reddit is where this story begins. Trawling around I joined the /r/gameDevClassifieds sub-reddit. A place of gathering for game developers advertising paid, and un-paid game project work.

By chance I came across a post asking for a game designer, to which I replied. Unfortunately the position had already been filled though fortunately additional help was happily welcomed.

allacrost_logo_medium

The project in question is Hero of Allacrost. Its an ‘open source single player 2D role-playing game inspired by classic console RPG’s, and I’m thoroughly impressed with the standard of this project. It’s use of BitBucket for source control, a Wiki containing lots of information/documentation, a forum, and welcoming project members! I’ve worked on this project for approximately a month, and my contributions to this project have been enhancements to the battle code.

Here’s the latest Hero of Allacrost gameplay footage.  Check it out!

Get Games Middle East Launch

Get Games is part of Mastertronic a company that my company’s parent company Red Stallion Interactive is in negotiations to merge with. Red Stallions developers have since been tasked with an exciting project.

get_games_me_logo

Over the past few months I’ve been working on enhancements to their online platform, as well as duplicating a digital store for the Middle East.

get_games_homepage

At present the project has involved re-hauling the language assets across the website, implementing right to left formatting, and performing general maintenance tasks such as updating the websites YouTube libraries. Going forward we have some exciting new features in the works including the integration of local Middle East payment methods such as OneCardCashU and CrediMax.

The localisation phase of the project was completed a short while ago, and Get Game ME was officially launched last weekend. The launch included dispatching a newsletter as well as well as promotions through Youtube, Instagram, Twitter and Facebook. Take a little time and check it out, you might find yourself a good deal!

Red Stallion Gaming – Android

Shortly after joining Red Stallion Gaming, a video game publisher in Bahrain. I started developing their Android mobile application.

rsi_logo
Red Stallion Gaming’s Parent

When I got my hands the app it was setup to communicate with a Web API, could only perform simple login and game download. There was plenty of work to do, and my efforts in this project were most notably:

  • Redesigning a new look and feel for the app.
  • Improving the login feature, as well as adding social media integration’s, for sign in and sign up.
  • Adding purchasing functionality with payment methods such as PayPal and Red Stallion Gaming virtual currency.
  • Adding a SQLite database for persistent storage to significantly reduce the data requests to the server, and improve the users experience.
  • Adding Wishlist, Library, Forgot Password and Search features.
  • Adding basic DRM measures.
  • Implementing a procedure, with built in token refreshing, of communicating with the existing API and a newly developed API to collect data for a smooth user experience.

The result of all this work was me completely redesigning, refactoring and implementing the mobile application. It’s been a lot of hours of work, but its finally released!

This slideshow requires JavaScript.

There’s lots more work to do on it, and in the mobile side of the company, but I’m happy to say that we’ve taken our first step.

 

Plan Recognition in R.I.S.K.

Whilst at The University of Edinburgh I self-proposed my final year project on Plan Recognition in R.I.S.K. I was supervised by Dr. Michael Rovatsos (an awesome supervisor I might add!). The research I did was fortunately noticed by the great folks over at the CREST Center UCL in their BSc Final Year Computer Science Project Competition 2013, and it had me shortlisted as a finalist.

The project involved the design and implementation of a plan recognition agent for the board game R.I.S.K. The implementation was done in a game called Domination, a Java version of the classic board game R.I.S.K. developed by Yura.net. Domination is freely available and you can download it through Sourceforge here.

domination

The agent that was created is based on Geib and Goldman’s Probabilistic Hostile Agent Task Tracker (PHATT).  Acting as an observer to the game it’s goal is to infer the unknown missions cards of players based their actions in real time. In my project report I evaluated the plan prediction accuracy of the agent with four experiments, the results of which I presented and analysed. I then went on to discuss the project outcomes and future work.

You can read my report here (brace yourself its a long read). Additionally the source code for the project is available from GitHub here.