Contact

aaron.p.piotrowski@gmail.com

Education

University of California, Santa Cruz
Summer 2012 – Spring 2015
B.S., Computer Science: Computer Game Design
Graduating GPA: 3.60

Experience

U.S. Army, Active Duty
January 2006 – November 2009
Combat Engineer

Recent Projects

PIXI RPG (Work in progress)

JavaScript, Node.js, PIXI.js, websockets, AWS

Solo project
Offline version

A browser-based multiplayer Reddit-integrated RPG engine. The engine was built from scratch using a WebGL graphics library (PIXI.js) and Node.js. The project includes an asset compiler that generates spritesheets from 3D voxel models, random map generation using perlin noise, a server backend using websockets for communication, an in-game map editor, a dynamically updating pathfinding system for NPC movement, account data storage using Amazon S3, and Reddit account integration.

Erowid Experience Vaults Data Scraping and Visualization

JavaScript, D3.js

Solo project
Current version
My Reddit post describing it

Data visualization of the Erowid Experience Vaults, a site with over 23,000 drug experience reports. Project included writing a scraper that programmatically performed searches of the Erowid database to amass the data I needed. The visualization shows correlations between the various categories reports are filed under in order to reveal relationships between drugs, types of experiences, contexts in which they're used, intensity of the experiences, and the gender of the user.

Games

A Room Too Far

C#, Unity

9-person team
Game Website
Our GitHub organization
Our presentation at The Sammy Awards [YouTube]

A Room Too Far is a 4-player cooperative dungeon crawler on an arcade machine, where players work together to defeat user-generated dungeons created via a level editor on our website. It's my senior project in the Computer Science: Computer Game Design major, being developed by a 9-person programming team and a slew of artists and other contributors. My main role has been the design and implementation of the front-end side of the level editor. My other tasks include the UI functionality across much the game, and a few chunks of the gameplay side, including the loot system, camera system, and some game feel features.


Planetary Lander

C#, Unity

4-person team

3D lunar lander-type game, in which the player controls a spacecraft designed for landing on alien planets. The game contains 6 levels, each one with its own theme and unique task. Levels include boss fights using wrecking balls, rock-transporting mining tasks, and flying through a series of beacons. Experimented with rope simulation (via a joint system), breakaway parts, events, and navigation systems.


Voxel Arena

C#, Unity

3-person team

Two-player deathmatch style game, using a voxel map as the playspace. Players have destruction and construction weapons, which are used to alternately destroy and construct terrain in various patterns, as well as to hurt the other player. The voxel framework was coded using this online tutorial. Gained experienced with animation timing, minimap functionality, and, of course, voxel systems. Using what I learned about them, I later created my own rhombic dodecahedral voxel system, which can be seen in the Other Projects section.

Sonic: the MMO

C#, Unity, Photon

Solo project

Created mainly as a joke to make my friends laugh, this is Sonic the Hedgehog-themed, nostalgia-inducing multiplayer experience. Using a networking framework called Photon and a large amount of assets ripped from classic console games, I implemented a pseudo-MMO (pseudo because there's no server storing player data). Despite being a joke project, I ended up learning a lot about multiplayer networking from it, and the fundamental differences between coding for a single-player game, and coding for a multiplayer online game. Programming challenges included creating a chat system, syncing each player's game world via RPCs, and storing player data (in this case, in the host's client).

Sanic the Heegheg

JavaScript, brine.js

Solo project
Play!

First game ever created. Written in an introductory game design course. Hard-coded in JavaScript. Might want to turn down volume before playing.

Alice

C#, Unity

Solo project

Experiment with a size-changing mechanic, where you play as an Alice in Wonderland type character that can adjust her scale to explore the environment. Messed around with the concept of traversing gamespace through changes in scale rather than through changes in position. Experimented with cel-shading, shadows, and performance optimizations.

Procedural Work

StarCraft: Brood War Kiting AI

C++, BWAPI

3-person team

A project done in a class called Game AI. It's an implementation of decision tree-based AI for StarCraft: Brood War. The project uses an injection program called BWAPI, which allows custom scripts to modify unit behavior in-game. Our code causes 3 Terran Vultures to disable a large Zerg base using kiting tactics. The vultures perform checks around themselves and either attack or flee, depending on the density of zerglings nearby, and the availability of escape routes.

L-System Fractal Generator

C#, Unity

Solo project
Fractal generator (source code)

Created a system that can generate fractals using an L-system at runtime. The algorithm uses a depth-first strategy to generate the fractal in chunks and then render the chunks in sequence, avoiding the problem of generating large fractals all at once, which can take up to several minutes. The initial intent was to make a game where the environments are fractal in nature, as seen in videos like this. The next step in this project will either be adding a 3rd dimension in order to create a 3D fractal world, or attempting to turn this into a 2D infinite runner where an ever-generating fractal is the ground.

Procedural Dance Generator

C#, Unity

Solo project
See the demo on YouTube
Presentation detailing the system [PDF]

Implementation of a limb movement system for a humanoid ragdoll, which causes it to "dance" around. Certain body parts move in response to changes in the position of certain other body parts, while joints flex to generate a dancing-type motion. Inspired by evolutionary algorithms that generate bipedal locomotion.

Interactive Orbit Simulation

C#, Unity

Solo project
Watch/Play!

A modeling of planetary orbit. Uses an addForce function, in conjunction with an initial velocity, in order to generate orbit. Many variables are modifiable via the user interface on the sides of the game screen. Began as an attempt to see how orbital paths gradually change in response the gravitational pull of other orbiting bodies. See n-body problem.

Bee Swarm Demo

C#, Unity

Solo project
Watch!

First attempt at procedural generation. The bees all follow a leader bee, which is invisible. If a follower collides with another, it does a speed check, changing its leader to who it collided with if it's moving slower than it. This eventually creates a serpent-like shape in the swarm. Different combinations of checks and behaviors lead to various other interesting swarm shapes. Created during a period when I was obsessed with crowd simulations like the one seen here.

Mobile Apps

Workout Assistant for Android

Java, Android SDK

2-person team
Download APK

Project made in an Android programming class. It's a workout assistant for gym-goers. My major contribution was a script that uses the inbuilt accelerometer to detect reptitions of an exercise, so the user can strap the phone to one of their limbs, press start, and let the app count reps for them.

Other Projects

Rhombic Dodecahedral Voxel System

C#, Unity

Solo project
Rhombic Dodecahedron Maker (source code)
Terrain Generator (source code)

Created a voxel system that tesselates rhombic dodecahedrons instead of cubes, creating a rhombic dodecahedral honeycomb. Each solid is manually generated with verts and tris. Faces inside the terrain are deleted so that the entire plot is a single airtight mesh. I chose rhombic dodecahedrons as the shape just to give myself to a tough problem to solve. In retrospect, it's about the worst shape for a voxel system. Walking on them looks painful.

Brain Hemisphere Sim

C#, Unity

Solo project
Play!

Playing with cameras, culling, and filters. Attempt at simulating lateralization of brain function in a sort of artistic manner, by having each side of the screen correspond to an eye, and using filtering to make them see the world in different ways.

Groundbreaking Ideas

Hoppity Boing

Unity, Google Slides

Solo project
Presentation

Pitch for a VR/trampoline hybrid game. Nothing could go wrong here.