Get The Lowdown


  • Hackathon: University of Virginia's HooHacks (2021) (24 Hours)
  • Awards: Best Art & Gaming Hack - 1st Place


  • Roles: Development, Art
  • Tools: Unity3D, Adobe Photoshop
  • Languages: C#

Let Me Tell You More

What is lARp exactly?

lARp is an augmented reality roleplaying game encouraging exercise via running. Players become a questing fungi looking to better the lives of their shroomy homeland by running (literally running) errands for its denizens.

Under the guise of these quests, this game tracks the time exercised and steps taken using a pedometer. Along the way, questers can run into friendly and deadly mushrooms. Using GPT-3, players can converse back and forth with unique characters before deciding their fate and defeating them in minigame battles between quests.

The Experience, My Thoughts

For this project, I contributed to development of both the backend and the visual assets. I really enjoy doing both art and computer science, so work-wise this was one of my favorite projects of 2021. Even better yet, my drawing and programming skills were utilized for the same feature: the generation of the mushroom characters.

The mushroom characters are our MVP’s draw to replayability. Thanks to GPT-3 and the character design Nancy and I collaborated on, lARp can generate 9,000+ unique mushrooms. A mushroom can have a huge cap, a small body, and an angry personality, or they can have a small head, a round body, and be happy-go-lucky. My approach to this was to create a piecewise system where a mushroom cap, stem, and face were randomly selected from their respective sets and mashed together. Later, a GPT-3-generated personality would be added at random to bring the character to life. For the purposes of my portfolio, I’ll be discussing the character generation process without GPT-3.

While Nancy sketched mushroom caps, faces, and stems, I quickly coded out a simple generation system that layered Unity2D sprites on top of each other:

  • rand() would select three numbers out of an inclusive range
  • Each of these numbers would be matched with a key for a specific dictionary (head, face, stem)
  • That dictionary key would hold a string value corresponding to a file name
  • This string value would be passed into a function that pulled .png sprites with alpha (transparency)
  • Each sprite would be stacked on top of each other at different y-axis translations
  • Each stack of sprites would be nested under a game object for our backend developer to use
Very simple and could be streamlined, but it worked for the scope of our project and our time limit.

At this point, Nancy had finished sketching mushroom parts. I then went in and made pixel art of each part, first only outlining them in black to test my generation system. From there, I spent the majority of my time quickly rendering each piece in Photoshop. Since Nancy and I are usually in charge of project aesthetics, we agreed that we would mix our styles together. This allowed me to work very quickly.

Once all of this was done, I ended up doing some extra bits of work like making a simple floating island (mushrooms need to sit somewhere…) and some rotoscoping for our logo.

Overall, I’m happy with how our MVP came out, even more so that it won a prize!