Texas Hold'em for VRChat
Key Points
Implemented Texas Hold'em into a cross-platform, multiplayer, and VR-friendly gameplay interface with intuitive UI and visceral UX for an experience that felt tactile for players and provided them a social outlet.
Optimized heavy algorithms, including winner selection and best hand determination, in a restricted C# interface to ensure the table ran smoothly across any VRChat-compatible device.
Designed all menus and particles and worked alongside an artist and a sound designer to create a cohesive poker theme and craft a physical presence to the poker table.
Conducted weekly playtesting sessions over the course of 8 weeks with anywhere between 2 and 16 testers to accelerate bug reporting and fixing, as well as to correct issues with UI/UX and language translations.
Gameplay Programming
Created an optimized algorithm to calculate the best 5-card hands of a variable number of players. Using only integer and character arrays, I was able to create an O(1) algorithm for determining what type of hand a player had. This was integrated into a loop to sort a list of players based on the strength of their hand, resulting in an O(n) algorithm for determining winning players.
Implemented the fixed-rake algorithm to calculate main and side pots. This ensured that if a player was forced to go all-in by virtue of not having enough chips to match the current bet, they would create a fixed limit on the current pot such that whoever won the pot would only get that amount times the number of players able to bet in that pot. Then, the rest of the money would be raked into a new pot for the remaining players to bet on. This algorithm worked for any configuration of players.
Gained experience in created a networked multiplayer game. Despite being in a sandboxed environment that the VRChat development team provides publicly, this proejct provided a practical scenario to learn how the limitations of online networks affects how one structures gameplay that is meant to be synchronous across multiple clients of varying degrees of network stability. Thus, I experimented my way into a lockstep gameplay loop, despite learning the terminology for it months later.
UI/UX Design and Programming
All design work in this project was around the game pillar of tactility to solve the lack of a Texas Hold'em game with such a quality in VRChat. This was in partnership with a 3D artist friend, who brought this issue to my attention. We agreed to work on this together to create this project not just for her own benefit as a fan of Texas Hold'em, but for others in VRChat desiring the same kind of experience.
Collaborated with the 3D artist and a sound designer friend to enhance the user experience of the game. With the artist, we brainstormed and specified how the graphics of the cards, chips, and table should give a game a sense of luxury found at a poker table in a casino while still leaving room for world creator customizability. With the sound designer, we worked together to create sounds that further give the impression of luxury by replicating the sounds of cards sliding, chips moving, and creating jingles that re-enforced the state of the game with artistic flair.
Designed every necessary menu and particle VFX for the game (join menu, player settings, game master settings, bet selection/placement, card folding/revealing, etc.), initially with paper prototyping, to create an user interface that was compatible with all platforms VRChat supports, as well as being usable in multiple languages. As it turns out, creating menus that correctly work with the logic of the game, imply intuitive navigation by replicating affordances and signifiers from real-world poker and poker apps, elicit visceral sensations with haptics and feedbacks, display correctly when switching between Latin and CJK languages, and function on VR, desktop, and mobile platforms takes a ton-- and I mean, a TON-- of iteration of testing. It was arguably the hardest and most rewarding part of the project to complete.
Professional Growth
While working in large teams allows for greater potential to create a huge project, I find that working in a small, scrappy team like this one unlocked my potential to prototype, test, and iterate at a pace that I could control and accelerate. I appreciate the freedom that came with this project, and my friends who worked on this with me and helped me test the table to the very end.
Working within the limitations of both networked gameplay and a restricted version of Unity's C# adhering to VRChat's public API taught me a massive amount about multiplayer gameplay programming. While not being as hardcore as creating an online multiplayer game from scratch, it gave me a good basis for how to structure projects like this or ones adjacent to it in the future.
It was this project that put everything that I had learned on my own and in college/university to the test. My programming skills, graphic design skills, marketing skills, and video editing skills all came into play in order to not only integrate this into our debut world, but also to distribute this game as a Unity prefab that other creators could use in their worlds. Our efforts were not wasted-- on launch and well after, the table garnered tons of attention naturally, and was popular not only in the US, but in Europe and Japan as well, having over 30,000 visits, over 3.5K favorites, and over 50 purchases of the prefab (at the time of writing, Apr. 2, 2025).



