Category: Projects

  • Smoke Break!

    Smoke Break!

    Smoke Break! is a 3D stealth puzzle game where you play as Applewood, a living puff of smoke, who’s hungry for a sweet, charred treat.

    In this lighthearted adventure, mischief seekers will explore Applewood Factories — a whimsical pie-producing workshop. Cause hilarious hijinks as you delve deeper into this fantastical factory for a deliciously burnt pie!

    I am credited on this project as 3D art lead. My role primarily included asset management, standardization and documentation. Smoke Break! was featured at the 2025 USC Games Expo, the winner of the Design category at the Student Achievement in Game Excellence (SAGE) awards, and will be featured at the 2025 Game Devs of Color (GDoc) Expo.

    Contributions to the project

    • Representation of 3D artwork in art leadership and consultant to 3D artists
    • Creation of a modular NPC system that allowed for rapid design of diverse characters
    • Implementation and management of assets in-engine
    • Creation of Applewood’s cute little head. 🙂
  • Change()

    Change() is the third prize winner of the 2025 Roblox University Week Game Jam hosted by Roblox Developer Relations. I created this game by myself in one week.

    Using your Consoul, a magical computer interface, reprogram the world in order to escape the prison of your reality. Change() teaches introductory programming principles such as variables, pointers and functions, all in the robust beginner-friendly flavor of Roblox Lua.

    Highlights

    • The central mechanic is a fledgling code-parser that allows allows players to modify variables, call functions, and even change the references of puzzle objects.
    • A robust puzzle framework that allows for the rapid creation of new interactive puzzle objects: the system design is scalable for future development.

    Inspiration

    The narrative of Change() is inspired by my own spiritual perspective that parses non-dualist concepts through metaphors of computers and technology. In order to write peace in the place of danger and confusion the player must remember that they are the author of their script and have the discipline to change it.

    Production

    The Game Jam theme was “break the rules”. As a game designer, I usually put mechanics before design, but I knew without thinking that I wanted to create a game that ended in the player freeing themselves from a metaphorical prison. After iterating through many subjects, I had reached into the very bottom of my brain for something deeply personal. Often I would imagine life like a vast video game which at a metaphysical level we design: the mechanics emerged naturally alongside the narrative.

    I will admit that I decided to join the Jam a little late in the game. I had been traveling to spend time with family, and as much as I love to develop even outside of professional and academic settings I did not want what is ultimately an optional project to take away from that time.

    I leveraged both locally hosted LLMs, ChatGPT, and Roblox’s AI assistant to speed up my workflow but also to teach me about the design of code parsers: how to isolate identifiers, statements and functions from lists of tokens.

    I decided to scale what remained of production around how long it took me to create the parser, which was decidedly the most important part of my design. In the end, it took up most of the remaining time and the final 24 hours was spent designing the puzzles, throwing together the physical environment and of course, debugging.

    If I had more time (which is not-so-theoretical since I fully intend to bring this game to a release candidate) then I would have improved offboarding, made the parser less strict, and made the UI just the teeniest tiniest bit prettier.

    What’s Next

    Offboarding

    Roblox games aren’t known for their beginnings and ends, but the lack of offboarding is unsatisfying. I’d like to execute on my original idea where the player gains enough privilege to access a Destroy function, and they can destroy their prison and escape out into a beautiful natural scene. Although the spiritual influence is subtle, to end in quiet peace communicates the most important meaning and would complete my intention.

    Polish and Education

    After that important step, it is more puzzles, more polish, and user testing. Education is central to both the entertainment value and practical function of Change(), so it’s level of effectiveness at teaching introductory level programming should be assessed with audiences that do not know how to program.

  • 12

    12

    In the kids MMO Doodlandia, you can be whatever you want, because of the magical clock tower that brings all your drawings to life.

    You’ve grown up with this game, made countless friends and enemies, and built a second life in it, but in just 6 hours the servers will permanently close, and Doodlandia will be gone forever.

    Take one last look at the digital world you grew up in before it vanishes.

    I served on this project as an engineer and sound designer. I worked alongside my amazing friend and working partner Ampheraptor who took care of art direction and narrative. Together, we created 12 as a love letter to the MMOs we grew up playing.

    My contributions to 12

    • Easy-to-use NPC creation system that allows designers to create NPCs code-free
    • Dialogue trees and branching narrative
    • Base level systems design to support a 3D world
    • Music and sound
    • Emulating the functional qualities of early children’s MMOs as part of creating a period piece

    Inspiration

    Me and Amp have a shared history with games like “Animal Jam”, “Pixie Hollow”, and “Club Penguin”. The experiences we had in children’s MMOs inspired us in an uncountable number of ways, but our playgrounds were uniquely ephemeral. Their closures were sudden, and often meant their total disappearance. We wanted to create a game that captured the last moments of a childhood virtual world: to represent the ultimatum of an online community.