
Jesper Elmtoft
Engine & Tools programmer student


In my first multi-disciplinary collaboration, I served as the Lead Programmer, managing the department's communication and Perforce workflow. I established the project's technical foundation by creating a C# State Machine and a ScriptableObject-driven physics system, focusing on creating a modular 'backbone' that balanced realistic jump mechanics with designer flexibility.
Challenges:
-
Transitioning from solo/GitHub development to a professional, multi-disciplinary environment using Perforce (P4V).
-
Fixing "floaty" jump mechanics that felt unresponsive during initial playtests.
-
Managing performance bottlenecks when the game hit ~20 FPS due to high poly-counts in the environment.
Actions:
-
Designed a Player State Machine using a parent PlayerStates script to handle animation parameters and audio triggers via constructors, significantly reducing code redundancy.
-
Developed a Custom Jump Physics system inside a ScriptableObject, implementing variable gravity scales (fighting gravity on the way up, increasing it on the way down= with slider-values for designers.
-
Refactored the Event Service and Main Menu logic from bloated if statements to efficient switch cases and streamlined delegate variables.
-
Acted as the Perforce Lead, setting up workspaces and unblocking team members with version control issues.
Results:
-
Created a "designer-friendly" workflow where the jump feel could be tuned without touching code.
-
Successfully integrated VFX and Animation triggers directly into the C# State Machine, ensuring a polished feel.
-
Identified and resolved 20 FPS performance issues by coordinating with the Art Department to optimize triangle counts.
-
Lead Programmer:
-
Led daily stand-ups for the code team and served as the technical bridge between programmers and the PO (Product Owner).
Backbone Architecture:
-
Authored the Player State Machine, Game Manager state sync, and the Event Service.
Physics Tuning:
-
Created the "Non-floaty" gravity logic to improve platforming precision.
UI Systems:
-
Implemented the Main Menu navigation and ScriptableObject-driven UI elements.
-
The Power of Tools:
-
This project taught me that version control (Perforce) is the most important tool for a team. Mastering it early allowed me to help others and keep the project moving.
Designer Empathy:
-
I learned that exposing physics variables as sliders in a ScriptableObjectt saves hours of development time, as designers can iterate on the "feel" without waiting for a recompile.
Early Optimization:
-
Seeing the framerate drop to 20 FPS taght me to monitor the "Triangle and Vertices" count early in the process and maintain a constant dialogue with the Art department.
-
Base State class utilizing constructors to standardize animation and audio triggers across all player states, ensuring architectural consistency.
Base State class utilizing constructors to standardize animation and audio triggers across all player states, ensuring architectural consistency.








