All projects

Game Dev · Mobile · Multiplayer

FullStars

From the Unity table to the multiplayer service.

Building the client, networking and game services behind mobile multiplayer poker: table events, betting rounds, side pots and hand outcomes.

My responsibility
Unity · Networking · Redis · Node.jsClient and multiplayer services
Collaboration
Backend developer & artistAlongside my engineering work
Year
2021

From the game

A look inside FullStars

Original mobile build screenshots supplied by Hamza. The interface is shown as captured in 2021.

FullStars lobby showing poker table listings and game mode filters.
01 · LobbyHold’em and Omaha tables available to join.
FullStars hand detail screen with five player rows, cards, and outcomes.
02 · Hand historyCards and outcomes after a multiplayer hand.
FullStars login screen with the original game logo and sign-in options.
03 · EntryOriginal branding and mobile sign-in flow.
The systems I worked across
UnityMobile client
Table creation & joining
Socket.IOGameplay networking
Table events
Node.jsPoker game logic
Turns, bets & settlement

Redis for live table state · External APIs for hand history and balance integration

01Client and multiplayer engineering.

FullStars is a mobile multiplayer poker project. I built the Unity client, gameplay networking, Redis-backed table state and Node.js multiplayer services, working alongside a backend developer and an artist.

My contribution connected the player-facing table to the systems that handle a hand: creating and joining tables, exchanging gameplay events, progressing turns and betting rounds, and resolving the result.

My scope: Unity, networking, Redis and Node.js multiplayer services. These are my engineering contributions within a team project.

02Connect the table to the game.

Players enter through the Unity client. I implemented table creation and joining and connected gameplay to the Node.js services through Socket.IO.

The networking layer exchanges table events between the client and game services. That connects player actions and the table interface to the multiplayer hand in progress.

  1. Create or joinThe Unity client takes the player into a table.
  2. Exchange eventsSocket.IO carries gameplay and table messages.
  3. Progress the handNode.js services handle the poker rules and hand lifecycle.

03Carry a hand through to settlement.

My Node.js work covered Hold’em and Omaha game logic, including turn order, betting, side pots, hand evaluation and settlement.

Turns and betting rounds

The game services track whose turn it is and process betting as a hand advances. This is the rules layer behind the actions presented by the Unity client.

Side pots and hand outcomes

A hand can include players contributing different amounts to the pot. I implemented the side-pot logic alongside hand evaluation and settlement, covering the transition from betting to the resulting outcome.

Implementing both the client networking and the multiplayer services let me work across that complete gameplay flow, from the player’s action to the resolved hand.

04Live state and the surrounding services.

I used Redis-backed live table state in the multiplayer services. Socket.IO table events connect the active game to the Unity clients.

The Node.js services also call external APIs for hand history and balances. My work included these integrations as part of the multiplayer flow.

This project brought together the Unity interface, gameplay messaging, server-side poker rules and service integration. It is an example of my work across the boundaries that make a multiplayer feature function as a whole.

Next case study

Line Breaker

Designer tools, runtime systems and multiplayer engineering for a VR / MR runner.