Projects

In Development

# Gap Racing

A party-style, local-multiplayer racing game!

For my first big solo project, I spent a lot of time drafting ideas for potential games, but where better to redux my portfolio than by going back to the beginning! With this new game I wanted to bring my original dissertation project up to modern standards using the latest tools.

Since I already had some experience setting up the multiplayer architecture, this time I started by building the basic gameplay loop.

As well as getting up to speed with all of the changes since Unity4, I've also managed to use a lot of the latest Unity systems to get up and running including the new:

  • UI Elements for building User Interfaces
  • Awaitables classes for asynchronous scene loading
  • Unity Splines
  • Scriptable Objects for save data

Here you can see some early alpha gameplay footage, of a complete Time-Trial game mode playthrough, in single-player.

Filmed using Unity Recorder using keyboard input


Filmed with a Tab S8 Ultra, x1 Xbox controller, x1 Playstation controller

For a party game, multiplayer is a key element, I wanted to be able to support as wide a range of inputs as possible and to avoid split-screen to try and make the gameplay experience feel more communal.

The key components used here are the:

  • Input system for Xbox & Playstation controller & keyboard support
  • Unity Cinemachine for handling cameras and movements/ transitions

For most, 'party-racing-game' = Mario-Kart, for me, I'm reminded of the Playstation 1 game; Circuit Breakers, I played as a child. As enjoyable as it was, I've never seen the multiplayer gameplay mimicked.

This compilation shows my attempt to bring back this game mode based on my childhood memories, across a few different test tracks. Here's an example I found of the original gameplay. (Look at that lovely CRT screen!)

Stay tuned for upcoming footage of multiplayer Battle mode using split-screen!

Skills:

Unity
C#
CorelDRAW
Blender

# MayurPatel.co.uk - Portfolio Website

The site you're on now!

It is always suggested, that as a Games Programmer, the most effective use of our time in regards to displaying a portfolio of work online, is to simply use a site-builder service, for many years, I did the same, as the importance of its contents far outweighed the often ignored container but, given I already had the programming knowledge, couldn't the site itself serve to showcase some of my skills too?

The first and only other site I've ever put online was back in college, using Adobe Dreamweaver, since then, the world of Web Development has come a very long way. I began by working my way through successive updates to get up to speed with the modern development standards.

I knew I wanted my site to be fast to load, easy to maintain and as is the modern standard, fully responsive. My research led me to using AstroJs, as it's designed for quickly loading a static site. TailwindCSS for quick styling and responsiveness and DaisyUI, a library of components.

To get it onto the web I used AWS in order to get an SSL certificate for visitors to know it's safe, and used Cloudfront with Route 53 to direct visitors to my custom domain. For hosting I simply used an S3 bucket to store my files as a static site.

I was able to get this project off the ground so much faster using a single-page starting template by Michael Andreuzza; provided by Astro, it took a lot of work to get to this lovely site but I'm incredibly grateful for the starting point, so thank you!

Take a look at the original template; Gurido, here to see how far I've progressed.

Or check out my GitHub to see all the code I added for the final version.

Please click around and visit a few pages to see the features I've added, try shrinking your browser window to test responsiveness or click a few quick-links/ back-to-top button for fast navigation!

Skills:

AstroJS
TailwindCSS
DaisyUI
Amazon Web Services
HTML Created with Sketch.
JavaScript Created with Sketch.
CSS

Contributions

# Cartel & Blue Chip Poker

Online multiplayer Poker games for the Facebook platform

As is the nature of client-based work, I ended up making a multitude of contributions to these projects in a variety of ways.

My teams client owned a couple of Poker games on the Facebook platform, for which we managed their updates and operation.

I made some improvements to the game but was primarily tasked with maintaining the CMS for the client's use and adding new features to make the game easier to manage externally, as well as looking after the integrity of the game's database.

Try the latest iteration here: https://www.facebook.com/JimmysCartelPoker N.B. My contributions to this product ended in 2016.

Skills:

Unity
C#
JavaScript Created with Sketch.
HTML Created with Sketch.
CSS
MySQL
PHP

# Internship - The Walt Disney Company

A sandwich year in industry

As part of my course I was able to take a year out in industry, for which I was able to secure a position as a Junior Software Developer.

Joining the Digital Media Distribution team, we were tasked with migrating the internally used Digital Sales tracking software, from its aging tech stack to the latest and greatest tools; a huge undertaking given the software was responsible for billions of dollars each year.

I was able to pick up an incredible number of skills, from the varying technologies we used, to the full life-cycle of software development, all the way from feature request to delivery. As well as seeing project management at a global scale first-hand, and all of the methodolgies invoked to manage a dev team to deliver.

After the year was up I was able to secure an extention to my stay as an external contractor for the summer period before returning for my final year.

A huge thank-you to the team for showing me the ropes!

The perfect leaving gift, nothing like a cuppa tea!

Skills:

Java
JavaScript Created with Sketch.
HTML Created with Sketch.
CSS
MySQL
Python Created with Sketch.
PHP
SubVersion
Selenium

Discontinued Support

# Mini Game Madness

A fast-paced rotation of mini-games!

Like every budding Unity developer, I too began learning, by following as many tutorials as I could get my hands on. Instead of flooding my portfolio with each and every tiny project, I decided to combine them all into a compilation minigame, in the style of one of my favourites, WarioWare.

First I created 'win/lose' conditions for each tutorial to turn it into a gameplay loop, then, set each up as standalone scene. I tried to vary the input required to keep the gameplay interesting, moving between single-taps, accelerometer/ gyroscope control or swiping. My own project then handled the overall gameplay by rotating through each mini-game.

I introduced smaller instructional scenes to improve the gameplay experience, which gave a quick overview of the upcoming game, as well as a 'lives' system & scoring mechanic which tracked how long you were able to play.

The level system works by adding a dash of randomisation to each mini-game on subsequent play-throughs, for example; the asteroids will break into smaller pieces from level 3 onwards, more circles are needed to beat the one-handed Twister game, Knots; these also awarded point boosts for the increased difficulty.

Finally I polished up some of the GUI for the player to better understand the gameplay like the visual countdown timer, added some sound effects and menus in order to properly play, pause, navigate & replay the game as well as saving the score between play sessions.

Overall, this worked really well as a single-player experience but I found it really succeeded as a "play & pass" game, where handing it off to your friend after setting a new record became very addictive!

Download the .apk to try it yourself on Android:

Skills:

Unity
C#
CorelDRAW

# Dissertation

A console-like experience utilising multiple Android devices networked via Bluetooth!

I always felt that local multiplayer was an oft underrated feature, some of my fondest gaming experiences growing up, were hudled around the TV as a group.

With pocket-computing of the day getting more powerful, I aimed to provide a console-like gameplay experience, using the multiple devices we already carry around, by synchronising gameplay across Bluetooth.

Although we didn't use Unity during the course, I chose this as well as the Android Developer Tools suite, which together worked to handle input from a client mobile device, and translated to gameplay interactions on another server device.

Despite not getting around to including much gameplay I still had a blast getting the multiplayer architecture functioning!

Skills:

Unity
C#
Android Studio
Java