Served as Lead Engineer
Summary coming soon...
Summary coming soon...
Summary coming soon...
Summary coming soon...
"Into the Deep"
That was the theme for the June 2022 internal company game jam my studio PeopleFun put on. With a team of crack game developers, we started work on a game we described as an endless runner meets dating sim. What came out of this was Sea Crit Admirer, a game built in Unity utilizing a Twine integration that I created for my game prototype Mood for a Melody.
The game comprises of levels of the player venturing deeper into the ocean, dodging eels and octopi (octopuses?) to reach the end, at which point the game swaps to a dating sim-style visual novel mechanic. You are chasing down a voice you hear in the abyss, and depending on the choices you make in the dialogue and the amount of hearts you collect in the level, you will either end up with your sea critter admirerer, or you will stay forever in Davy Jones's locker...
This game was created in one week, and ended up winning Best Sound Design at the jam!
Ah, Picross - the incredible game
franchise that has about as many installments as there are stars in the universe. Based on the classic
Nonogram logic puzzle, this game has kept me
entertained for years, and was a huge hit with my partner at the time.
For the anniversary present, I created some custom levels based on aspects of our relationship (it was very sweet I assure you). Since I'd rather those elements stay as a private gift to her, you can now play recreations of some of my favorite levels from the first Picross game.
It’s a pretty good crowd, for a Saturday. At least it will be, so you better prepare.
That is the tagline for this interactive text-focused story game, based around Billy Joel’s fantastic song Piano Man. You play as Bill, the nightly piano entertainer at the Zanzibar. The gameplay, which is similar in style to games like Subsurface Circular and the interrogations of LA Noire, sees you communicating with the disillusioned patrons at the bar, trying to work through their problems in order to find the spark, a memory that they need to hear that night. The game is built in C# using the Unity game engine, and the UI and dialog system is all built from scratch. The story is developed in Twine and then exported to Unity using a Twine integration I developed.
The game is currently in development, and we hope to publish a playable demo on itch.io soon.
This game's been shelved until I can find the inspiration to return to it.
Inspired by the Infocom classics I played as a kid like Zork and Planetfall,
Voyage of the Infinity is an unfinished text adventure game that can be played in the browser.
Built on the Phaser game engine, a massive goal of the project was to make the codebase as
extensible as possible. All code specific to the game is stored in JSON files, so that the
code could easily be used to build other text adventure games in the future. The engine code
is written in TypeScript, along with some fragment shaders written in GLSL for extra flair.
The game was developed in conjunction with my friend Sean, who focused on the story and the
Will I come back to this project later and finish it? Most likely yes. It was a lot of fun to design and create, plus we already have two-thirds of the game planned out! The reason I stopped was due to burn out. Soon, however, The Infinity shall voyage again.
There is unfortunately no tutorial yet, but if you type "help", you will be given all the necessary commands. Note that the game is unfinished, and the content ends roughly when you reach the bio lab.
WARNING: the game is really loud, so turn down your speakers (I need to fix that).
Cannoneer is a 2D arcade shooter built on the Unity engine. This project gave me extensive practice with the C# language, as well as the Unity Game Engine. This project gave me a chance to flex my game design skills, as well as provided me with fun challenges associated with working as the only software developer on a team. The game won the Best New Media Award at the KU Film & Media Studies Tensies Awards. Although it has been delayed, a mobile version is in the works which is giving me experience in mobile development and in crafting an intuitive mobile UI.
When we heard that the theme for the 2021 Global Game Jam was “Lost and Found”, a couple of ideas were
thrown around. Our favorite was one that Sean had scribbled on a napkin while Varun and I were discussing
mechanic ideas. The idea was for a good-natured rat who returns the items that the population of the
city has dropped. This developed into Lost and Raturn, an arcade game built in C# with Unity engine.
In it, you play as Marshall, a rat who must grab items that are dropped by different types of city folk
and climb up their legs to return the right items to the right people. But look out! City dwellers are
dangerous, and if you get stepped on, you’ll lose a life!
In all honesty, this might be the game I am most happy with in all of my portfolio. It was a ton of fun to work on, I got to become closer with my friends and the game development community at my jam site (all of the voices in the game were from various other jammers who responded to our call for “yelps and shrieks”), and I just think that the game is a lot of fun to play. I hope you enjoy it!
Note: the online leaderboard does not work in the online version, but if you download the game it should be connected.
When you hear the word RFID, you probably think of credit cards, door locks, and those people
injecting microchips into their
skin. But would you think… controller for classic Atari games?
Well don’t worry, we did.
RFID Pong is exactly what it sounds like: Pong, but controlled with RFID cards. The game is written in Python and built using the pygame library, along with an arduino running 2 RFID scanners on a breadboard. It works by the 2 players both having 2 RFID cards, 1 programmed to be down and 1 programmed to be up. When a player wants to move their paddle in a direction, they scan the card associated with the desired direction, and the paddle will move as long as the card is on the scanner. It was built in 8 hours during the 2020 KU hackathon, but was disqualified from being entered because I contributed in organizing the event that year (see HackKU RFID in the Hardware section). It was a big hit, and other participants would come over to play the game and compete!
Terminal is an asychronous, cooperative, puzzle, couch-multiplayer game with some unique mechanics.
Player One is in charge of the top two-thirds of the screen, and for them the game is a platformer.
They use a controller and are able to jump around the environment, utilizing special abilities like
wall jumps and a high jump. Player Two is in charge of the lower third of the screen, and for them
the game is a combination of a typing and puzzle game. Player Two uses the keyboard, and takes on
the role of a hacker, typing in commands to a terminal. The "hacker" (Player Two) is able to manipulate
the "spy's" (Player One's) environment. The two players must work together in order to complete
levels by using a combination of skillful platforming, clever puzzle solving, and fast typing skills.
The game was created in Lua using the LÖVE 2D framework, and was actually my first ever video game that was played by other people, so this game holds a special place in my heart. It was created for the 2017 Jayhacks hackathon, and won 2nd place!
Conflicting Objectives is a short prototype of a competitive couch multiplayer party game written
in C# using Unity. The objective is to collect more coins than your opponents in the allotted amount
of time - typical party fare stuff. The twist comes that you must rely on the compass on the side
of the screen, which shows where your player is heading, rather than the player character itself.
Your opponents can then get power ups, which disrupt your compass in a variety of different ways.
From mirroring and restricting your movements to distracting you with other arrows, it becomes much more difficult to navigate your way to the coins. On top of that, power ups can stack, leading to hectic and enjoyable chaos that can be enjoyed by up to 4 friends on one single controller!
EECSurvival is a 2D bullet-hell shooter that is implemented using our homebuilt engine, The DFQE. DFQE was developed in Java using the Lightweight Java Game Library, which communicates directly with OpenGL. The project was built using an Agile Development Cycle, where we created design documents and hosted Scrum mettings. We also heavily tested the engine and game using a testing suite we created.
Most everyone knows Minesweeper, the classic puzzle game in which you try to clear a minefield using numeric hints as fast as you can. This project is simply a reproduction of the game written in Java using the JavaFX framework that was put together in one afternoon. The stretch goal for this project is to design a mechanic that removes game overs that are out of the player's control.
Full description coming soon...
Full description coming soon...
Description coming soon...
PoserRank is a social media platform that relies on an abstract concept of "posery" (an umbrella term for acts of stupidity). The project was primarily developed in Python using the Flask framework, but also contained uses of SQLite for database communication. The user interface was generated using HTML and CSS. The project has been discontinued due to lack of enthusiasm, but significant work has been done on the backend and frontend.
After helping organize the HackKU hackathon
for 2 years in a row, I decided I would not help organize my final year and simply enjoy the event.
However, when I was asked to develop an RFID system to help keep track of attendees, I couldn’t resist
the challenge. What arose was HackKU RFID, an application built in Python that would log what participants
came to which events and workshops. The program was created with Flask for the server and CircuitPython
for the client that was loaded on one of two Raspberry Pi. The system worked flawlessly (the second day) and was
an incredible help to the organizers of the event!
Unfortunately, the only images I have are from when the program was failing (the first night was hectic because the RFID readers had been set to the wrong settings), but they nevertheless show the program in action.
Full write up coming soon.
Ah the Nintendo Wii. As the classic home console system of the late 2000s, I grew up loving the Wii.
However, it wasn’t until much later in my life that I discovered the Wii controller works on basic
Bluetooth, and that with the right libraries,
the power of the Wii controller can be utilized
by anyone with some basic programming skills.
Wiimote Adventures is a collection of small scripts used to play around with the Wiimote’s capabilities. The project is written in Python using the cwiid library, and contains a few scripts: a lightsaber that utilizes the internal accelerometer to play whooshing sounds, a wheel controller that takes the accelerometer inputs and interprets them as keyboard inputs to steer a virtual car, and one that just rumbles the remote in morse code.
The Spotify Data Analysis project arose from my discovery that you can
download all of the data that
Spotify has on you (which includes your past year’s worth of streaming history). From this, I decided
to put my data science skills to the test and analyze my streaming history to find trends in my
listening habits. The project was written in Python using a Jupyter Notebook, as well as a variety
of graphing and analysis libraries. Analysis actually wound up taking many months to get to, because
before I could analyze my data I had to clean it and enrich it, which took a few months to complete.
To do these, I utilized Spotify’s API and created a helper tool to clean data, which can be found in
the Websites portion of my projects.
If you're interested in your Spotify listening habits as well, feel free to download your data and run it through the journals! It should be set up to support all data.
KU-dle is a scheduling program, similar to the popular Doodle service. The app was created using the Java language and the JavaFX framework. The app gave me experience with working on a deadline, as well as practice crafting a simple and intuitive user interface. I was team lead for this project, and that title made me responsible for delegating tasks and making sure everything was running smoothly.
The Morse Code Project is a fun application that allows computers to communicate through the use of morse code projected through speakers at superaudible levels. The project, written in Java, has a user interface that is implemented using the JavaFX framework. It utilizes high-level Digital Signal Processing libraries to parse audio data into patterns, and those patterns into text. The project is unfinished, but will be completed one day!