I’m Jack Edwards, a 25-year-old full-stack software developer passionate about project creation, design, and implementation. I have experience in various positions relating to Managing Teams, Unreal Engine Game Development, Computer Automation, Engineering, and Cybersecurity. I currently work as the Technical Director of New Dawn Games - a 40 person volunteer team - where I manage teams of programmers, UI/UX artists, and handle all game engine related implementations of our current project, Rayman 2: HD.

New Dawn Games | Technical Director

Directing 40 Team Members

Our volunteer team is composed of 5 directors - me being one of them. Together, we manage a total of 40 people on our team to make our project come to life. The team is completely non-profit and volunteer based, meaning that we all contribute our time and effort because of our love for developing games. I work hard to keep engagement up and motivation with the project which is a challenge with any volunteer work. My constant mission is to make people’s lives easier my sacrificing my own time to organize and direct the team.

Agile Project Management

Using GitHub Projects and NextCloud Deck, the team has implemented a SCRUM based workflow into how we manage our project. Our GitHub Projects board is dedicated to anything engine related to easily connect issues to specific commits. The production departments use NextCloud Deck’s Kanban style board to manage the creation of assets.

AWS Powered Website

Using AWS, EC2, and its other powerful subsystems, I created the newdawn.games website complete with interactive blogs and a powerful backend capable of scaling to prevent stalls during heavy traffic.

Rayman 2 | Unreal Engine Project

Fully Documented, Modular Codebase in C++

When it comes to code, I believe in cleanliness, efficiency, and modularity. I focus on making my code as non-redundant as possible and documenting it fully for other developers to understand. Our current C++ codebase uses Doxygen to generate HTML pages for our project explaining classes, structure, and functions.

AI Movement Prediction

Using vector math and Unreal Engine’s physics system, I implemented a movement prediction system for an enemy AI in our game. Using sight and sound, our enemy can detect our character and predict their movement to engage with the player.

Custom Movement Modes

Building on top of Unreal Engine’s Character Movement Component, I have created custom movement modes that the player can switch between depending on where they are. The custom movement modes switch over the physics handler to enable different methods of movement, such as swimming which uses buoyancy physics and force vectors. The player’s rotation is then interpolated to their velocity vector to simulate swimming.

Fine-Tuned Movement

Movement is vital in any platforming game, so making it as smooth and fine-tuned as possible is extremely important. Using force vectors and switching input mappings for custom input depending on the player’s state, I am able to get very smooth movement in every mode. Whether it’s sliding, swimming, or climbing, the player has an enjoyable experience controlling their character.

Tracking Projectile Classes

Projectiles are vital in almost every game out there. In Rayman 2, our character can pick up objects like this explosive barrel and throw them at doors. Implementing a full system to manipulate objects depending on the locations of bone sockets was no easy task, but it makes this barrel mechanic work really well. We also made a tracking system that allows the camera to automatically detect object to aim at and propels the projectile in their direction.

ToilMe | iOS Application Project

Built from the ground up for iPhone.

In my Freshman year of college, I built ToilMe - a social media application designed to help people find local jobs. I spent 10 months learning Apple’s Swift programming language and built the app in XCode on MacOS. The app was fully functional and published to the app store in 2019. It is no longer available on the store due to yearly costs. This application was a solo project.

Google Firebase Server Backend

For the backend of the application, I used Google’s Firebase to manage all user data, posts, and information. I implemented Firebase’s API into XCode to pass information back and forth. This was a project that helped me understand Full-Stack development, source control, and project management.

Volunteer Elementary Teaching

Electronic Circuitry for Kids

I volunteered for a STEM fair to teach kids about basic circuitry. I taught a group of 30 first-graders how to create a light-up bookmark with an LED using a 2032 battery, a 50 Ohm resistor, and an LED light. Connecting the components in a loop, it created a very simple light that attached to the back of a bookmark that each kid was able to craft and take home with them. I loved the project so much and I’ll never forget when one of them said, “Now I know how a lightbulb works!”

Modifying the Linux Kernel

Custom LCD Display on a Raspberry Pi

When I was in high school, I became obsessed with the Raspberry Pi like any normal programmer. However, I wanted to make it portable instead of having a required station to use it at, so I purchased a cheap LCD display for it and a portable battery. The display was controlled through the pin connections and the driver for it didn’t work out of the box, so I spent 2 weeks learning how to modify the Linux Kernel to support a different driver that I was able to make work with the display.