Zach Brownlow

Zach Brownlow

Software Developer

Contact Me

About Me

I plan to update this site more, including redoing the formatting, when I get the chance, but until then I still want somewhere to show off the projects that I've worked on. This means that I'm letting people see this site before it's finished, so bear that in mind. Eventually I may have more information about myself here, but until then check out my LinkedIn for further information.

Products I've Worked On: Rec Room

If you are unfamiliar with Rec Room, it is a cross-platform UGC game that started out on VR but expanded to mobile, non-VR PC, and all major consoles, with weekly updates shipping to all platforms. I've worked on many aspects of the game, but a large part of my responsibilities was working on the official games inside of Rec Room, and I'd like to showcase just a few of those.

In addition, I've written several dev blogs for our UGC community explaining how to use some of the the new UGC tooling we've given them. (Example Dev Blog 1: UGC Pathfinding, Example Dev Blog 2: UGC Melee Weapons)


Rec Rally

Rec Room

The first project I worked on at Rec Room was a racing game called Rec Rally. Part of our inspiration for this project and others was finding something that our UGC community couldn't do with our existing tech (in this case, making cars), and giving them the tech to do it wrapped in a new game. For this reason, while the game itself was somewhat barebones, it was also a demo of what creators could do with the new driveable car tech that we were giving them. I specifically worked on the driving logic itself, by implementing boosting and vehicle-environment collisions. Vehicle collisions were an interesting problem to solve, as you have to strike a good balance between collisions feeling realistic and fun, and relying on our game engine's built-in physics engine alone isn't enough for that.


Fan wiki page for Rec Rally

My Little Monsters

Rec Room

My Little Monsters is a pet-raising RPG where you get to adopt and raise a baby cryptid! The game consists of three parts - a mysterious forest where you harvest resources, a town where you talk to NPCs and complete quests, and your monster sanctuary where you raise your monsters and customize the environment to your liking. Work on this project involved both writing code in C# for new features and writing game functionality in our in-house visual scripting language. This was a large-scope project, and so I worked on lots of new features, but as a project lead, I was also instrumental in tracking down other bugs in Rec Room itself that could affect our game to ensure we could have as clean a launch as possible.


Fan wiki page for My Little Monsters

Make It To Midnight

Rec Room

Make it to Midnight is a 4v1 horror game, partially inspired by Dead by Daylight. Bonky the clown is terrorizing the abandoned carnival, and 4 friends must avoid Bonky and escape the carnival safely. Like My Little Monsters, engineering work on this game was a mixture of C# and working in our in-house visual scripting language. Specific aspects that I worked on included the generator minigame and making Bonky's hammer, which is more complex than it sounds as it was really making the underlying UGC technology that lets players make any melee weapon they want to with extremely customized logic. You can see the dev blog for that melee tech that teaches UGC creators how to use it here.


Fan wiki page for Make It To Midnight

"Popcorn Games" - 2-week games

Rec Room

We also made several quick games with a 2-4 week dev cycle, that we referred to as popcorn games. These games were made entirely with player-available UGC tooling and were fully copyable, meaning our UGC creators could clone the games and customize them however they wished.

Bonky's Inferno was an attempt to turn the map from Make it to Midnight into a PVP game. What started out as simple gun-based PVP at the start of the two weeks became a game where you hit each other with hammers and try to knock each other out of the level, smash-bros-style. Here's a video of a player playing this game.

Feeding Frenzy was a zany game where players ride on whales, collect fish, and feed those fish to the Royal Whale, all while shooting other players with cannonballs. Here's a video of a player playing this game.

Unscripted was a demo for the AI tech we gave players, using generative AI to run the players through a tabletop RPG campaign (like D&D). Here's a trailer for this game.

Products I've Worked On: Big Huge Games

Arcane Showdown

Big Huge Games

Arcane Showdown was a card-based RTS game that I've worked on at Big Huge Games. I started out on the project during its preproduction phase as an intern and helped ship the game, and once the game had been shipped I became the lead engineer on it.

Everything on this game was of course a massive team effort. A large portion of my time spent working on this game went either towards the tech for our FTUE (industry slang for the tutorial) or our Design Tool. In my work on our FTUE, I spent a long time working very closely with designers to make sure the system could do everything that they needed it to and could be easily changed with minimal engineering work. The Design Tool is a web tool we have to allow designers or any other team members to edit JSON configs with fancy UI, and I was responsible for making it so that the tool would be able to automatically generate the UI for any C# class with no extra dev work. I was full stack on this project, and worked on the server, client, and both web-based and unity-based tooling.


DomiNations

Big Huge Games

DomiNations is BHG's biggest hit, with over 10 million installs. While working on DomiNations, I've experienced working in a legacy codebase and being able to bring over learnings from our newer codebase (Arcane Showdown) to refactor existing systems and make newer systems more maintainable. I've spent more time on Showdown than I have on DomiNations as of writing this, but my contributions to DomiNations include fixing exploits and working on the game's Parliament system.

Personal and School Projects


Missile Command (Javascript with WebGL)

This is my spin on the arcade/Atari game Missile Command.

The game will be put onto GitHub soon, at which point there will be a link to play it here. I want to work on this game some more eventually, but right now I'm a bit caught up with working on Lockdown instead. 3D models are designed in 3DS Max and imported with a custom obj loader.

All's Fare in Love and War (GameMaker)

This was a group project made with 3 others for a class where the player is in the role of someone who has been blacklisted by a space cab company and has to make their own way home. The game name, though hopefully it doesn't need to be explained, is a pun on taxi fare and the phrase "All's Fair in Love and War." The gameplay consists of two alternating level schemes, in the structure ABABAB. In the A levels, the game is a platformer where the player must collect spaceship parts. In the B levels, the player flies their spaceship in a scrolling shooter.

The levels evolve over time as well. Level A1 is just a regular platformer, whereas level A2 has moving platforms and level B3 is a scrolling platformer with automatic horizontal movement. Level B1 has the player only able to dodge. Level B2 gives the player a gun, but is entirely beatable without a gun and is meant to just let the player get the hang of it. Level B3 has enemies that actually require the player to use their gun, and it gives them a one hit shield as well.

When it comes to division of work, my main responsibility was the programming for the space levels, and I also helped with the plot.

Download the game

Sorcery

Sorcery Game Engine (JavaScript)

This is a game engine for JavaScript games, made for a class with two other collaborators. The sample games included are Creature Alchemy, Snake, Asteroids, and Cops and Robbers. There is full documentation to allow for others to use it as well.

See the engine in action

project name

Digital Flash Card Program (Python with TKinter)

One time I had to study for a forensics test but I really didn't feel like making flash cards, nor did I feel like taking the list of questions/answers we were given to study from and hand-inputting them all into Quizlet (it was a very long list). Partially to solve that problem and partially to procrastinate, I decided to make my own simplistic flash card program that can read questions and answers from an excel spreadsheet. As a user of my own program, this made it easy to modify the spreadsheet by hand and insert my questions in by just pasting the whole list we were given (after a few formatting changes and corrections).

Check out the Github, and feel free to make a pull request

Game AI - Monster in the Closet (Java with Processing)

This is a simulation that uses a behavior tree, a decision tree, and steering behaviors to have a monster emerge from a closet when it hears a wandering "player" character and chases it. In the video, the player is using a decision tree while the red monster is using a behavior tree. The blue transparent monster runs a learning algorithm where it analyzes data that I've recorded from the red monster and player movements and uses it to create a decision tree of its own. The behavior tree of the blue monster has it spin around in a few circles and then rummage through the dresser until it "hears" the player nearby. Once it does, it chases the player, though if the player gets far enough away it will just wander around. The red monster does a good job of reproducing this behavior, though of course its wander varies since different random numbers are generated for each.

In the video, you'll notice that I occasionally show the grid used for pathfinding. In addition, there are a few times where I press the mouse to guide the player, as pressing the mouse will override the player's current action to pathfind to the mouse location. When there is no mouse input, the player will wander and avoid obstacles.

In terms of actual movement, the simulation uses simple steering behaviors as well as a few more complex ones like wander and seek. I also made a Boids flocking simulation, but that was not relevant for this simulation. Perhaps I'll put that up here as well someday soon.

project name

Minesweeper (Python with Pygame)

This is a version of Minesweeper with customizable themes. The theme shown is one with flowers and bees instead of mines. Gameplay is the exact same as with regular Minesweeper.

project name

Self-solving Spiral Maze Generator (Python with Pygame)

One of my traditions whenever I learn a new language is to program a maze generator in it, along with Connect 4. This is my favorite maze generator that I've made apart from the one that I made in Pascal, but the one I made in Pascal is old enough where I'm not even sure if I have the file for that one anymore.

project name

Polygonal 3D Rendering Engine (Python with Pygame)

This is a 3D rendering engine that I decided to make after my circle-based one (see below) because I wanted something better. Just for fun, I did all the math by hand instead of using a 3D graphics library or a rasterization technology like OpenGL.

project name

Circle-based 3D Rendering Engine (Python with Pygame)

This is a pseudo-3D rendering engine made with Python and the Pygame library that I made for a space FPS based off of the old Atari game Star Raiders. I will put a video/picture of that game here when I can access the computer that I have it saved on. All of the math is done by hand.

More projects will be added later. In the meantime, check my LinkedIn for more information!