Space Trading (3rd Year Project WIP)

The aim of this project is to produce a transport simulation game set in space. It will implement a supply and demand system that the player will have to manipulate to make money. This genre usually consists of connecting various nodes together. Nodes are generally represented as industrial buildings, but they can be anything that consumes or generates resources. The player can assign vehicles to carry resources between the nodes. They can then use the money earned from doing this to buy vehicles or repair existing ones and also set up more routes.

Space will be the setting for this game. Nodes will be space stations, vehicles will be space ships. The player will not construct routes in this game like in OpenTTD where the player builds roads and railway lines. Instead, they will assign ships to carry resources from node to node. The ships will use a pathfinding algorithm to navigate space, avoiding asteroids and other obstacles the space setting will provide. There will also be more of an emphasis on the supply and demand aspect of the game. This means that if a station has more than it needs of a particular resource then it will buy that resource for less. To account for this, the player will need to make sure they send ships to buy from stations with high supply and sell to stations with high demand to maximize their profits.

This is my current progress on my third-year project.

This slideshow requires JavaScript.

Currently, the ships use the A* pathfinding algorithm to find their way from station to station. They buy resources from a station and sell at the next one. The supply and demand system is also fully functional with prices being based on current stock. I have also begun work on making the pathfinding dynamic to allow for moving obstacles and disaster style events like black holes opening up in random places.I am going to also use splines to smooth out the paths and make the ship movement look better. I also plan to add pirates that will pursue layer ships and destroy them. To counteract the pirates, the player will be able to hire guard ships that will follow their trade ships keeping them safe. I will also add events like fires in stations that will happen randomly throughout the game to keep players on their toes forcing them to rearrange their trade routes if they want to carry on making money. If time is available I want to add in an AI competitor as well.

Update : I have changed the pathfinding algorithm to be more dynamic now if a tile is changed in the map, ships that use that tile in their path will be alerted and recalculate that part of the path or their whole path if needed. A spline is also calculated along the path using bezier curves from tile to tile. The ships then move along the spline to give a more realistic looking path. I have stress tested the pathfinding with over 100 ships and the impact on the frame rate is minimal. Pirates and navy ships have also being added they will engage enemy ships which enter a radius around their base, pursuing the enemy until it is destroyed or escapes.

Incident Command Training

This was the product that came from the smoke-filled room its purpose was to train and assess Incident Command officers for the fire brigade. It was developed using the Unreal Engine 4. Initially, we worked closely with Staffordshire fire and rescue and then later Humberside fire and rescue, after they were shown an early prototype that I developed. We met for regular face to face interviews to discuss progress and get feedback on the product.

The way it works is there are multiple clients that connect to a server. For the initial scene, there was one trainer and one trainee. The trainer can control the scene by interacting with objects in the world that when clicked opened context menus with various actions that could happen for that object. For example, windows have actions such as toggling various types of smoke coming out of the window. This means the trainer can control the flow of the level and ramp up the pressure for the trainee when the trainer feels its nessarsary. There is also global command buttons the trainer can press to activate scene wide effects like stopping the traffic. The trainee manoeuvres around the scene in a first person viewpoint using the oculus rift to be truly immersed in the training simulation.

Initially, it was solely me working on the project but after I finished the proof of concept another developer joined me. After I brought him up to speed with Unreal and how my current prototype worked we began work on the final product. A 3D artist also worked on the project producing most of the models for the application. Towards of the end of the internship we then trained our 3 replacements on how to use Unreal and how the project worked.

Some of the main aspects I worked on

  • Networking
  • Proof of concept
  • UI
  • The trainers interaction with objects in the world
  • The trainers global commands
  • Making it easy to add new things, for example, adding an interactable object only took a few minutes.
  • Splines
  • Traffic system
  • Placing of hoses
  • System Design
  • Loading commands from file
  • Assigning crew members to roles

Some more screenshots

This slideshow requires JavaScript.

Cave Generator

Cellular Automata Map Generation. After learning about Conway’s game of life, I stumbled across a guide that used a similar principle as the game of life to create maps. Having followed that guide and making my own editions along the way this was the result. Built using Monogame and C#.

Download

Conway’s Game of Life

Here I developed an app that would run Conway’s game of life including all the popular rulesets that are available. I did this with Monogame and C#.  Squares are toggled between Alive and dead depending on the state of their neighbours for example with the base rule it is as follows.

  1. Any live cell with fewer than two live neighbours dies, as if caused by under-population.
  2. Any live cell with two or three live neighbours lives on to the next generation.
  3. Any live cell with more than three live neighbours dies, as if by overpopulation.
  4. Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.

More Info

Download

Controls :

  • Left click on the map to toggle squares Alive
  • Press Space to pause or resume the simulation
  • Press Q to change the rule set.

Smoke Filled Room Virtual Enviroment

I developed this virtual environment to demonstrate to organizations and individuals, mainly the fire brigade that virtual reality applications could be used for training and other commercial purposes. It was developed using the Unity engine and made use of the Oculus rift and the leap motion as shown in the above picture.  This product went on to win an Award during the Humber business week(To be made in Hull award). And helped convince the fire brigade that a training application would be useful for them. It was also shown to companies such as Siemens and other people including the American ambassador to the UK. I was the sole Developer on this project and received some helpful Input from an artist.