Lewis Fox Past Projects
My name is Lewis Fox. I am a software developer currently living in Denver. I have been programming for many years, and have worked on many projects over that time. Below is a sampling of projects that I have worked on over the last few years. You can also check out My Resume and My Github Page for more.
OpenRCT2
Re-Implementation of RCT2
Since mid 2015, I have been involved with OpenRCT2, a project that re-implements RollerCoaster Tycoon 2 in C++. I am one of the core team members, with my main responsibility being maintaining the macOS build of the project. I have contributed many features to the project, including adding the option for staff to be placed in the park automatically when hired, improved queue path placement along-side regular paths, and implemented palette-based transparency in the OpenGL renderer. I have also helped with project organization with the project managers, and was instrumental in getting the OS X build working. I have also worked on translating original x86 code to C for the project.
View ProjectNoise Game
Short Game Demo
I participated in a short, 4-hour game jam hosted by my University's game development club. The prompt for the jam was a short audio clip of tv noise. It got me wondering if a game could be made using only white-noise. I got a short version implemented during the 4-hours. Over the next few days, I refined the implementation and converted it to use OpenGL for noise generation. The goal of the game is to click on the parts of the image that are not changing. It is an interesting challenge, as it relies on the players ability to perceive motion without having any objects associated with the movement.
View ProjectLiving
Global Game Jam 2016
This is the game I made in a team of 3 during Global Game Jam 2016. It's a collection of minigames with a total time limit of a minute. The minigames have an overall theme that becomes more and more prevelant over multiple attempts as you get futher into the set list of minigames. The game was made using the Unity3D engine. The entire production (from concept to design, implementation, and testing) took place over only 48 hours.
View ProjectOpenMC2
Reimplementation of Midnight Club 2
After OpenRCT2 finished reimplementing the code from RollerCoaster Tycoon 2, I created a new project of the same type for another game. With OpenMC2, I'm re-implementing the Rockstar game Midnight Club 2 in C++ by taking the compiled and released x86 assembly in the original game, and rewriting it in C++ one function at a time. Due to the nature of the project, progress is slow, but working on the project has given me great insight into assembly languages and how compilers work. While working on the project, I discovered a buffer overflow in the original game's ZIP file handling that can lead to arbitrary code execution. A writeup of the exploit can be found here.
View ProjectNetController
Unreal Engine Controller Plugin
When working on a project in the Unreal Engine using the Google Cardboard, I wanted to be able to use my Xbox 360 Controller with the game. However, there is no way of connecting an Xbox 360 Controller with an iPhone or Android device for use with a Google Cardboard. My solution was to connect the controller to my laptop, and then transmit the controller state to my phone. NetController is the program I used to do this. It includes a client program that you can use with any controller with an SDL Game Controller mapping, and a UE4 plugin that tells the engine what is happening with the controller.
View ProjectMandelbrot
Java Mandelbrot Renderer
This is my oldest project on this page, having been made over 2 years ago. At the time, I was looking for interesting things to work on when I found the wikipedia page on the Mandelbrot Set, which described how to compute it. I spent about a week implementing this, including multithreading support, supersampling, and rendering customization. It may not be the best indication of my recent work, but I am still proud of what I was able to pull off.
View ProjectOpen Source MoCap
Trajectory Acquisition
In the fall of 2015, I took a class called Software Engineering. The class covered different aspects of project management, such as requirements, architecture, and implementation. As part of the class, I worked in a group of 6 students on a project for one of the engineering professors. The goal of the project was to create software that the professor could distribute to students in introductory dynamics classes to allow them to perform 2D motion tracking. My contributions to the project include helping with the organization of the project, and getting the video player to be stable.
View Project