Project Title

A placeholder image.

This is a sample project description detailing the features and development process of this project. During the course of this project I did some things and some other things.

Someone who's way too happy to be working in JavaScript.

Hi, I'm Christopher Simms.

I make games, websites, and other stuff.

Here are some projects I've worked on:

FPS Wizard

An Unreal Engine framework written in C++ for building multiplayer arena-style FPS games.

FPS Wizard was a fully-fledged multiplayer arena FPS template I wrote mostly from scratch using Unreal Engine's C++ API; selling over 15,000 copies.
I was the solo developer on this project, and implemented all the general gameplay functionality expected from FPS games in a way that was fully exposed to the Unreal Editor, giving users control over things like:

  • fire rate
  • game state/settings
  • animations
  • projectile properties
  • and more--as well as allowing the built-in functionality to be extended easily through Unreal's Blueprint system.

I also implemented some features that were not common for similar frameworks on the Unreal Marketplace at the time, such as:

  • built-in network and split-screen support
  • basic menu UI such as a server browser, host game configuration, pause menu, etc. using UMG
  • gamepad support, including aim assist
  • in later versions, basic AI bots

I started development on it in college (roughly late 2016) and shipped version 1.0 in November 2017. I then supported it for about three years with updates and patches before deprecating it in 2020.

You can find it on the Unreal Marketplace here or play a demo here. (Windows only)

TurboArenaDeathball

A multiplayer party FPS inspired by Rocket League and Halo.

TurboArenaDeathball was a casual multiplayer FPS developed using FPS Wizard.
As with FPS Wizard, I was the solo developer on this project. Some of the features I worked on on this project include:

  • Implementing player progression and customization, including ranks, skins, and emotes
  • Ensuring the UI flow was simple and easy for demos; players could press "A" a few times and be in a game
  • Spent a lot of time fine-tuning ball physics and game "feel", including:
    • Making the ball non-spherical to increase "bounciness"
    • "Steering" the ball slightly towards the enemy goal relative to who hit it
    • Adding a dedicated "look at ball" button on gamepads that quickly and smoothly rotates the player towards the ball, adding a dynamic offset if the player has rockets equipped since they arc.

This project never made it to market due to financial constraints and other factors, but the game is playable here. (albeit in a graphically unpolished state)

ONEMAG

You. Dozens of bad guys. ONEMAG. An in-progress shooter based around limited ammo.

ONEMAG is an FPS I'm currently working on. I started working on it in early 2019, and have been working off and on on it since then.
The core concept is forcing the player to continously switch weapons (ala the Matrix lobby shootout) and adapt their tactics quickly. One major change in this project was starting with a well-specified design document before implementing anything. Some elements didn't end up being fun in practice and were cut, but most of the document is still applicable. Some features I've implemented so far:

  • A "planning" phase in which the player starts each level with a "wireframe" overhead view highlighting enemies using a stencil buffer. The player can see info about enemies by mousing over them (including ammo, health, type, etc.) and can "tag" enemies that they'd like to prioritize killing.
  • An extensive AI system, with features such as:
    • Squads--members are assigned in the level editor, and each member is then dynamically assigned a role within that squad based on certain traits they have.
    • Behavior states that change depending on stimuli, health, and squad states (ie flee, engage, search, patrol, etc.)
    • Depending on a squad's makeup of roles, AI can engage in some coordinated behaviors such as flanking and bounding overwatch (one soldier suppresses while the other moves up)
    • Patrol paths are objects (basically splines) that can be placed and modified in the level editor.
    • Support for pre-placed firing positions (inspired by Halo's AI system), allowing greater control over encounters from a level design perspective. This was done using a modified implementation of Unreal's EQS system.

MindVenture

A Crash Bandicoot-inspired 3D platformer for mobile. Currently available on iOS and Android!

I was the programmer and associate designer on this project as part of a small team. I was responsible for implementing most of the gameplay and UI logic, as well as overall project management. Specifics include:

  • Introducing the team to source control (Git LFS hosted via Azure), assisting when issues came up like merge conflicts and detached heads, and ensuring adherance to best practices.
  • Implemented destructible crates using Unreal Engine's Chaos destruction system in a manner that is performant on mobile.
  • Added a "shadow" beneath the player character to help players with platforming.
  • Designed and implemented all UI elements using Unreal's UMG system, including but not limited to the pause menu, level select, and player HUD.
  • Implemented a save game system to keep track of the player's progression and best time/score for each level.
  • Was responsible for all mobile-related tasks, including:
    • Setting up a PC-to-Mac build pipeline
    • debugging using crash logs (both internal and via TestFlight) and Visual Studio
    • handling events like app switching and low power states
    • using Unreal Insights to profile performance issues

Want to collaborate? Let's get a coffee sometime!