top of page

I am a student who is determined to become a jack-of-all-trades in the art of programming and 3D modeling. My goal is to become a versatile expert in these fields, and I am constantly pushing myself to learn new techniques and skills.
My Portfolio
Welcome to my portfolio. Here you’ll find a selection of my work. Explore my projects to learn more about what I do.


3D Modelling Collection
This is a small repository of my 3D models, that I've created over the last 3 years in my study.


Tower Defence 3D (Software Architecture)
During this project, I was given strict code criteria that I needed to hit while developing a tower defence game, including:
- Unit Checks
- Learning how to make a detailed UML Diagram
- Keeping tight track of values
- Expandable code architecture
- EventBus
- Abstract classes
- Unit Checks
- Learning how to make a detailed UML Diagram
- Keeping tight track of values
- Expandable code architecture
- EventBus
- Abstract classes


Down is Relative (Minor Skilled)
During this minor, I set out to achieve learning goals, centered around "turning off" default Unity implementation of gravity and physics forces and creating my own based on research of physics puzzle games (Portal, Portal 2, Manifold Garden, TABS, Totally Reliable Delivery Service, Besiege, Teardown, World of Goo, Armadillo Run).
I focused on recreating the Portal mechanic from Portal 1 and 2, the 6-way gravity of Manifold Garden, the surfaces (gel) mechanics of Portal 2, Elastics/Soft-body physics of Armadillo Run and the gameplay loop of World of Goo. The chosen mechanics fit into my self-imposed requirement of the physics mechanic needing to be predictable, discrete and easy to replicate movements across iterations.
Each mechanic had a 2-3 week development cycle with their own test scenes.
The final product is a game, with a few levels that gradually introduce the player to each mechanic. The player must place the physics tools around the level and then run the simulation on the ball.
I focused on recreating the Portal mechanic from Portal 1 and 2, the 6-way gravity of Manifold Garden, the surfaces (gel) mechanics of Portal 2, Elastics/Soft-body physics of Armadillo Run and the gameplay loop of World of Goo. The chosen mechanics fit into my self-imposed requirement of the physics mechanic needing to be predictable, discrete and easy to replicate movements across iterations.
Each mechanic had a 2-3 week development cycle with their own test scenes.
The final product is a game, with a few levels that gradually introduce the player to each mechanic. The player must place the physics tools around the level and then run the simulation on the ball.


Spoek'nkiekers (Project ShowOff)
Final group project in Year 2 at CMGT in Enschede. This being the longest project of the year (8 weeks) allowed us to scope out complex mechanics, based around the legend of the ghost of Bad Bentheim Castle.
During this project, my main assignment was creating working local multiplayer, synchronizing items, goals, intractable objects, picked up clues. I was also assigned to handle and program game logic, win/lose conditions.
This was (at that time) our longest project, which led to it's share of issues within the team, mainly concerning time management and external events influencing our work (band meetups, travel issues). We planned around those, and the affected people tried to finish everything either in advance or over the weekend.
During this project, my main assignment was creating working local multiplayer, synchronizing items, goals, intractable objects, picked up clues. I was also assigned to handle and program game logic, win/lose conditions.
This was (at that time) our longest project, which led to it's share of issues within the team, mainly concerning time management and external events influencing our work (band meetups, travel issues). We planned around those, and the affected people tried to finish everything either in advance or over the weekend.


Digital Silence (Project Innovation)
During this group project, we researched interesting/unique ways of interacting with a game. We settled on using an android phone and it's NFC reader (for amiibo-inspired scanning of new characters or outfits), vibration motor (for feedback), gyroscope (for screen control), microphone (for input/cleaning the hero). There are 2 minigames (ghost hunt and ghost capture) and 2 microgames (cleaning and eating)
During the course of this project, I created most of the basic framework, as I was more familiar with android development than the other engineer. Afterwards, I focused my attention on introducing NFC characters, making my own library for the job, as the only public one, compatable with Unity was outdated and did not 'reset' the NFC reader, meaning it could only scan ONCE per app install/cache wipe. Other things that I managed to create were the vibration controller, microphone input detection, character customization, scene switching logic, data persistence (as in you can close the app and all progress/stats would be saved) and food mechanic.
On the communication front, during this project our team experienced major burnout due to make-up exams (mainly within the artists) and personal life issues (the second engineer). Despite these problems, we all managed to communicate clearly and manage time constraint issues that came up suddenly (for example, reducing the work load on a person who had an emergency and re-distributing their tasks to the rest).
During the course of this project, I created most of the basic framework, as I was more familiar with android development than the other engineer. Afterwards, I focused my attention on introducing NFC characters, making my own library for the job, as the only public one, compatable with Unity was outdated and did not 'reset' the NFC reader, meaning it could only scan ONCE per app install/cache wipe. Other things that I managed to create were the vibration controller, microphone input detection, character customization, scene switching logic, data persistence (as in you can close the app and all progress/stats would be saved) and food mechanic.
On the communication front, during this project our team experienced major burnout due to make-up exams (mainly within the artists) and personal life issues (the second engineer). Despite these problems, we all managed to communicate clearly and manage time constraint issues that came up suddenly (for example, reducing the work load on a person who had an emergency and re-distributing their tasks to the rest).


Dirty Martini (Project Start-up)
Second group project in Year 2 at CMGT in Enschede. With my team, we decided to create a bartender game, set in a fictional USSR-inspired country where you are a spy gathering information.
During this project, I worked on creating the drink system from scratch, adding stirring, shaking, mixing, color changing, alcohol volume calculations. Later on, I helped out the other programming with the interactions with characters and the randomization of customers.
During this project, I worked on creating the drink system from scratch, adding stirring, shaking, mixing, color changing, alcohol volume calculations. Later on, I helped out the other programming with the interactions with characters and the randomization of customers.


Celsius 46 (Project Customer)
Group project in the beginning of my 2nd year at CMGT in Enschede. With the team, we had to think of an idea based on a sustainable development goal from the United Nations.
We chose life on earth and pollution. During the course of the development process, I worked on creating VFX (like the lighting strike that destroys polluting buildings), outline shaders, game logic and back-end code on handling pollution levels.
We chose life on earth and pollution. During the course of the development process, I worked on creating VFX (like the lighting strike that destroys polluting buildings), outline shaders, game logic and back-end code on handling pollution levels.


Wack-A-Hampter (Project Final Approach)
Physics based game written in C# using the GXPEngine and custom physics system for a group project.
During this group project, I was tasked with making the tooling for level design and to import all items placed by designers in Tiled levels correctly. I was also tasked with making some of the physics objects, for example, the windmill and 'put' system (like in golf).
During this group project, I was tasked with making the tooling for level design and to import all items placed by designers in Tiled levels correctly. I was also tasked with making some of the physics objects, for example, the windmill and 'put' system (like in golf).


Algorithms
During this course, I was given access to the CMGT GXPEngine. Using this rudimentary/basic engine, I was given guidance and tasks to complete which boiled down to implementing A*, Djikstra searches, generating levels using division logic, learning about how to make secure recursive functions (i.e. ones that do not go out of control, causing a script/system crash).


3D Rendering
During this course, we were provided a rudimentary, very basic engine with which I achieved goals/tasks set out by the professors, focused on learning GLSL and shader compliation from it's basics:
- Lighting Engine (including specular calculations, etc)
- Rendering
- Lighting Engine (including specular calculations, etc)
- Rendering


Advanced Tooling
This project is more of a research project. In it I focus on measuring the processing (sorting) speed and memory usage of different sorting types in several programming languages (chosen based on if they have just-in-time-compilation, if they are low-level, etc).
I chose to measure HeapSort, MergeSort and BubbleSort in C++, Java, Python and Rust (it was later dropped) on the same datasets.
I chose to measure HeapSort, MergeSort and BubbleSort in C++, Java, Python and Rust (it was later dropped) on the same datasets.


Procedural Art Cyberpunk City
This project was created for the course Procedural Art at CMGT in Enschede. Upon conditions and tasks set out by the rubric, I was tasked with creating a system/script that generates buildings procedurally.
In my scene, buildings are created via script, materials are assigned via the same script and decorations on/around the buildings are determined by a ScriptableObject. That ScriptableObject also contains information about what buildings with what parameters can be generated in a neighborhood/zone. That SO is then passed on the city generator, that takes everything into account and generates the city, either in editor or as soon as runtime is started.
In my scene, buildings are created via script, materials are assigned via the same script and decorations on/around the buildings are determined by a ScriptableObject. That ScriptableObject also contains information about what buildings with what parameters can be generated in a neighborhood/zone. That SO is then passed on the city generator, that takes everything into account and generates the city, either in editor or as soon as runtime is started.


Car AI/Logics, Road Generation Tools (Personal Portfolio Quartile 4)
During this quartile's personal portfolio I worked on creating a road system tool that allows you to make road networks using procedural generated meshes that are then split into logical lanes. Afterwards, I focused on making a rudimentary vehicle AI that follows basic road laws, etc.


Aircraft/Lifting Body Physics (Personal Portfolio Quartile 3)
During this quartile's personal portfolio I worked on creating a plane flight model that used custom physics and did not totally rely on Unity's inbuilt tools. The way I achieved this was to create several invisible lifting bodies and control surfaces that each influenced a section of the plane, making it inherently more stable that applying all forces to the middle of the plane and then having to manually clamp and smooth all movements.
For LO2, I created a Radar system, that is inspired by a Pulse-doppler radar set. I then mounted it inside the plane from LO1 and gave it a Armament Manager and missiles to showcase the Radar set's abilities (SRC PD, ACM) and the fact that enemies can notch the radar (flying perpendicular to the plane's direction of travel, making the combined/closing speed close to 0m/s).
For LO2, I created a Radar system, that is inspired by a Pulse-doppler radar set. I then mounted it inside the plane from LO1 and gave it a Armament Manager and missiles to showcase the Radar set's abilities (SRC PD, ACM) and the fact that enemies can notch the radar (flying perpendicular to the plane's direction of travel, making the combined/closing speed close to 0m/s).


Virtual Reality (Personal Portfolio Quartile 2)
This project was made for the 2nd Quartile iteration of the CMGT course Personal Portfolio in Year 2 of the study. This time around, I focused on making a VR game, inspired by Horseshoes, Hotdogs and Handgrenades to learn how different view/movement mechanics and types influence the user (motion sickness). This project also allowed me to create a working gun system that is very fun to use and taught me how to use grab interactables and how the XR Toolkit for Unity works in general.
The build only runs on OpenXR, so it can be used with any headset, proven it's plugged in. I did not make a standalone Oculus build (but I did make a Meta developer account for purposes of using the Quest 2 as a development tool/kit) so it would not be hard to create a standalone build when or if required.
Despite not making a build, I made sure that the builds themselves fit within the Quest 2's resources via way of optimization by tracking the profiler, debug logs in builds and simplifying scripts wherever possible.
The build only runs on OpenXR, so it can be used with any headset, proven it's plugged in. I did not make a standalone Oculus build (but I did make a Meta developer account for purposes of using the Quest 2 as a development tool/kit) so it would not be hard to create a standalone build when or if required.
Despite not making a build, I made sure that the builds themselves fit within the Quest 2's resources via way of optimization by tracking the profiler, debug logs in builds and simplifying scripts wherever possible.


Mesh Creation, Animation, Textures (Personal Portfolio Quartile 1)
During my time studying a CMGT, we have a course called Personal Portfolio. During this course, we set out our own goals that we would like to achieve during said quartile.
My project consisted of 2 LOs (Learning Outcomes) that boiled down to:
1. Learning to animate a humanoid (I chose to make a walking cycle)
2. Learning to make an advanced texture that is not just a color map but also contains emission, metallic, roughness maps.
3. Importing the animation (walk) into Unity and synchronizing the contact (step) frames with an audio (step sound).
In the end, I believe they turned out pretty well. This is to help me further my goal of becoming an all-around jack-of-all-trades developer.
My project consisted of 2 LOs (Learning Outcomes) that boiled down to:
1. Learning to animate a humanoid (I chose to make a walking cycle)
2. Learning to make an advanced texture that is not just a color map but also contains emission, metallic, roughness maps.
3. Importing the animation (walk) into Unity and synchronizing the contact (step) frames with an audio (step sound).
In the end, I believe they turned out pretty well. This is to help me further my goal of becoming an all-around jack-of-all-trades developer.


Zipang: The Game
This is a project made for the assessment in the Term 4 Course "Unity Scripting". It is one of my first fully fledged out 3D games made using Unity.
The theme is you are the modern Japan Maritime Self-Defence Force Destroyer DDG-173 JS Kongo, thrust into the past at the battle of Midway where you must choose which side to fight with, or fight them both to stay neutral.
Engine: Unity
Players: 1
Genre: PvE
The theme is you are the modern Japan Maritime Self-Defence Force Destroyer DDG-173 JS Kongo, thrust into the past at the battle of Midway where you must choose which side to fight with, or fight them both to stay neutral.
Engine: Unity
Players: 1
Genre: PvE


Save Our Seas
This is my first semi-serious project, created for the intake for Creative Media and Game Technologies.
It focuses on a submarine, cleaning up the ocean as per Sustainable Development Goal 14 of the United Nations, that also being the theme of the game. There is also wildlife that the player must protect while cleaning.
Engine: Game Maker 2
Players: 1
Genre: PvE
It focuses on a submarine, cleaning up the ocean as per Sustainable Development Goal 14 of the United Nations, that also being the theme of the game. There is also wildlife that the player must protect while cleaning.
Engine: Game Maker 2
Players: 1
Genre: PvE
bottom of page