To create a small scene with Gerstner waves with normal and specular mapped objects, showcasing multiple lighting types, vertex manipulation, shadow mapping and post processing compute shaders using DirectX11
Skills & Techniques used:
Compute Shaders
Hull and Domain Shaders (Tessellation)
Shadow Mapping
Bloom Post-Processing
Normal recalculation & Specular Mapping
Vertex Manipulation
Point Lights & Spotlights
Graphics Debugging with Nsight
A client-server architecture multiplayer game using SFML sockets. Based on the popular .io game Slither.io running on a local network.
Skills & Techniques used:
Linked Lists (snakes)
Packet Management
UDP for game actions and client syncing
TCP for managing new connections and data transfer
Client-side prediction
Custom client-side "Ghost Manager" application protocol
Network testing using Clumsy
Recreation of the End Dimension from Minecraft. Using the GLut framework and example of the fixed functional pipeline.
Skills & Techniques used:
User created geometry using index & vertex arrays with correct normals & textures
Depth sorting (transparency)
Complex Model Loading
Procedurally generated shapes
Multiple cameras
Hierarchical Modelling
Stencil buffer
Wireframe mode
This project was created to study the performance effects of multithreading a string search algorithm such as Rabin Karp.
About the study
The study was conducted by searching for common words of varying lengths in texts of various sizes. The performance of the algorithm (in milliseconds) was then taken into account.
After comparing the box plots of this data, it was clear to see that the Rabin Karp algorithm is affected negatively by multi-threading in comparison to the original time complexity. (Images taken from presentation slides)
Problem: While working as a programmer on a 2.5D RPG with an artist & designer I met online, I ran into an issue where shadows would not be cast onto the ground when using a 2D sprite for the character.
Solution: The solution to this would be to change the model used to Unity's quad mesh. However, natively Unity does not support changing textures. Therefore, I created a modular way of animating a quad mesh inside of unity. This is done by constantly switching the quad mesh's texture per editor-set FPS value. The designer can easily choose how many animations would be needed for the quad and can individually set in-editor the name of the animation (to be used/called in the player animation script) as well as drag and drop animation sprites. This saved a lot of time for the designer to create animations for different objects in game. The game idea was unfortunately scrapped, however I learnt a lot about working with designers and creating code solutions to improve the workflow of other members in the team.
Created a game using the Wemos Arduino kit, with inspiration from "Space Impact". Interfaced with hardware and circuitry to create a game from the ground up.
Full Explanation of code and hardware in YouTube video embedded
Play Game: One Room, One Roomba
This was my entry into the Side Quest #4 with Mediatonic Jam, in which the theme was "One Room"
The objective for the game is to clean up all the dirt in the room and deposit it in the bin before the time runs out. The player is a Roomba with flying capabilities!
I used the Unity engine and C# to create this game in under a week and I learnt a lot about the process of creating & finishing a game from the rapid prototyping stage, all the way up to polishing and fixing bugs post release.
During the game Jam I also got accustomed to importing and rendering models from Blender into the Unity Engine, and the workflow that comes into it as well.
Play Game: Help! The giant Duck Overlord wants to eat perfectly tanned humans again!
Theme: Beach
Bonus Theme: Ducks
The very long and eccentric title describes the aim of the game, your job is to place unsuspecting holiday-makers onto the towels and tan them to perfection, so that the duck overlord can enjoy a tasty snack!
This was my first game jam that I completed from start to finish, although it was an absolute catastrophe with spaghetti code galore! I feel like I should mention it as I learnt and grew a lot as a programmer after creating this game.
During the Jam I learnt about many different approaches to programming games, how to deal with multiple objects, collisions, prefabs, my first glimpse into animation programming, sound and the game loop. As well as publishing a game onto the web using webGL and trying to figure out release bugs that seemingly came out of nowhere.