Portfolio: Dexter André Tofteland

Gameplay, 3D Mathematics, Physics

Quick access:
 CV

About Me

My name is Dexter André and I am a professional game programmer, currently employed at Firesprite as an Intermediate (Physics) Programmer. I have a bachelor's degree in Game Technology and Simulation and a degree for a one-year course in Augmented and Virtual Reality. From Norway, currently living in Liverpool, UK. 

I have nearly 5 years of professional Unreal and C++ experience, and several more years of Unity and C# experience from my education and free-time projects. Additionally, some experience with Rust, JavaScript, OpenGL, GLSL, HTML, and CSS. I love working with 3D mathematics, physics, camera, characters — anything that moves! I have also worked with tools creation, audio analysis, UI, performance profiling, and quest logic. Although I have a preference towards 3D mathematics, I'm happy with a challenge.

In my free time, I enjoy stylistic 3D platformers, puzzle games, city-builders, and action games. A good narrative is a big bonus! Some of my favorite games are:
Ico, Bloodborne, Sekiro, Paper Mario 2, Õkami, Pikmin, Snake Pass, Wind Waker, Frostpunk, Hollow Knight, The Banner Saga, Risk of Rain, Snakebird, and Rainworld.
And I play the piano.

Qualities

Works

(Click on the images for more information.)

Online Combat Game

[Unannounced Game]

  • Camera rig, convex hull editor tool, various gameplay and audio-related tasks

Sea of Thieves

[Season 6 Content]

  • Worked with Rare via Firesprite
  • Quest logic, procedural dialogue, performance profiling, physics

Fishing: North Atlantic

[Released 2020]

  • Flocking, vertex animations, sonar GUI, fishing gameplay mechanics, bug fixing, converting Blueprints into C++

First Aid Simulator

[Released 2019, Unavailable]

  • Gameplay and tools programming

Gaming Against Depression

[Commercial Demo]

  • Project management, game design, puzzle mechanics
  • Communicated with hospital (client), organized playtesting with patients

Unison Escape

[GMTK Game Jam, 2021]

  • Co-op puzzle game
  • Generalist programming, interaction mechanics, camera mechanics

Monster Duet

[Mix and Game Jam, 2020]

  • Rhythm game
  • Rhythm engine programming

Jesus Is My Canvas

[GGJ 2020]

  • Smudge tool: procedural mesh manipulation
  • With music from David Wise

World Minigolf

[Mix and Game Jam, 2019]

  • Gameplay programming, curved world shader

Let's Renovate: Doggy Style!

[GGJ 2019]

  • Painting game
  • Physics, texture painting mechanic

Go Ham!

[Local 7-Hour Game Jam, 2018]

  • UI programming

Nordavind

[Bachelor Project, 2018]

  • 3D platformer
  • Project management, game design, character game mechanics, shaders

Butt Simulator

[GGJ 2018]

  • Leap Motion integration, physics, music
  • Presented game in front of 250 people, also broadcast on Twitch

Trance Mission

[GGJ 2018]

  • Rhythm game
  • Rhythm game engine, animated fractal shader

GalápaSec

[Group Assignment, 2017]

  • InVision augmented reality app design
  • Game design, UX, menu graphics

Project Biohazard

[Group Extracurricular Project, 2017]

  • Project management, game design, procedural level generation

Bumpit

[GGJ 2017]

  • Musical gameplay
  • Conducted voice recording with Nikki Rapp

Swarm

[Solo Assignment, 2016]

  • 2D twin-stick shooter

Project RTS

[Group Assignment, 2016]

  • Real-time strategy game
  • Camera mechanics

Chicken Hunt

[Deichman GGJ 2016]

  • 2D stealth game
  • Gameplay mechanics

Bad Reception

[Group Extracurricular Project]

  • 3D platformer
  • Project management, game design, gameplay mechanics

Deadly Dancer

[Group Assignment, 2016]

  • Rhythm game
  • Rhythm engine programming

Maya Ragequit Simulator

[GGJ 2016]

  • VR experience
  • Music

Stuffy Hitman

[GGJ 2016]

  • 2D platformer
  • Gameplay programming

Game Mechanics

Flocking

[C++, Unreal Engine 4, from Fishing: North Atlantic]

  • Specialized Boids flocking with wide range of settings for behaviors

Graph Gameplay

[C#, Unity]

  • Determines quad flow through graph of connected (or unconnected) points
  • Similar to edge loops in 3D software

Rhythm Engine

[C#, Unity]

  • Synchronized system with music
  • Warning: Video is loud!

Terrain Sliding

[C#, Unity]

  • Downwards sliding on terrain
  • List Item
  • Part of Bachelor's project

Music Visualizer

[C#, Unity]

  • Moves cubes based on audio spectrum analysis

Game Engine Features

Convex Hull (2D)

[C++, OpenGL, Qt]

  • Creates a 2D convex hull from random point set
  • Graham Scan algorithm

Barycentric Collision

[C++, OpenGL, Qt]

  • Using barycentric coordinates for general mesh collision

Frustum Culling

[C++, OpenGL, Qt]

  • Culls objects outside camera frustum

Reading Map Data

[C++, OpenGL, Qt]

  • Reads Norwegian .SOSI height map into a 3D representation

Technical Art

Sonar GUI Streaming

[C++, Unreal Engine 4, from Fishing: North Atlantic]

  • Streams raytraced data into circular array buffer and displays graphic
  • Automatically vertically scales sonar history when exceeding or retreating from designer-specified bounds, and manual horizontal zoom

Vertex Animation Material

[C++, Unreal Engine 4, from Fishing: North Atlantic]

  • Driving flag animation from baked wind simulation
  • Reads from baked texture and ping-pongs animation

Deformable Snow

[C#, Unity, Shader Forge]

  • Deforms snow by drawing to splat map, which offsets rendered mesh
  • Tessellation based on camera distance

Animated Fractal Shader

[C#, Unity, ShaderLab]

  • Animated Mandelbrot fractal
  • Animation in sync with music underlying a rhythm engine

Strange Attractor

[Python, Autodesk Maya]

  • Procedurally generated Lorenz attractor
  • Custom Python script

Guides / Tutorials

Mathematics Survival Guide

[Extracurricular]

  • 42-page cheat sheet summary for two semesters of mathematics courses
  • Covers topics like calculus, linear algebra, geometry, differential equations, etc.
  • Norwegian only

Vertex Counting Formula

[Extracurricular]

  • Article on counting vertices on subdivided cube

Runtime 2D Trajectory Modelling

[Extracurricular]

  • Article on modelling the trajectory of a 2D curve
  • Height and length as parameters

3rd Person Camera Trigonometry

[Extracurricular]

  • Article on the trigonometry behind a simple 3rd-person spherical camera rig

GeoGebra Files

Refraction (2D)

[Extracurricular]

  • Refracting rays through a circle in 2D

Visible Area of Circle

[Extracurricular]

  • Calculating the visible area of a circle from arbitrary position

Cubic Hermite Interpolation

[Extracurricular]

  • Interpolating 5 arbitrary points via simpler subcurves

de Casteljau Spline

[Extracurricular]

  • Bézier spline via the de Casteljau algorithm using 5 arbitrary control points

Curvature

[Extracurricular]

  • Calculating curvature (in red) of arbitrary parametric curve

Illustrations

Unit Circle

[Extracurricular]

  • Unit circle with degrees, exact radians, and decimal radians

STELLA Simulations

Report: National Park

[Group Assignment]

  • Report for re-introduction of leopards into a national park, and the ecological effect following this situation

Report: Phone Company

[Group Assignment]

  • Report for re-introduction of leopards into a national park, and the ecological effect following this situation

Report: Chinese Population

[Group Assignment]

  • Report for re-introduction of leopards into a national park, and the ecological effect following this situation

Experience Timeline

Date Experience
Oct 2021 — Ongoing Intermediate (Physics) Programmer at Firesprite
Oct 2020 — Oct 2021 Junior (Gameplay) Programmer at Firesprite
Jul 2019 — Sep 2020 Gameplay Programmer at Misc Games
Feb 2020 Attended Global Game Jam 2020; created "Jesus Is My Canvas" (intro song by David Wise)
Nov 2019 Held a presentation about introductory game development at Sølvberget Library, Stavanger
Oct 2019 Attended Mix and Game Jam 2019; created "World Minigolf"
Aug 2019 Held a three-day VR programming course for kids age 13-15 in Unity with HTC Vive for Making View
Feb 2017 — Jun 2019 Worked as a mentor in mathematics at Klatreveggen Leksehjelp
Jun 2019 Held a one-week programming course for kids age 10-12 in Unity
Jan 2019 — Jun 2019 Six months of professional practice.
Worked on "Gaming Against Depression" and "Førstemann på skadested".
Part of course "Professional Practice".
Aug 2018 — Jun 2019 One-year add-on programme in "Augmented and Virtual Reality" at Inland University of Applied Sciences
Jan 2019 Volunteered and attended Global Game Jam 2019; created "Let's Renovate: Doggy Style!"
Nov 2018 Attended local game jam; created "Go Ham!"
Oct 2018 Attended two-day motion capture course (again)
Aug 2015 — Jun 2018 Bachelor's degree in "Game Technology and Simulation" at Inland University of Applied Sciences
Jun 2018 Attended two-day motion capture course
Jan 2016 — Jun 2018 Worked as teaching assistant in mathematics at Inland University of Applied Sciences
Apr 2018 Held a playtest for game "Nordavind" at TestBonanza #16
Mar 2018 Held a playtest for game "Nordavind" at Inland University of Applied Sciences
Jan 2018 Volunteered and attended Global Game Jam 2018; created "Trance Mission" and "Butt Simulator"
Dec 2017 Delivered game concept "Nordavind" as part of course "Preproduction for Pilot"
Aug 2017 — Oct 2017 Designed and lectured a nine-week mathematics preparatory course for Inland University of Applied Sciences
Feb 2017 — Jun 2017 Created three assignments for course "Game- and Systems Thinking" for Inland University of Applied Sciences
Aug 2015 — Jun 2017 Project leader and programmer at student game studio "Loony Bean"
Jun 2017 Delivered game concept "GalápaSec" as part of course "Gamification"
Feb 2017 Held a playtest for game "Project Biohazard" at TestBonanza #12
Feb 2017 Volunteered and attended Global Game Jam 2017; created "Bumpit" (with Nikki Rapp voicing our characters)
Dec 2016 Delivered game "Swarm" as part of course "System Design"
Oct 2016 Delivered game "Project RTS" as part of course "System Design"
Sep 2016 Attended game jam at Oslo Public Library (Deichman); created "Chicken Hunt"
Sep 2016 Held a playtest for game "Bad Reception" at TestBonanza #11
Jun 2016 Delivered game "Deadly Dancer" as part of course "Programming II"
Apr 2016 (One day) QA-tested game "Shadow Puppeteer" for Sarepta Studio (Wii U version)
Feb 2016 Volunteered and attended Global Game Jam 2016; created "Stuffy Hitman" and "Maya Ragequit Simulator" (music only)
Nov 2015 Held a playtest for game "Bad Reception" at TestBonanza #9

Education Summary

Add-On Programme in Augmented and Virtual Reality

Old course plan outdated. Modern course plan example available here.

Semester Course
2 VR / AR Professional Practice Mathematics III (part of Bachelor)
1 VR / AR on Mobile Platforms Programming and Scripting for VR / AR Systems
1 Introduction to VR / AR Production Development for VR / AR Production Content Creation for VR / AR Production

Bachelor's Degree in Game Technology and Simulation

Old course plan outdated. Modern course plan example available here.

Semester Course
6 Bachelor Project: Pilot
5 Game Engine Architecture Visualization and Simulation Preproduction for Pilot
4 3D Programming Gamification Databases and Networks
3 Systems Design Algorithms and Data Structures for Games Game- and Systems Thinking
2 Mathematics II Programming II Game Design
1 Mathematics I Programming I Introduction to 3D
Last updated 29/02/2024 [D/M/Y]