Hey, I'm Ben and welcome to my portfolio. I have enjoyed learning how video games are made and creating different experiments in my spare time since I was in school. Once I finished school, I studied at Games Development at Northbrook MET for three years and learnt many different areas of making games. I first started playing around with Unity while I was at school, I finished my first project in the first year of college. Since then I've enjoyed programming different mechanics on many different projects in my spare time, currently focusing on the multiplayer side of coding.
VTOL VR Multiplayer ModGithub Repository
Back when I started the VTOL VR Mod Loader, I also started on implementing a multiplayer into the game. I first started with using the network solution DarkRift 2 then Forge Networking and have finally settled on Steam's Networking API after I had problems with the previous two. The mod is created in C# as a .net library which then gets injected by the mod loader into the game so that it can run my code.
Over multiple months I have been working on this, there have been many challenges that I've had to overcome with creating a mod, such as the limited debugging tools and not having access to test in the Unity Editor, but by far the hardest part is reading and understanding the uncommented, decompiled code. Learning what things do what and searching for new ways to achieve things in the game is the most enjoying thing about it.
VTOL VR Mod LoaderWebsite Github Repository
I created this mod loader in April 2019 and have been working on it scince. It's created in WPF using SharpMonoInjector by Github user warbler. It originally just injected user-created dlls into the game so they could run their custom code, but now it first loads itself and imports a custom UI from an asset bundle to provide a more user-friendly experience when playing with mods and skins with also an API to help mod creators to different tasks.
It's a small community with currently just over 600 downloads and 200 members in the discord server. I actively create mods for it as well in another repository on Github. I have learnt a lot also in other areas from this project such as web development, having to create the website and database.
The FallingItch.io Page Github Repository
The Falling was created for a game jam which was hosted at our college. The theme was "5 seconds to live" and we teamed up with people from different classes. I ended up being in a small team of two, I was the coder and the other person was the artist, we decided to go for a simple platformer where you had to quickly pick the correct whole to fall into to collect the coin. You would have a brief time at the start to see where the coin was then the wholes would get covered up and you had to guess which one had the coin at the bottom.
We managed to complete the game in 24 hours we had, this was mainly because we had picked a simple idea and kept it simple. There were some challenges though, the main one being trying to export it as a WebGL project. As I had been testing it as a standalone exe there were some hidden issues when I switched the build to WebGL and uploaded it first to itch.io., one of the issues didn't get fixed in time but I am happy with the final outcome.
Raft ModdingRaft Modding Website My Raft Modding Account
I have been apart of the raft modding community for a while and have created a couple of mods. Mods were first created as class libraries then you would place the dll in the mods folder but now you can just place CSharp files and it will compile it for you. All my mods were created by me alone and added small features to the game such as increasing a spawn rate of items, spawning items and increasing the size of nets.
As this was my first time modding a game built in the Unity engine there was a lot of exploring, finding new tools and finding different scripts/objects to do what you want to change. The hardest challenge of them all was trying to understand how Raft works in multiplayer. Syncing objects up and sending custom messages, but now after testing and experimenting, we have made it easier for future mod creators.
PollutedDownload Page Github Repository
Polluted was my final major project for my last year at college. We had 13 weeks to create a game based on a chosen word, this project the word was "Forgotten". I decided to create a survival game where you are placed in an abandoned city and you are left to survive. For this project we couldn't work in teams, so all the art and programming was done by me.
This project didn't turn as well as I hoped, it had a procedural generating city with items spawning in the houses but it was very empty and not seeming very abandoned. The hardest part about this was completing the art as well as doing the programming, as we had to create the assets our selves it meant I wasted a lot of time trying to create models and textures. Some of it's best features were the procedural generating city and the inventory system.
Tools: Visual Studio, Unity, Blender, Photoshop
UConsoleDownload Page Github Repository
UConsole is a small standalone console you can add to existing games and then you can easily add custom commands. I made this because lots of my projects, during development I wanted a console where I could spawn things or test actions without having to play the whole game to get to that part. It's meant to be a drag and drop so you don't have to do much work to it.
The main challenge with this project was that I hadn't done much work with actions/callbacks before. I would say that this project works, but it isn't perfect. It requires TextMeshPro because the default Unity text was blurly, and the code isn't optimised or thought through.
BattleshipsDownload Page Github Repository Showcase Video
For Unit 12 at college, we had to create a game based on the theme Nautical in two weeks. For this unit, I tried to make a .io style game where users would spawn in a boat and had to skin other boats. BattleShips uses Forge Networking Remastered by Bearded Man Studios, then users would have to connect to a server by the IP because there was no master server to host a list of lobbies.
This project isn't very polished, I created all the art in photoshop my self then used Unity's basic sprites for things like the cannonballs. The hardest part about this project was the time frame, only have two weeks to complete the game and do all the writing for our WordPress sites to present to the tutor.
UERPDownload Page Github Repository
UUERP stands for Unity Editor Rich Presense, it's my first plugin for the Unity Editor. It adds discord rich presence into the editor so you can show off to people on discord what you are currently working on. It first started out as some csharp files but then I learnt that you can make a standalone plugin instead so it was smaller in editors folder, this plugin was first created in unity then I would copy the code over to Visual Studio to compile a dll.
This was created at the start of 2019 and now discord's API has changed so it needs some revisiting. If I revisit this project I would like to try and get this onto the asset store so that it's easier for people to install and add to their projects.
VR Physics GunGithub Repository
This was a quick prototype of recreating the Physics Gun from Garry's Mod in VR. I created this as soon as I got my first VR headset using Unity and SteamVR's Plugin 1.X.X before they had redone the inputs system in 2.0.0. This prototype was done over one weekend in 2018 and I would like to revisit it to improve it.
This was my first real test with using VR inside of Unity as I had only got my headset a day before I started this. All the art was just basic cubes and the line was just a line renderer from your controller to where the cube was meant to be. I hope to revisit this with Unity's new XR system and create a better-looking prototype which may include some other features from Garry's Mod.
Block FactoryGameJolt Page
Block Factory was my final major project for my first year in Level 3 Games Development at Northbrook. This also was my first completed 3D game which made it to second in the category in action. The assets were created in Magica Voxel. I also used Magica Voxel to create the UI, I did this by creating the background panels then exporting it as a 2D image which I would use in the UI background.
Looking back at this project the one big issue with it is the lighting. It was meant to be set inside a factory however I had no experience with how to create good lighting so I just ended up making everything a bright white which made it harder to tell the depth. Another challenge with this project was getting the pipes working where items would travel along and get filtered correctly, the final implementation wasn't good or optimised but it worked most of the time.
Mythological Head Football
Mythological Head Football was my final major project in Level 2 Games Development at Northbrook. The theme was Mythology and from inspired browser football games, I created a head football game where you would play as different mythological gods. This was around the time when I first started using Unity back in version 5.4 and learning C# at the same time. I am really happy with how this project turned out as it and high expectations when I created the plan for my WordPress site.
One of the biggest challenges about this project was the decision to try adding multiplayer using Photon Networking. Having done nothing like creating games before then trying to create a game with multiplayer in mind. It ended up working but it would constantly desync/lag, but glad I tried it and didn't give up.
Infected 2DItch.io Page
Infected 2D was the first game I made in my spare time. I created this while at college while creating Mythological Head Football because I wanted a project where I wouldn't have to keep documenting my progress. It was based off a simple concept of tag where one person was picked at random then the other local players have not to get tagged by them, then at the end of the timer the person tagged dies.
This project overall was a challenge, learning how components worked, how to import assets, how physics work and how to get the different controllers working.