Projects



Technical Skills Summary

Since I was properly introduced to programming in 2013 I've poured countless hours into trying to better myself as a programmer. I care a lot about how my code gets the job done and I am always trying to find ways to make it better, whether that's by using the best practices, or by being as optimal as possible (within reason). Currently I am confident and experienced in C#, C++ (personal favourite), JavaScript, HTML, and CSS, though I am always learning. I occassionaly dabble in various other languages such as Java, Lua, C, SQL, PHP, and whatever else might catch my interest, though I would not say I am proficient in these (yet).

Over the years I have used a number of tools in developing software and games, the most significant being Visual Studio. I can't guess how many hours I have spent working in VS but it's safe to say I am very comfortable using it. I have experience in using both Unreal Engine (inluding Blueprints) and Unity, as well as Android Studio while developing for mobile Android devices.

If you'd like to know more or have any question about the projects below, the easiest way to contact me is to send me a tweet (@imperialcoder) or an email (george.97@live.co.uk).

* * *

Days Gone By

Enlarge

This is a neat little infograph-type tool that presents you with a visual representation of how many days you have lived of 90 years. The concept to this was heavily inspired by this. I didn't spend much time on this at all but strangely enough it's something I've recieved the most reception on (mostly from complaints regaridng its morbidity).

This was written in javascript generating the result by manipulating the DOM. It turned out to be a good example of just how powerful DOM manipulation can be, creating and adding over 30 000 elements to the page in a split second.

[Link]

Space Game 2000

Enlarge

Space game 2000 is a project I'm really proud of because of how inexperienced I was while making it and yet I still have fun playing it now. It features pixel-perfect collision, some interesting powerups and upgrades purchasable from the store, and spaceship movement that I think feels really natural, despite its simplicity.

This was written in C# using Microsoft's XNA framework and it was one of the very first games I made!

[Download Link]

Wave Cave

Enlarge

This is a pseudo-3D platformer my team and I made during a 24 hour (12 hours every day over a weekend) society-held game jam durng which the theme for was 'Out of the Blue'.

We chose to use Unreal Engine (4.9 if I remember correctly) to develop the game as this was the engine most of the artists were familiar with. However I was not familiar with this engine at all and to make matters worse the machines we were using didn't have Visual Studio installed so the option of writing the game in C++ was out of the window. In retrospect I'm quite glad this happpened as it put me in a position where I had a very limited ammount of time to get to grips with an engine and learn how to use its visual programming interface Blueprints.

By the second half of the Game Jam I was quite comfortable with blueprints and the engine as a whole. This allowed me to implement procedurally generated levels, moving platforms, and destructable meshes for the breakable platforms to name a few things.

Overall my team and I were really happy with the outcome and we all had a lot of fun watching people play our games with genuine enthusiasm.

[Download Link]

Pong

Enlarge

A copy of Pong I made with a few modifications. The game has a few modes each with three varying levels of difficulty to choose from which alters the speed of the ball, paddle, and play-zone.

In classic mode you can play against the computer to be the first one to seven.

Two-player mode is just like classic, except two local players can play against each other. In this mode you can also modify the settings in the options menu for customized games: maybe one player will have a large but slow paddle and the other could have a tiny but fast one.

In spectator mode you can (for whatever reason) watch the computer play against itself in classic mode.

The final and my favorite mode is arcade mode which challenges you to get as many points against the computer as possible with being given five lives. This mode keeps track of players scores in the high score menu.

Looking back at this game there is not much I am unhappy about, but one thing I would change - besides the code itself - is the collision detection. As I have a much better understanding of mathematical physics and mathematics in general I would improve the collision to use timesteps and methods of calculus to be more robust and correct. This way collision detections could be resolved even if the ball is at a high velocity heading toward a barrier.

This was written in C# using Microsoft's XNA framework.

[Download Link]

Soduko

Enlarge

I got really in to playing Sudoku so I made my own simple online mobile-frendly version for fun. There are only two puzzles as of writing. Each puzzle consists of two strings in memory: the first string is the solution consisting of nine chunks of nine characters representing the nine solved blocks, separated by underscores for readability. The second string is a series of dots and spaces, the same length as the first, with the dots representing the the numbers that are given to the player at the start.

This was written in javascript primarily using the DOM to update the page and modify various styling.

[Link]

Incremental Adventure

Enlarge

This is something I worked on to improve my Javascrip and CSS skills. All you do here is click to generate power to purchase more power-generators and their upgrades. I have currently put this project on hold and am most likely to start it over again with my better current knowledge. The idea for and style of this was inspired by this awesome incremental game which is so much more than it seems.

[Link]

This Website

This personal website of mine is 100% my own code written in HTML and CSS. I wrote my own (very simple) captcha and form validation for the home page's contact form and also the image-enlarging feature you see on this page using JavaScript. While creating and maintaining this website I try to keep three things in mind: simplicity, functionality, and accessability.