My name is Paul Shields & I develop Video Games & Websites in Belfast, Northern Ireland.

Technologies I've used:

  • C#
  • C++
  • Unity
  • MonoGame/XNA
  • DirectX
  • OpenGL
  • WebGL
  • PHP
  • HTML
  • CSS/Sass
  • JavaScript
  • MySQL
  • Java
  • Spring MVC
{    }

If you would like a copy of my CV, you can download a copy of it here. You can also view a copy of it below. Currently I am looking for graduate positions in software development.

Embedded PDF is unsupported on this browser, but you can still download it here.

If you would like to contact me, feel free via the following methods:

You can also find me on the following services:

Web Based Physics Engines Research

For my Final Year Research Project at Queen's University of Belfast, I performed research on the Accuracy and Performance of Physics Engines in Web Browsers. The aim of this research is to provide a quantitative analysis of the accuracy and performance of the physics engines used in two of the fastest growing web-based game frameworks, Unity, via the Unity Web Plugin and via the WebGL build, and WebGL, using the most accurate physics engine for the framework currently available. Both the web browser and the hardware in which the game was running on were examined.

The experiments used to compare these physics engines comprised of a Static Friction Test, comparing how the physics engines calculate the angle at which a box began to slide on a plane to real world static friction data, and a Car Test, examining if there was any side-to-side deviation from a car, created using the physics engine's vehicle module, accelerating in a straight line and the stopping distance of the car at various speeds.

These decisions were made from previous research in this field. This previous research, as well as results and analysis from the tests, are described in the 13,000 word dissertation I wrote for this project.

The technologies I used in this project include:

  • Unity 5.0, including sendmessage to communicate with the browser
  • WebGL, via JavaScript & HTML5
  • Physi.JS (Bullet)
  • Selenium, via the Java bindings
  • Java's robot.class

Interactable Test Suite, used in the experiments

Automated Static Friction & Car Experiments

Dissertation (PDF)

Physics4K

Physics4K is a 2D physics engine, built in C++. It was built using the ideas available from Box2D Lite and it supports both Object Orientated Bounding Boxes and circle bounding areas, with collision generation and resolution working between then. The code is highly extendable to add more bounding areas, but is fully functional out of the box. Contained with the download is a demo game with 5 demos showing the capabilities of the engine. The demo was built using The C++ Game Framework.

Download Physics4K

View Source Code

View Documentation

Particle System

Particle System is a particles demo written in C++ and OpenGL. It was written for a task to create a demo of a possible screensaver, so I created a "particle ball". This involved first creating a particle system, then using point sprites creating a visual effect. This effect is that of a particle emitter in the centre of a sphere, emitting particles in all directions. Then, when a particle hits the edge of the radius of the sphere, it will freeze giving the effect of a particle ball. It also supports colour interpolation, rotation of the balls, multiple balls and multiple different textures for the particles.

Download Particle System (EXE only)

Download Particle System (source)

View Source Code

Undead Redemption

Undead Redemption is a top down, dual joystick shooter, built using Lingo and Adobe Director. It is wave based with unlimited waves, with multiple types of zombies and weapon types. With the range of tactics using the weapons and the few nukes available and the gorgeous artstyle, we now have a good amount of players on our online leaderboard.

Play Game

The Game of Life: Mafia Edition

The Game of Life: Mafia Edition is a video game based off the popular board game The Game of Life: Adventures Edition. The aim was to take the board game and fox the problems it had, such as unbalanced islands and predictable gameplay, as well as expanding it to have a Mafia theme.

The game features two additional game modes, Land Jump and Capture the Flag, greatly expanding the gameplay as well as adding Mafia and Civilian as the two career paths, allowing for a greater difference between the two career paths. More of a risk reward for the Mafia but a simpler lifestyle for the civilian.

The game was built in XNA 4.0 using MuScreenManager.

Download Game (Installer)

Download Game (Standalone)

BulletHeli

BulletHeli is a Bullet Hell-esque Shoot 'em up built in XNA 4.0. You take the form of a helicopter flying across the desert, aiming to defeat the dreaded "Hella" for your life, and your country.

The gameplay consists of you fighting the mass of enemies using your 4 weapon types (Gun, Bombs, Laser and Missiles). Alongside your arsenal, you have your trusty AI friend, tentatively named "Lil Guy", who can hit back with it's own firepower against the onslaught of enemy bullets.

The game was our entrant into the 2012 Games Fleadh

Download Game (Installer)

Download Game (Standalone)

Vlappy Man

Vlappy Man is my entry into the Flappy Jam 2013. It is a simple game, built in a few days, which was originally designed as a cross between Flappy Bird and VVVVVV. This essentially takes the VVVVVV look and feel, as well as the flipping mechanic, and applies it to the Flappy Bird gameplay. The result is an equally addictive yet infuriating game with a catchy soundtrack! My tagline on the itch.io submission page:

Vlappy Man has given up on the fight against Gravity, so he has instead figured out how to harness that unbridled energy: by flipping!

This game was my first foray in the world of Unity, graduating from the now defunct XNA.

Download Vlappy Man v1.0 - Windows

Download Vlappy Man v1.0 - Mac

Download Vlappy Man v1.0 - Linux

Download Vlappy Man v1.0 - Web (default Unity page)

The Pixel Underground

The Pixel Underground is my entry into the Ludum Dare 29. It is a simple top down shooter built with the most programmer of programmer art: Boxes. Battle your way through a multitude of vicious, deadly enemies to try and become King of the Pixel Underground. The game is built around vibrant, colorful artstyle, deceptively fun gameplay and, of course, Unity.

Download The Pixel Underground v1.0 - Windows

Download The Pixel Underground v1.0 - Mac

Download The Pixel Underground v1.0 - Linux

Download The Pixel Underground v1.0 - Web (default Unity page)

Bombcast Radio

Bombcast Radio is a 24/7 live stream of the Giant Bombcast, a video game podcast published by Giant Bomb every Tuesday. The site has a persistent global playlist of Bombcasts with defined start times, meaning that the site acts like a real radio stream with everyone listening to the same Bombcast at the same timestamp, giving it an authentic radio stream feel.

The website is the website I have developed that supports Responsive Design, meaning that the site supports all desktops, tablets and phones natively.

Website

GBPS3

GBPS3 is a website dedicated to providing the video content that the website Giant Bomb (a website about video games) produces in a TV friendly format. It uses their public API to access their huge database of videos. The website, however, has it's own unique categorisation method, ability to access member videos, multiple types of video players, RSS feeds and more.

Website

Former Pkshields.com Designs

Over the last few years, I've gone through a number of designs for this site, Pkshields.com. This is mostly because I'm interested in trying different web techniques constantly and I just constantly have different ideas of what this site should be. So, I'm going to start putting my old designs here to show and demonstrate my past designs.

Pkshields.com v4

Pkshields.com v5

KinectXNA

KinectXNA is an XNA library, built to simplify many of the generic methods used to access, control and calculate the Kinect sensor. It supports the majority of the Kinect features, including: Skeleton Tracking, Video Camera Stream, Depth Stream and Voice Recognition.

Download KinectXNA v1.0

View Source Code

View Documentation

Using this library, I developed a tech demo that can take the Kinect tracked skeleton and applies it to a 3D model. As well as applying the bone structure and orientation from the Kinect to the model, it also can move around in 3D space, corresponding to the users movements. The project supports multiple tracked skeletons. Also supported are the viewing of both the Kinect skeleton (what the Kinect can see) and the model skeleton, as well as Voice commands and the viewing of the Depth and camera streams.

Download 3D Model Demo (Code)

Game Frameworks

I have developed two game frameworks so far: The C++ Game Framework and MuGameFramework.

The C++ Game Framework

The C++ Game Framework is a 2D-3D game framework, built upon C++ and DirectX. It currently supports 2D development, simplifying many of the common functions within DirectX 11.1 into a more XNA style framework. It has support for drawing (textured an non textured) OBBs, circles and lines on screen simply. It also has support for inputs from the keyboard and mouse. It has only just been ported to DirectX 11.1 for Windows 8 but is still being worked on actively to improve stability and feature set. It was developed in conjunction with Physics4K.

Download The C++ Game Framework - Base Game

Download The C++ Game Framework - Source Code

View Source Code

View Documentation

MuGameFramework

MuGameFramework is a 2D game framework, built upon C# and SFML, that integrates many features that are used in video games for quick prototyping and easy development. It is built to support both .NET and Mono. MuGameFramework integrates features such as:

  • Window management
  • Sprite management
  • Sound
  • Input devices
  • Content caching
  • Game services
  • Game components
  • Spritebatch
  • And more!

MuGameFramework is licensed under the New BSD License.

Download MuGameFramework v1.0

View Source Code

View Documentation

MuScreenManager

MuScreenManager is an XNA class library that provides a screen management system, allowing for the simple integration of menus and .other screens into your game. It is based off the Game State Management system provided my Microsoft, built completely from scratch. It can be seen in the demo provided below or in The Game of Life: Mafia Edition.

Although currently provided for XNA users, soon it will be ported to Unity3D as well as the devices that it supports, including touch for both versions of the library. Soon, as well I aim to make it open source so it may be used by other developers.

Download MuScreenManager v1.0

Download Example Game

View Source Code

View Documentation

Super Easy PHP Templating

Super Easy PHP Templating is a very simple, easy to implement PHP templating framework. It requires only two files and on average (depending on the theme) under 10 lines of code to implement. It works be defining certain "blocks" in a theme where the user can insert HTML, PHP or anything else. When the theme is being used, these blocks are defined with simple Start and Stop method calls with the block ID, allowing the user to enter straight HTML inbetween PHP code if needs be. The framework is recursive, supporting blocks with blocks and supports Code Snippets, allowing for modular themes.

Download SEPT v1.0

View Source Code

View Documentation

Windows 8 Apps

In April 2013, Microsoft Ireland ran a competition where you could create 4 Windows 8 apps for the Windows Store and win a x86 Acer tablet. During my Easter break, I decided to enter the competition. I was going from C# and XNA experience to C# and XAML for Windows 8, to create 4 apps in 2 weeks. This is what I created:

Code Compressor: Code Compressor allows you to take your CSS or Javascript code and minifies it, removing all unnecessary characters including white space characters, new line characters, comments, and sometimes block delimiters.

Download Code Compressor

No To 0870: No to 0870 looks up 08* numbers in an online database, which are expensive from mobiles, to find a cheaper national rate through an 01 or 02 number instead.

Download No To 0870

Swatch Internet Time: Swatch Internet Time is a revolutionary way to track the time of day, by eliminating the need for time zones and use the same time all over the world. This is the definitive SIT app for Windows 8. This app includes the current time, in .beats, a Time converter from any timezone into .beats and back again as well as a handy Stopwatch, allowing you to measure time stopwatch style in .beats.

Download Swatch Internet Time

URL Lengthener: Ever look at a shortened URL and wonder what it is linking to? Don't trust the person sending you the URL? Use URL Lengthener to find out what the real link is! Supports all major URL shortener services. The definitive URL Lengthener on Windows 8! This app supports such URL Shortening sites such as t.co, tinyurl.com, is.gd, bit.ly and many others.

Download URL Lengthener

FooDIY

Elevator Pitch: “Our product, FooDIY, helps users in making new and tasty recipes with ingredients they already have. Being able to scan food into the app takes all the fuss out of the traditional flicking through of recipes to find one which you can make. The date-tracking functionality of the items you have allows for food wastage to be reduced. Every month, users will be presented with even more recipes, from their chosen recipe packs, making the options practically endless.”

FooDIY was an app developed as part of Citi's upStart competition, a Dragon's Den style competition between Queen's University of Belfast and Trinity College Dublin. For the competition we developed a proof of concept of an Android app that could record the food that a user had in their cupboard and suggest recipes based on this information. A 35 page business plan was also drafted for the Dragon's Den pitch to show that we, as a team, believed that the app could be financially sucessful.

Download FooDIY Proof of Concept (APK)

Citi upStart Business Plan (PDF)

Brainfuck Interpreter & UI

This is a terminal based & UI interpreter for the extremely minimal Turing-complete programming language Brainfuck. This was developed in just a few days for two reasons: to allow me to gain more experience in C++ across platform (Windows & Linux), as well as more experience in a C++ based UI framework, and as I Was interested in seeing what it would take to develop a simple language interpreter. In this release, I ended up using Qt as the framework.

The terminal application allows for simply passing it Brainfuck code:

        Brainfuck.exe ",>++++ [>++++++++<-] >.....<<."

Or by passing it a file using the -f flag:

        Brainfuck.exe -f BFCode.txt

Download Brainfuck Interpreter UI (Windows)

Download Brainfuck Interpreter CMD (Windows)

Download Brainfuck Interpreter Terminal (Linux 32 bit)

Download Brainfuck Interpreter Terminal (Linux 64 bit)

View Source Code

Global Lockup 2010

Global Lockup 2010 is a small mod created for The Elder Scrolls IV: Oblivion. Tagline:

The player must choose: Overcome the insurmountable task of escaping the Village or give up his morals and slay everyone around him for his freedom

The mod has multiple mechanics, including the Oblivion battle system, stealth and puzzle mechanics. The location is called "The Village", a small walled off village-like area in an unknown place. It is unknown by the player, the characters and the NPCs except the guards. The game has a quest line without multiple endings, but there are also valid endings the player can take without taking most of the quests. The mod was developed as part of a University course.

Download Mod