Category Archive: Programming

Rockstar North

In April 2016 I joined Rockstar North as an Online Mission Flow Designer, working out of the office in Edinburgh. My primary responsibilities is working on gameplay systems in an online setting, both in their creation and maintenance. I am currently still employed at this role.

While working there, I have contributed to the ongoing development of GTA Online, including work on the Further Adventures in Finance and Felony and Biker pack.

CSR 2

CSR Racing 2 – The next chapter to the #1 drag racing series of all time has arrived!

“Unbelievably good looking”, KOTAKU
“So real it hurts”, CULT OF MAC
“Obliterates the line between console and mobile graphics”, POLYGON

Setting a new standard in visuals, CSR2 delivers hyper-real drag racing to the palm of your hand. Compete against live players across the world with your custom built supercars including LaFerrari, McLaren P1™, Koenigsegg One:1 and many more.

Team up with friends to form a crew, tune your rides for maximum speed and dominate the competition in global crew events. CSR2 is all-new; download for free and start racing now!

BigBit performed additional working on CSR Racing 2, with the primary aim being that of optimisation for low end mobile devices such as the iPad 2 and iPhone 4. In addition, we also worked on adding several new features to the game. Both these tasks required working closely with other Natural Motion studios in the UK.

I primarily worked on adding a feature to entice users into purchasing new cars and on optimising the text displayed in the game in order to prevent slowdown during the in game races.

I Am Bread – Mobile

maxresdefault3

 

‘I am Bread’ is the latest quirky adventure from the creators of ‘Surgeon Simulator’, Bossa Studios. This isn’t the best thing since sliced bread . . . it is sliced bread!

Mashable – ‘After years of waiting, we can be Bread’
Touch Arcade – ‘Feels like the pinnacle of all humanity’s accomplishments’
Wired – ‘I am Bread is the strangest game you will play this year’
9/10 – Steam
Metro – ‘Slice of Heaven’
Destructoid – ‘I Am Bread is just delightful’
MTV – ‘Best Carbs’

You are bread! Your mission, become toast! Take on all hazards to deliciousness as you head on an adventure across 8 levels taking bread from its natural confine in the kitchen, throughout the house and then venture outside into the garden and beyond. Look out for the floor and any other unsavoury obstacles that could harm your tastiness as you seek out the means to achieve bread’s ultimate goal.

Using the unique control system, designed from the ground up for iOS, you can bring the slice to life and take it on an incredible adventure. With you in control, this bread will be boldly going where no bread has gone before!

Personal Notes

In this project we worked with the team at Bossa Studios to convert their game from a PC release into a premium iOS application. This work was later used in the release of I Am Bread on Android

As most of the new gameplay development was done internally at Bossa, my primary role was improving the UI performance for mobile by trimming unused elements and temporarily disabling sections depending on what was currently visible on screen. In addition, I also helped to prototype some internal touch controls to assist in development and provided support for the rest of the team by spending time understanding and learning the structure of the project and details of the game itself acting as a knowledge base.

This project was done using Unity 5 and implemented on iOS. In addition, the game also features my smiling face on the credits screen.

Gallery

This slideshow requires JavaScript.

Race Team Manager

 

RTM-Title

In Race Team Manager you live the life of an up-and-coming team boss across various racing categories. Work your way up from the junior leagues to the pinnacle of motor sport and become a championship winning team!

RACE DAY
Featuring all the best parts of a traditional racing game, overtakes, spectacular crashes, pit stops and blocks are all fully interactive using the latest cutting edge graphics and special effects. As team manager it’s also your job to call strategy from the pit wall, instructing when and how hard to push the car and strategically call the optimum moment to pit.

MANAGEMENT
Outside of Race Day you decide when and how to upgrade your car, and manage your driver and mechanic relationships. You’ll also need to sign sponsorship deals and ensure your team hits their targets. Build up enough reserves to go racing at the highest level and invest in your facility to boost on track performance.

EXPERIENCE
Gameplay is short burst and immediate, but there’s more than enough here to keep you coming back for months. Whether you’ve got a couple of minutes or hours to spare there are races to be won and management decisions to be made. Will you focus on the car, your team, the sponsors or your facility? As long as you’re winning you can run your team as you see fit!

Personal Notes

On my second project at BigBit, I worked on two major areas of the game.

The first was assisting in designing and then implementing a new minigame to add to the race day. Creating the refueling minigame from start to finishing involved working closely with the lead designer and artist to create gameplay and then add it to the game. The second was overhauling the event selection UI to include new features and new events added in Update 2.0.

This project was done using Unity and implemented on both iOS and Android.

Gallery

Legal

Race Team Manager is the property of BigBit Ltd.

Hollyoaks the Game: The Mystery of Nana’s Missing Pearls

97f75cfe-cb7e-4db1-af0b-7138a78dc2bb

Become the newest resident of Hollyoaks village!

Make friends, unlock new locations and get texts, pics and voicemail from your fave ‘Oaksy characters.

Breakfast with Sienna, jogging with Ziggy, searching for Jack’s lederhosen, and ghost-hunting with Tom… it’s all in a day’s work! But keep your wits about you, because not everything’s as it seems in the village. There’s a thief on the loose and with Nana’s pearls missing, the residents will turn to you for help.

Was it sly Sienna or the villainous Trevor? Your new BFF Ste, or the glamorous Maxine? Or perhaps it was someone from beyond the (densely-populated) Hollyoaks grave?!

As the mystery deepens and those closest to you become suspects, you’ll find yourself in a race against time to work out who the real culprit is.

Have you got what it takes?

Personal Notes

This contract work for Channel 4 was my first project working for BigBit. I joined the project as a programmer doing various general tasks to assist in the final few weeks, with a particular focus on working with the sound designer implementing the last bits of audio and updating earlier clips. I also did various smaller tasks such as working with artists and designers to tweak the UI and bug fix the game in order to prepare it for release on iOS and Android.

On a technical level, this work was done using Unity and tested on multiple iOS and Android devices.

Gallery

Legal Note

All visual elements of this project belong to Channel 4.

RollerSaurus

 

10313423_10202653129741659_1769408886271832958_nPitched as the world’s first Rotary Dinosaur game, Rollersaurus was a quick prototype made over a month by myself based off a designer‘s idea for a game. I worked to translate a bare-bones GameMaker prototype into a Unity game that could be deployed to mobile. We set a short time limit on it due to other commitments and aimed to have a small game that included the key concepts with room to expand in the future.

The game was designed for play on mobile devices, utilising the tilt sensor to roll the player character back and forth across the level. Players must then shoot down flying enemies while avoiding being hit. The game has been tested on both Android mobile and tablet devices

I look forward to returning to this prototype and extending it into a full game. I especially like the mock theatrical feel of the level, but I did not manage to get it lit properly before I ran out of time.

Development details can be found on my development blog at http://hntdaab.co.uk/devlog/?cat=2

Media

Source Code

This is avialable online at https://bitbucket.org/michael_charge/rollersaurus

Network Game Development

SuperNetworkGame

As part of the MProf course at Abertay, I selected to take a module that focused on Network Game Development. Through this module, I aimed to translate the skills I learnt at Teesside into a C++ environment as well as adding a dead reckoning implementation required by the brief.

To fulfil this, I created a multi-player top down shooter called “Super Network Shooting Game”. This game combines local and network multi-player, letting up to 8 players take part in simple top down combat. Each terminal support four controllers (thanks to SDL 2.0’s robust controller integration and Microsoft’s wireless controller receiver).

The network model is server-client, with both machines having players. The server is responsible for starting and ending the game. Required information for both machines (such as start and end messages) are sent via a TCP connection formed when the applications start. Standard game events are transferred via UDP. Linear interpolation is used to mitigate packet loss or delay.

In addition to networking, I used C++11’s multi-threading features to move the TCP and UDP listeners to separate threads to improve performance. This was my first major experience of using multi-threading in C++ environment and took a while to learn, however the application performs well and exits cleanly.

To assist in development, I used several third party libraries to assist:

  • SDL 2.0 was used for the basic framework, particularly the rendering and input elements
  • SDL_Net was used for the network framework, providing a feature packed layer to implement TCP and UDP connections.
  • SDL_Image was used to allow the game to render PNG and JPG images used for sprite sheets
  • SDL_TTF was added to allow the outputting of text – this feature was added after handing the module in.

For this project, I received an A20, the highest mark that Abertay awards for its module grades. After development I look forward to improving this demo, adding additionally game-play features while using it as a test bed for improving my C++ skills in a multi-threaded, multi-machine environment.

Source Code

All source code for this project can be found on my bit-bucket at https://bitbucket.org/michael_charge/super-network-shooting-game

Please note that I have branched off at the version I handed into Abertay which is titled “Handin_Branch” – it is missing the text rendering and some structural improvements.

Third Person Shooter Project

The damage zones outlined on the final model. The largest capsule is the model's collision mesh.

As two separate projects at university, I have been creating a series of demos to test out mechanic ideas for a potential third person shooter project. The overall idea was to bring realistic aspects of certain shooter games (such as location based damage and ballistics) into a touchscreen game. To assist in iteration, the demo was created in Unity, utilising its C# scripting as well as features such as Mecanim for character animation and its robust physics system.

Professional Specialisation

The Professional Specialisation aspect of the project was to focus on gameplay programming and the initial aims were split into three core parts:

  1. A basic third person cover sysytem
  2. Realistic ballistics with the aim of letting designers use real world values
  3. A location based damage system that can affect the player’s gameplay when they are injured.

These objectives went through a process – an investigation into how other games implement them, a rough idea on how they should work in code and then implementation. All three were successfully implemented in a prototype fashion.

  1. The cover system will look for a cover marked object, move the player to the cover position and force the player to crouch.
  2. Ballistics takes in values from real world weapons and outputs the correct kinetic energy. Rounds use a combination of raycast and physical collisions to both impart force and cause bullet effects on the health system from any distance.
  3. Each of the characters in the scene has a location sensitivity health system. This takes kinetic energy values, applies it to the hit location and then deals with the after effects such as knocking a character down or killing them.

 

The finished protoype can be played online at https://dl.dropboxusercontent.com/u/6573563/DemoWebBuilder.html or below. Please note the cover mechanic has been disabled for web player

 

Further details of this projects development can be found here

Innovation Project

The Innovation Project module was based around taking an investigation from initial idea to its conclusion. I decided, to tie in with my third person shooter game, to look at a brief delivered by one of my tutors looking into third person controls in a 3D environment. I implemented to control schemes to compare a touch screen focused scheme with the standard soft joystick option used by many porting companies.

To test these scheme, I created a simple map and a timing utility to chart a players progression through the level. In addition to this, I also created an implementation of the shoot scene with touch screen controls.

As you can see in the image below, I got the final demo working and deployed successfully to both my Nexus 7 tablet and my HTC One phone.

2014-05-12 12.21.02

Further details of this project can be found here

Source Code

Source code for this project can be found on Bit Bucket at https://bitbucket.org/michael_charge/overwatch

 

Gnomes!

pic0

Gnomes was a game produced in the final semester of the Abertay MProf project for Sony.  The project was to take a Unity prototype developed in semester two and convert it from Unity and PS Vita to the Playstation 4 while using the PhyreEngine framework. In the game, you play as two gnomes who, after stealing a removal van, are stealing items from an old ladies’s house. Players have to steal as much as they can and escape before the real removal van appears while also trying not to be revealed as Gnomes by the granny. This is made more difficult by the gnomes short stature, forcing them to stand on each others shoulders to maintain the illusion but causing them to be susceptible to over balancing, especially while carrying the loot.

On this project I was part of a 15 person team including artists, designers and other coders. I took the role of Gameplay programmer, focusing on the game implementation of the game’s core mechanics:

  • the player character’s balance
  • the ability to carry (and drop) objects
  • a box to ease the carrying of multiple objects

This required the use of the PhyreEngine’s built in tools (such as a component system) as well as talking with the designer to both gain the direction they wanted and be able to communicate the tools need to modify the created systems (such as a LUA script to control the balance and custom editor components for the steal-able items). In addition, several of my created systems overlapped with other parts of the game, requiring tight co-ordination with the rest of the team

In addition, I also helped in the implementation of the audio system, communicating with other programmers who had moved onto other tasks and projects and the audio designer himself. This utilised the FMOD framework to ease integration of the audio designer’s vision.

The game was demoed at Protoplay between the 7th and 10th of August 2014. During that time, the public seemed pleased with the game citing the art style and the difficult but humorous gameplay. In addition, we spent the following weeks to work on bug fixing and final improvements

Media

Video:

Images:

Legal Note

Please note all elements of this project, including images and video displayed on this page belong to Abertay University and Sony

 

A Clockwork Disaster

main_menu_background A Clockwork Disaster is a 2D puzzle platformer prototype developed in my second term on the MProf course at Abertay.

The brief was provided by Sony and was designed to target the Playstation Vita, utilising some of its key and unique features. After a short pre-production stage, we settled on a puzzle platformer design while using the hand painted artstyle produced by our artist. The key feature was the main character’s ability to adjust time – by using the front or rear touch screen, players are able to speed up and slow down time.

My responsibilities on the project were originally the creation of the time manipulation gameplay and the objects associated with it, the integration of the character’s animation and working with the audio designer on implementing the music and sound effects.

This project was implemented via Unity with the coding written in C#. We took advantage of Unity’s extensible nature and utilised the Sprites and Bones plugin to make the animation of the character faster and more streamlined than using a frame based system.

The Team

Art: Sam Heisler

Design: Charlie Reily, Gavin Stewart

Programming: Michael Charge, Stuart Martin

Sound: Ronan Quiqley

Media

Please note: All aspects of this project belongs to Abertay University.

Older posts «