PROJECTS
Procedural Generation of Cityscapes
My final year dissertation project focused on using the WaveFunctionCollapse algorithm to procedurally generate 3D cityscapes. The system generates a grid of a given size which can then be filled in with tiles, either by user or can be solved by the algorithm itself.
You can find the written portion of my dissertation here.
Wonzie World
Work on Wonzie World began as summer work in which I ported the game from PC to mobile. This involved adding a new control scheme to allow for touch control and adding alternate methods for users to do stuff such as pausing the game with on screen UI. After the porting was complete I took on additional tasks such as bug fixing pre-exisitng problems within the codebase and adding features such as volume control to ready the game for release on IOS and Android.
Kojima Wars
Taking inspiration from games such as Herzog Zwei, Kojima Wars was a project undertaken as part of a large cohort in which we created a networked multiplayer first-person shooter. Players take control of mechs that can transform between fight and flight mode with the goal for each team being to capture the majority of the bases to gain the most points before the end of the round. My role in this project was to lead the group to help them work cohesively as well as to create systems such as an options menu to improve user experience, setting up gamepad support and creating a user interface for gamepad users.
Portal System
A recreation of the portal effect in Unity. Each portal uses a render texture to show the view from the other portals camera. The cameras are updated relative to the players position to give the impression that the player is looking in one portal and out the other. The project is being further developed to make better use of the physics system to give it a closer feel to that of the original game.
DirectX11 First-Person Shooter
An experiment in creating a first-person shooter in the style of old school shooters such Wolfenstein 3D, within DirectX11. Conducting this experiment gave me a lot of low level C++ experience in which I had to create everything, including the game engine, from scratch.
Open world Streaming
A task to research and develop a method of streaming in an open world environment at runtime. To achieve this, a map is generated using a heightmap texture and then split into world chunks, when the player gets close enough to one of these chunks it loaded. When the player moves far enough away from the chunk, it and any of the objects in it are unloaded.