Experienced with Vulkan, C++, and
writing NEON and SSE optimized
code.
(check out my
blog post on SIMD!)
About Me
I am a programmer from Nova Scotia, Canada, currently waiting for my graduation for a Bachelor of Computer Science. I spend most of my time working on my FPS game Foxtrot and its custom game engine, as well as Hyperion Engine with my brother.
I am passionate about graphics and low-level programming, and experienced with writing optimized C++.
Skills
- Developed game engines, programming languages, operating systems as well as virtual machines for personal projects, and to expand my learning.
- Very experienced with Godot engine, and used Unity for game development courses in university.
- Experienced with many programming languages including C++, C#, Zig, and Golang.
- Work experience as a full-stack web developer, as well as developing Unreal Engine 4 and 5 plugins and tools.
Projects
Foxtrot is an in-development FPS with a custom game engine written in C++. It has a Vulkan backend, a custom memory pooling system, multithreaded asset loading and integrates with Jolt physics. All objects here are loaded from a project file defined in a custom config language, and streamed in asynchronously.
As well, Foxtrot has an in-house scripting language and a SSE+AVX and Arm NEON optimized math library.
Movement and the basic in-game editor
Sponza test scene
For a final project in a visualization course I was tasked with building an interactive visualization using openly accessible data.
Future positions and velocities are estimated with SGP4 and precomputed into keyframes. These keyframes are interpolated and combined with data loaded from satellite catalogues.
This visualization was written in about a month using C++, Raylib and OpenGL.
Visualization of debris and satellites
Godot Water Demo
Tried to recreate the aesthetic of deep-sea underwater camera footage, and learned a ton of 3d modelling tricks here. This was built using the C# backend for Godot and did some cool lighting tricks by faking a layered fog, and had a few different movement systems for swimming, ladders, and seated.
Showing off movement types, particles and water effects
Godot FPS Movement
Using Godot, I worked on a horror game movement system in C#.
This has head bob, click and drag to open doors a variable amount, sprint, jump and a basic player attachment system.
Movement demo with interactable objects and a crude blockout
A modern Vulkan game engine. Supports multithreaded rendering, VCT, DDGI, raytracing, and much more.
Built with my brother Andrew(@ajmd17), we are currently working towards building a game with Hyperion.
Andrew showing off the realtime DDGI system in Hyperion
Acheron was a 3D OpenGL game engine written completely in C99. This was my main project while I was going through high school, and helped me learn a lot about 3d rendering.
Acheron was a way to learn more about how game engines work internally as well as learn how to structure large projects in C.
multiple point lights around a normal mapped cube in a train tunnel.
Other things
3d modelling
Using Blender and Substance Painter, I modelled and textured this pistol using multiple real-life image references to make a modular pistol for using in games.
This sits at about 760 triangles total, with the whole GLTF model (including textures) being about 410 KiB.
For a programming language jam from Repl.it in 2020, me and Andrew(@ajmd17) wrote PEACH in less than a week.
PEACH is a prototypical interpreted language that is written in Python. Shown in the clip here is a mandlebrot fractal visualizer that I wrote completely in PEACH (link!).
Unfortunately, the original submission thread has been removed over the years.
(slowly) generating the mandlebrot fractal in PEACH
A custom CPU architecture, macro assembler, and VM written as a challenge to write the smallest assembler and VM that is still easy to program for.
For this project, the assembler is programmed in Python, and the VM is programmed in C. It runs blazingly fast, and has a bunch of cool features!
Demo of the VM running with a slow step speed printing "Hello, World"!
Full program written in the custom assembler language
Belter
Belter was a fun side project to try out Dart and Golang. It was an audio-focused social network that allowed you to share audio clips with friends.
Demo of Belter on macOS