PLEASE NOTE THIS SITE IS STILL UNDER DEVELOPMENT AND IS MISSING CONTENT
Visit the About Me page for more extensive information on my current projects and experience

ABOUT ME

My name is Michael Parkin-White, I am a 22-year old programmer primarily interested in video game development, graphics programming and high performance computing. I graduated from the University of Bristol in 2017 with a First-Class Bachelors in Computer Science.

I am interested in video game development and am a co-founder of MantaGames, our current primary project is Vitality, a 2D sandbox survival game. Vitality is a commercial project, and we have been greenlit on Steam, so the game will be distributed on that platform when it is complete.

Aside from my main project, my research interests revolve around 3D graphics programming. I find shaders and graphics techniques interesting and enjoy the challenge of bringing new visual effects to life. As a result, I am also in the process of working on a simple 3D level editor, rendering pipeline and all-around 3D game engine to learn about different aspects of game development.

CV - Michael Parkin-White Summer 2018: Michael Parkin-White Curriculum Vitae - 2018.pdf

EXPERIENCE

I started programming in 2007 using a program called GameMaker 7, since then I have worked on a number of projects, both small and large and have come into contact with many other areas of programming.

I am most experienced in using GML (GameMaker language - a scripting language used inside the software) and consider myself totally fluent in the language. I tend to use GM as a base for game projects as it is a fantastic way to prototype games; the software also provides a feature-complete toolset for 2D game creation, and a decent-ish base for simple 3D development.

I have also worked with other programming languages such as C#, PHP, Java and C++ (Along with some limited experience in Haskell, C and Javascript). I have worked on a few websites over the years, including: MantaGames.net, VitalityRPG.com and this website.

SKILLS OVERVIEW

Game Development and design - GameMaker / Java / C#
OO Programming - Java, C# and C++
Website Development and Design - PHP, HTML, CSS, Javascript
Shader Programming - GLSL ES / HLSL9


WORK

MantaGames
(2012 - Present)
I am a co-founder of MantaGames and am currently working as a programmer and designer on the game Vitality.
Freelance and Mentoring
(2013 - Present)
I often work on smaller parts of projects for people. This can involve adding features such as database / login integration into pre-existing games. Or writing the networking system for a game. Along with this, I also do mentoring/tutoring to help others learn about more advanced areas of programming.
Software extension development
(2015 - Present)
I have worked on a number of commercial extensions and game development assets for use with GameMakerStudio. These assets current include shaders along with a work-in-progress base game engine for other developers to use. The assets we have released so far include a 3D textue filtering extension and an Screen-space Ambient-occlusion shader. You can find all of the released assets here on GMMarketplace.




GAME DEVELOPMENT HISTORY

As mentioned before, game development is where my true passion lies, I enjoy the idea that an idea can be brought to life with technology, and that games can be used to tell stories, or demonstrate ideas, or just be straight-up fun!

Starting development in 2007, I spent a few years working on simple 2D projects. As I was young, a lot of my early games were hacked together, and whilst I cannot say I was proud of my code, these old games are still special to me. A quick overview of my larger projects:

Roll (April 2009):

This was this was probably my first fully complete game. Roll was a physics based puzzle-platformer with 44 levels. The player had to draw a path on which a ball would roll down. The task was to avoid hitting certain types of block, and collect all of the pick-ups before reaching a target.

The main inspiration for the game at the time was a very similar game called Coaster Rider.

Siege Wars ( November 2009 ):

Siege wars was my next larger project, it was a side-view castle-defence game, and my first experience of working in a team. I worked with an artist (Ivan Murillo a.k.a TwistedLiquid) and a composer ( Caleb Cuzner a.k.a Nijg).

Siege wars was developed as an entry to the 2BeeGames (Now Indiepub) $10,000 game development contest. Unfortunately, the standard was high, and we did not make it into the final top ten. However the experience was good.

First Recon ( December 2010 ) and Sharp Edge:

After having worked on a few intermediate and smaller projects, I worked with a friend (Andrew Hamilton a.k.a Orange451) on a first person shooter called First Recon. Prior to having started work on the game, we had created a 3d level editor called Sharp Edge, which was later used to create other games.

First recon was the first attempt to actually make a decently featured FPS campaign, however we didn't get far past the first level though I learnt a lot about 3D programming in the process.

Global Anarchy ( April 2011 ) Online FPS:

Global Anarchy was perhaps the biggest turning point for me. Global anarchy was a 3-way effort between myself, Andrew and Jared Krahn (a.k.a Machimanta). Suprisingly, it didn't take long to get the game to a releasable state, and after 2 weeks of solid work on the game, we released a version to the public.

This was my first major stab at networking, which proved to be a challenge at first. The game featured 3 main game modes (Team deathmatch, FFA and One in the chamber), with a domination mode added later on. One of the best technical advancements over our previous games was the integration of the game with our 3D level editor, which made it incredibly easy to create new maps to play on.

Overall, the game was a great load of fun, and for a few weeks, became quite popular with consistently full servers and players enjoying the style of the game.

Global Anarchy 2 ( July 2011 ):

GA2 was a follow-up to our previous title, however this game featured a brand new engine, which was based on raycasted 3D collisions (rather than simple box collisions). We spent a long time working on the engine for the game, and it was both technically and graphically better than the first, however due to our limited experience, the netcode In the new version was flawed, and the game didn't have the same arcade feel that the original game possessed.

We did continue to work on the game, however we did not pursue the release of the game, after its initial public release failure. The game did however serve as a fantastic base for learning and was a fun project to work on.

GADO and the formation of MantaGames ( March 2012 ):

In early 2012, we worked on an FPS called GADO (Global Anarchy Denied operations). This was quite a large project and consisted not only of a new engine, but a new, more advanced level editor. We wanted to try and make GADO into something that we could keep online and maintain for a few months, so our collective team became known as MantaGames, we created the MantaGames.net website and used that as a platform to distribute the game.

At the time of release, we had over 300 registered users for the game's alpha release. The game featured new unlock and ranking systems that were integrated with our online databases, and we put a lot of work into trying to get the game to feel like a game. The game was popular for a few weeks, but as usual, popularity died down.

Dead Anarchy (July 2012):

Dead anarchy was a 3D zombie-themed FPS built off-of a modified GADO engine. The same core for the engine was used, however features were vastly overhauled. This game was the first FPS we had created which was designed to run at 60 fps rather than 30 fps, and featured a collection of new features. One of the most challenging features of the game was the 3D pathfinding.

We implemented the A* pathfinding algorithm using node maps, combining that with 3D collisions, we had created a very bare-bones zombie AI. We had also managed to create some very basic collisions for rounded objects like grenades, which we had never managed to do properly in the past.

We did publically release the game, however it did not really generate much traction in the community, probably due to its very incomplete nature.

GADO Beta (August 2012):

GADO Beta was a revamped version of the original GADO, it featured much better networking and mechanics from the original version, especially in the area of graphics. One large milestone was the addition of a better animation system. Whilst frame-based (MD2) animation had been used in older games, using an extension, we managed to get smooth animation transitions working, and therefore also added reload animations on weapons.

The game was never finished however.

Vitality (January 2013 ) - Still In development:

In early-2013, I teamed up with Jared (Who had already started) on a brand new project called Vitality. Vitality was planned to be a huge game, and out-did the scope of any of our previous games by far. The development of Vitality started off slow, however we had aspirations for the game to be our first commercial release.

After a few months of working on the game, we had planned to create a Kickstarter campaign. In April 2013, we launched our campaign. The campaign was a success and we then put the newly generated funds towards hiring additional team members to work on the soundtrack and art for the game.

Another year later in 2014, we released the first public alpha version of the game. We had put in a tremendous amount of work into the game in the weeks leading up to the first release, the release was however at an unfortunate time for myself, as it was only a few weeks before the start of my A2 (A-level, final Secondary-school) exams.

Over the summer, we revamped the core engine of the game after running into a very frustrating hardware bug in intel integrated graphics controllers that could not be solved in any way causing a very significant delay in development. The summer of 2014 was spent developing the final core infrastructures for the game, including multiplayer and save systems allowing the game to be ready for content addition later on.

Though another timing inconvenience came my way with the start of University giving me very little time to work on the project.

The game is still in development and we hope that we will be able to release the Beta version of the game soon. Whilst the process has been stressful and time consuming, it has taught me some valuable lessons about commercial game development, especially in the areas of working in a team and time management.

I can't say the development process so far has been pretty, but hopefully our work will pay off in the end!

SHADERS AND GRAPHICS PROGRAMMING

In early 2014, I became interested in graphics programming. Prior to starting work with shaders, I had never fully appreciated the actual process of rendering 3D graphics to a scene. Nor did I understand anything about how effects such as lighting, shadow mapping etc. worked.

I began experimenting with shaders on the side, and learning a load of maths at the same time. At the start, I didn't really understand what I was doing, shaders were a whole new paradigm that I had never previously touched.

One of the first significant effects that I managed to get working, was basic frustum-projection shadow mapping. Getting this working helped me gain insight into the process and I was eager to learn more.

I did not do much more with 3D shaders as I put every bit of free time I had into working on Vitality though after I started University, my interest in shaders was re-kindled.

I poured many hours into reading papers online and doing research into a number of different effects. I began work on a Screen space ambient occlusion shader with Andrew, and for weeks, we couldn't get the effect to look good. After the third re-write, we managed to get the effect working, and Andrew wrote a bilateral blur shader that helped solve some of our previous problems.

Following the completion of this shader, I began to look into a number of other effects. The first thing that jumped to mind was cascaded shadow maps. I had heard of them before, but had never truly understood the theory behind them, I still get the idea that half the people who write blogs on shaders, have no idea what they are talking about (myself included).

After wading through paper after paper, the theory clicked, and it only took a few hours before I had a fully functional demo up and running.
SIDEPANEL