Max Ortman

This is a collection of projects I have worked on over the past couple of years.

Code Samples

C++26: Reflection extension for JSON for Modern C++ library

A Godbolt link is provided, though it may not work due to frequent changes in the proposals I created the project as more of a proof of concept for an upcoming C++ reflection feature. It aims to add an attribute like system to the language using reflection and template arguments.

Python: Machine Learning to predict esports games

This is the primary file in the Valorant Esports AI project detailed below.

Training Robots

For my senior project class I am training robots in Isaac Lab to perform complex tasks. The goal is to have a pipeline for training video game AI agents using reinforcement learning. The project is still it it’s early stages but you can enjoy this video of robot spiders trained to run to from target to target.

Code Friend

Coding assistant that generates code and documentation using an LLM. This was a project spanning 2 semesters where I was in a group of three. I implemented the core commands, defining the data flow and response logic for the LLM. I also focused on several other key areas:

Cosmic Cargo

Steam Page
This is a video game I worked on for my sophomore year game project. I was the tech lead of an 8-person team. The game is programmed in C++ and uses a custom engine built on top of OpenGL. It is a space ship building battler / roguelike. I built the core of the engine, most of the gameplay features like the ships and projectiles, editor tools, optimizations, and coordination with the designers. Some of the notable things I did include:

Trailer

Editor

Any Entity can be created, edited, and saved.
All configs can be edited in the editor.
Interface is generated from the members of the objects and not hand coded. Editor

Adding any object to editor

The editor works by converting an object to JSON and generating a GUI from the resulting JSON.
Below is adding a new component to the editor.
Because it works recursively the Texture inside is also included in the interface.
For the image in the texture, I added a button to open a file explorer. Adding a component

Creating a config / save

All values in a config consist of name-value pairs.
As long as all the values are serializable they can be added to the config.
Used for both saves and settings.
File and editor interface are synced. Adding a config

Valorant Esports AI

This was a final project for a Machine Learning class. It uses data I collected from vlr about a team and its players. The project both trains and tests a model to predict the outcome of a match.

VCT Predictions Bot

This was my personal project for nearly two years total. It is a Python-based discord bot made with Pycord for making fake bets on Valorant matches.

Factory Puzzle Game

This was my second semester freshmen year game project. It was a team of 5. I convinced my team to take the opportunity to make the game in C++ instead of C so we were the only team using C++. The game is a puzzle game where you have to fit in machines in a small area to process foods. I made the machine system that allowed for easy creation of new machines with complicated layouts and multiple recipes. I also made the saving system.

Resume