Programming Club
To keep myself busy while looking for work post-university i have been running an after-school programming club at a local primary school since October 2015. Before this I had had little prior experience of Python and none of Scratch or teaching. As a teaching aid I have a Studio for scratch projects where I upload demos, tutorials and other resources for the club. Every new student starts off with the Space Apples project where I talk them through basic movement, input, ifs, loops and variables. I have also used python sparingly in the club but had been limited to a browser only version that was not as kid-friendly as scratch.
Project Helix
A final year group project for a mix of programmers and artists, we were tasked with creating an asymmetrical co-op game that used the Oculus Rift. We decided to use Unreal Engine 4 which presented some unique challenges as it was still in active development at the time.
Project Helix is a Co-operative game with one player playing an escapee using the Rift, the other (or 'backseat') player provided over-watch, they were not in the facility with the Rift player, rather they has access to certain systems such as security cameras, room layouts and the ability to enable/disable traps and keypads.
The game also featured procedural generation as most of the programmers on the team, myself included, had a great interest in PCG and had written various projects and papers on it previously. To that end the level contained an assortment of pre-created rooms connected via generated corridors and filled with a randomised set of traps.
The combination of asymmetrical game design and procedural generation made Project Helix very complex, particularly exacerbated by networking issues. We overcame these hurdles and won the Technical Achievement award from the university because of it.
Project Helix is a Co-operative game with one player playing an escapee using the Rift, the other (or 'backseat') player provided over-watch, they were not in the facility with the Rift player, rather they has access to certain systems such as security cameras, room layouts and the ability to enable/disable traps and keypads.
The game also featured procedural generation as most of the programmers on the team, myself included, had a great interest in PCG and had written various projects and papers on it previously. To that end the level contained an assortment of pre-created rooms connected via generated corridors and filled with a randomised set of traps.
The combination of asymmetrical game design and procedural generation made Project Helix very complex, particularly exacerbated by networking issues. We overcame these hurdles and won the Technical Achievement award from the university because of it.
Astro Beats
For my dissertation project I wanted to look into games where the game-play is dictated, partially or wholly, by the score. These types of games are known as being Audio Reactive. Specifically I studied whether players could tell the difference between audio-generated and randomly-generated gameplay. To this end I created Astro Beats, an Asteroids-like game with three levels each with either audio or random generation.
While the study was inconclusive, it wasn't expressive enough for the differences to be noticed, the game itself was well received and I'm currently in the process of remaking it with more features and unhindered by the need to be used scientifically. Astro Beats is available for download here. |
Topple Table
Topple Table was created for the Game Behaviour module which required an interesting game that used AI and Physics as central mechanics and was to use Unreal Engine 4.
The player controlled a sentient table powered by thrusters on each side, its purpose was to get drinks for customers - a task made difficult as the glasses would slide off if you went too fast. Once served the customers would exit the room whereas if they were not served soon enough they would collapse, die and the table would receive bad performance. If the performance dropped to zero the game would end and the table scrapped.
Moving also uses up the tables energy reserves which once depleted would cause a game over however the table is able to replenish its energy by cleaning up (or 'eating') any dead customers. The way the game is won is by keeping performance and energy high enough until a timer runs out. Keeping both energy and performance balanced is a juggling act for the player as fulfilling one depletes the other. The customers are controlled by a behaviour tree that controls them based on their thirst.
The player controlled a sentient table powered by thrusters on each side, its purpose was to get drinks for customers - a task made difficult as the glasses would slide off if you went too fast. Once served the customers would exit the room whereas if they were not served soon enough they would collapse, die and the table would receive bad performance. If the performance dropped to zero the game would end and the table scrapped.
Moving also uses up the tables energy reserves which once depleted would cause a game over however the table is able to replenish its energy by cleaning up (or 'eating') any dead customers. The way the game is won is by keeping performance and energy high enough until a timer runs out. Keeping both energy and performance balanced is a juggling act for the player as fulfilling one depletes the other. The customers are controlled by a behaviour tree that controls them based on their thirst.
Gorilla Warfare
A team project completed with three other programmers over a 12 week period and received a first. The game featured an infinite open world with varied landscapes, randomly generated dungeons, enemies, character upgrades and a global high score system hosted at cypherstone.co.uk, the game is playable here.