John Wigg
Hobbyist Gamedev // Render Programmer // Sci. Comp. MSc and Physics BSc
Work Experience
Enhancing and delivering graphical features for Frontier’s in-house game engine Cobra.
Development of a visualisation tool for pan-ExM data as part of my master thesis which was done together with the Department of Engineering Science.
Education
Master thesis on the topic Design and Implementation of a Web-based Visualisation Tool for Pan-ExM Data.
Bachelor thesis on the topic The dynamics of circumstellar dust grains under consideration of the radiative forces.
Graduation with final grade 1.6 (ECTS Grade B).
Graduation from high school with major subject physics. DMV-Abiturpreis 2016 for outstanding performance in the high school subject mathematics.
Skills
Notable Student Projects
Project work done for a computational physics university course. I implemented a Delaunay triangulator using the Bowyer-Watson algorithm and Ruppert’s algorithm as well as a finite element method solver to triangulate and elastically deform arbitrary, non self-intersecting polygons in the Godot Engine. The implementation adds a new node, ElasticBody2D, which can be attached to Polygon2D or CollisionPolygon2D nodes. The completed project also contains a small example game utilizing ElasticBody2D for its gameplay. The C++ source can be added to the Godot engine as a module or a prebuilt binary downloaded from the project page.
Numerical simulation of the dynamics of circumstellar dust under the influence of the central star’s radiation. Main goal of the thesis was to find out whether the so-called Differential Doppler Effect, a force which had not been taken into account in most previous publications, had a notable influence on dust grain trajectories. At least two other publications on this topic where available but yielded conflicting results. The thesis backed one of those publications, whilst conflicting with another by determining that the influence was negligible for most stars.
Project done for a lab work course. The goal was to implement a finite differencing method from scratch in order to solve the Navier-Stokes equations in two dimensions and simulate a lid-driven cavity.
Project work for a computational physics university course. The goal was to write a neural network without using existing machine learning libraries and to train it using data from the MNIST dataset. I expanded the project by creating a Python module from the C++ source as well as collecting handwritten data from students on digits and basic mathematical operators which I then used to program a calculator with handwriting recognition.
Notable Personal Projects
A complete portfolio of all my personal projects is available at https://john-wigg.dev.
After I had gotten a bit more comfortable using the Godot Engine, I started working on a series of open-source demos and tutorials made in the Godot Engine. Until now, I’ve done a Bottled Liquid Shader, Dynamic Water using finite differences and a fragment shader, a simple dynamic 2D Grass Shader, a Sky Aquarium using dynamic water mapped to a sphere and a small tutorial on 2D Metaballs. All of these have the source code openly available under the MIT license at my GitHub and most of these come with a detailed explanation of the implementation.
To hone my (game) programming skills, I decided to start participating in game jams. So far, I’ve participated in 5 different jams: Quarantine Jam, Ludum Dare 46, Godot Wild Jam #25, Ludum Dare 47 and Ubisoft Game Jam 2020 with very encouraging results. Many jam entries are open source and all of them can be played at my itch.io page.
My most successfull and largest game project to date. Inspired by Rainbow Six: Siege fanart that I had done in the past, I decided to create a heavily Pokémon-inspired game in which the player could let operators (the characters in Rainbow Six: Siege) battle against each other. After very positive feedback (and even a retweet by the official Rainbow Six: Siege Twitter account) I added more operators, attacks, and a pass-and-play versus mode. I also did some (sadly to this date unfinished) work on a relay server for implementing online-lobbies.
TESSA is short for The Expanse Solar System Astrometrics and a web application I created for GMing the The Expanse pen-and-paper RPG. It displays a map of the solar system based on orbital data I extracted from NASA JPL’s HORIZONS system and allows the game master to plot routes between different planets and settings of The Expanse.
One of my earliest proper programming projects and probably my first successfull one. This GTA V mod allows adjustable slow motion although it peaked in popularity when I added the “flash mode” which allows running at superhuman speeds, even while in slow motion. With over 60,000 downloads, I am still very proud of this project (and it even was featured in a small video showcase by IGN once).