I am currently building a small hex based strategy game, its in the very early stages but the idea is for it to play out similar to the board game Diplomacy where all participants plan out all the moves for their turn and then all moves happen simultaneously, the big difference to diplomacy is that when two enemy units attempt to move into the same tile rather than neither of them succeeding, the game zooms into the contested tile and that hex is subdivided into smaller hex where a battle will take place. each overworld unit will be made up of multiple units and the combat will work in the same way as the overworld movement where turns happen simultaneously but now you have the option of both move and attack for each unit.
My current plan is to develop this slowly in my free time and once I have enough of a playable prototype, show it to various friends for feedback and if people like the idea then I will hopefully be able to get a few other interested people to help out with art and additional programming/design and continue to flesh it out. The end goal would most likely be to release it as a small “pay what you want” game on itch.
The dungeon rooms are initially placed by randomly spawning them inside a radius. This results in a lot of overlapping squares, Separating Axis Theorem is then used to detect which squares are overlapping. The squares are then moved outward from the overlapped squares until they are no longer overlapping, similarity to how a lot of physics based collision systems work. So Separating Axis Theorem is in this case quite literally used to separate the dungeon rooms.
Now that the rooms have been placed they need to be connected. A great to connect a large volume of points is triangulation. Delaunay triangulation is a form of triangulation that results in the points being triangulated in such a way that no point is inside a triangle. This is ideal for dungeons as that means we wont have any crazy overlapping or strange long connections.
Once the rooms have all been connected we don’t need every single connection so you want to construct a planer graph for a more balanced amount of connections. There are lots of different planar graphs that can be used but i chose the Urquhart graph due its simplicity and elegance. How it works is you go through all the triangles and simply remove the longest side. This results in a very pleasing and effective set of coordinates.
In this project i created a procedural dungeon generator by combining several different algorithms. You start by randomly placing a set amount of rectangles in a defined radius. You then separate out the rectangles so none are overlapping using Separating Axis Theorem. Once you have all the rooms placed you connect them up using Delaunnay Triangulation. This results in a nice set of triangles but we don’t need that many connections, we need to make a more dungeon like layout which i do here by using a Urquhart graph to get a very dungeon-y lay out of paths. We now have all the data we need, we just have to construct it. So we take the rooms and replace the inner areaswith floor tiles and the outer areas with wall tiles, we then can replace connection lines with corridor tiles and then finally we have a dungeon.
This system will hopefully be fleshed out further in the future with the addition of a random interior to the dungeon rooms with multiple kinds of tiles.
Unity’s Entity Component System was used to create dynamic and interesting voxel water allowing us to have tens of thousands of individual voxels acting as water at any one time.
Arcade Style Racing Game
The game was created to have similar game play feel to games like Crash Team Racing and Mario Cart. This meant making the driving more focused on fun than realism and having mechanics like power ups.
The Game, while supporting other control schemes like mouse and keyboard or game pad, was built to be used with Hands On Throttle-And-Stick controllers (HOTAS). This was an interesting technical challenge as the game needed to be designed and developed to get the most out of these controllers and make sure the game worked well and was fun to play with them.
Vox Racers is an Arcade style racing game with a voxel style. In order to focus on maximizing the fun of faced paced racing games the game was built to be played with HOTAS ( Hands On Throttle-And-Stick) controllers which allows the player to have much more control over tight turns and allowed for precise acceleration and deceleration as well as generally making the hover vehicles more fun to control. The team that worked on the game consisted of one artist, one sound engineer and 3 programmers. I worked on much of the environment effects like the water system as well as procedural elements of the game, asset implementation, tools programming and a lot of general bug fixing.
Vox Racers started off as a game jam game though grew to being much more. The team that made it thought that it had a lot of potential so they decided to expand the team and keep working on it. That’s when i was brought on, together we decide to enter the game in Abertay University’s Dare Academy Competition. This consisted of a video pitch, an in person pitch to industry veterans, a week of hot housing where we could work on the game and get guidance and finally a trip to EGX where we could expo the game to the public and the winner would be decided. we managed to get into the competition and got through each of those stages and got to show the game of at EGX. though we didn’t win being in the final six teams was a great honour and Vox Racers was very popular with the general public which was very rewarding to see. since then the game has been work on more and hopefully in the future will be able to be released.
Cellular Automata works by each cell looking at its neighbors and reacting to the neighboring cells based on a rule set. What you see in the gif above is the cells behaving like water due to a rule set that makes them avoid each other and objects with a preference for heading downward simulating gravity.
A simple experiment to see if i could make a Terraria style water simulation using Cellular Autoamta.
Most of the game is procedurally generated. The placement of the stations as well as the train lines are completely random so the game is different each time you play. It also randomly names the stations from a list of station names that is loaded in from a text file.
To connect up the the stations after they are generated I created a spline system to act as the tracks that the trains could follow.
Trains mission was my submission to the Grads in Games Competition “Search for a Star”. The game started out as a game jam game created at the 2018 Global Game Jam. make this game was a great experience and I really liked the game idea so me and the artist(Molly McCarthy) who also worked on it kept developing it after the jam. It soon became better then what the search for a star game I had been working on so I kept working on and it became my search for a star game. The game consists of a procedurally generated subway system that the player has to make their way through to a certain station. After search for a star me and the artist have continued to improve and polish it with the intention of possibly releasing it fully on Itch once its good enough.