top of page

UI Work

Here are a few gizmos I've built to drive some of the UI systems I've touched in the past.

 

What you see behind this text is an early multiplayer UI system I built that responds to events from a game server. One of the biggest challenges was changing visuals based on which player you were. Those floating green energy bars are actually bright red for enemy players!

Harry Potter Holiday Sales Card

A flexible loot bundle user interface

I had the opportunity to write the logic that drove a seasonal loot bundle card in Zynga's match-3 mobile hit Harry Potter: Puzzles & Spells

 

Loot bundles are purchasable packages of in-game items, and they're typically advertised individually. However, my card needed to display multiple loot bundles instead of just one. As such, it posed a few new technical challenges:

​

  • How can I build flexibility into the card such that any number of bundles can be visibly arranged in different layouts?

  • How should individual bundles acquire their data and communicate changes in state with other bundles displayed on the card?

​

By componentizing logic for key visual elements of the card and routing bundle purchase requests through a single manager class, I developed a solution that offers flexibility in the content displayed on the card while ensuring coordination between the bundles. 

​

​

​

​

General Purpose Collection Displays

UI scripts to build collections of things

In Spring of 2023, I was responsible for the technical side of the UI of a horror game based on our engineering building at UCLA. I quickly discovered I was rewriting lots of code that drove the buttons, item collections, and animations that supported the game screens. As such, I wrote a small set of general UI scripts that could easily be used to drive all the basic menus and inventory systems in our game. You can check out these scripts here!

ASCII Text Boxes

Dynamic text boxes made from ASCII characters

I had the crazy idea one day to build an RPG displayed only using ASCII characters in a terminal window. Every RPG has little text boxes that tell the player what’s going on and what moves they can make. However, displaying this info is not as simple as copy-pasting text into a static ASCII box. How do I specify formatting for the text? What about dimensions and padding? How and when should I update the content of the text boxes? These were the major challenges I encountered while implementing this dynamic text box. While my solution involved several new C++ classes, most of the heavy lifting can be found in this one.

UI Override Tool

A Unity editor tool for quickly changing UI at runtime

During my sophomore year, my game development club was building a project similar to Mario Party. I’d implemented a set of game windows that showed player scores and how-to-play instructions. However, (for reasons outside the scope of this blurb) it was super difficult to manually override the content of the game windows for testing purposes. I decided to write a Unity editor tool that helped me do just that. It’s not pretty and perhaps took a bit longer to make than it was worth, but it did get the job done.

bottom of page