Something I’ve been noodling on is a simulator for casino table games. It started with an interest in craps, then expanded toward blackjack and baccarat. This page is a home for highlights as that work takes shape.
Swiping between games
On a real floor you drift from craps to blackjack to baccarat in one evening—the pace and table feel change every time you sit down. A phone can’t bottle all of that, but one homescreen can still make jumping between games feel quick and intentional.
The homescreen is built with swiping in mind: pages snap into place, with a hint of liquid glass along the top that morphs to fit the game label as you scroll.
Here’s a quick look at the tab bar flow as it stands today:
Placing bets
The same few gestures show up everywhere in the app—craps, blackjack, baccarat, and any surface where chips move. Tap and drag are the baseline: you’re never learning a new affordance when you switch games or screens.
That spine still has to feel like sitting at a table, so placing, adjusting, moving, pulling back, and regressing all read as one vocabulary. Drag a chip onto a betting zone (eligible spots share a similar dark gray); tap to stack more. While you drag, drop zones highlight so you always know where the chip will land—same hinting any time the layout accepts a chip.
Feedback through Animation
Teaching craps means never leaving someone guessing where the money is going. Payouts are anchored to the bets themselves—e.g. you had $15 on the 8, it hits, the win tracks beside that contract; you seven out next roll and you see the $70 walk away. Win or lose, the story of the hand stays legible—that’s the context layer everything else hangs on.
Pass Line and odds
The Pass Line is craps 101: even money, win by making the point before a seven. Odds ride next to that pass bet (how we represent “behind”). Pass is locked in place once played; odds stay draggable off the layout until a 7. That lets players establish pass, see it lock after the roll, lay odds alongside, and pull odds back without a lecture.
In the UI, that shows up as: Pass Line label slides to make room when a bet is placed; the locked pass bet dims; you can tap or drag to place odds; odds overlap the pass stack slightly; dropping odds slides the pass bet back to its first position.
Collect and presets
Shortcuts have been a big focus in the craps build. When you have a lot of money out and want to collect, a single Collect Bets control pulls everything back instead of dragging each contract to the stack one by one.
Going across the numbers with small unit bets is another place tiny taps add up. Presets bundle those distributions: for example, $64 across puts $10 on each of the 4, 5, 9, and 10, and $12 on each of the 6 and 8.
Drag & drop zones
On a phone, cramming every contract into its own control doesn’t fly—so some surfaces carry multiple drop targets while you’re still dragging one chip through one gesture. Fewer bespoke controls on screen, closer to how a crowded real layout stacks meaning into tight spaces.
Box numbers (4, 5, 6, 8, 9, 10) split vertically: place along the lower two-thirds; lay along the upper third.
C & E is the same density play. Live tables use two small circles; both at once is the gap between them, with the bet split half craps (2, 3, 12) and half eleven (11). Here, three zones—C, E, and the split—stay explicit instead of hiding the geometry in one ambiguous blob.
Shimmer
There’s got to be something about the psychology of a nice shimmer. You know the type; a shimmering coin or pile of gold. I think it adds to the allure. We couldn’t just NOT have shimmering in the gambling app!
I strategically added shimmer in 2 different places. The first is to draw attention to actions the user can take; like rolling the dice. The second is giving the winning animation a bit more pizazz. Paired with CADisplayLink (number animation matches framerate of the phone) for a number counting up, slight scale-up motion, & a bit of liquid glass makes for a really satisfying win animation.
Details & Stats
Table games run on a special kind of optimism—I can feel the dice tonight. The numbers, meanwhile, are deeply unimpressed. I wanted a place where that fantasy bumps into the receipt: what did your session actually consist of?
Did you roll fewer 7s than you’re “supposed” to? (Maybe. Statistically? Almost certainly not.) What else kept showing up —- signal, or just a loud small sample? Through all the sevens, did you still walk away up? How long did you sit there convincing yourself the trend was real?
And the honest coda: are we addicted to gambling? Probably.
As for the details, graphs for balance along size the bet size are useful for viewing trends & patterns when it comes to identifying betting habits. For example, when bets get big, the losses get bigger. Chasing a loss? Might as well book a double loss.
Another graph to show the distribution of dice outcomes is equally valuable. Drag on the visualization with your finger to reveal more stats on a per-number basis; like actual vs expected 7s.
Blackjack, simplified
I’ve aimed to create a blackjack game that is stupidly simple. Place your bet, get your cards, tap to hit, singular buttons to stand or double, clear payouts, etc.
Lots of the goodies that we have talked about up until this point are featured in blackjack; easy betting, smooth winning animations, simple gestures, etc.
But there are some goodies unique to blackjack; like card dealing animations, intuitive interactions for hitting (asking for another card), etc.
Here’s a few:
Double, Face down
In typical blackjack at the casino, the table allows for doubling your initial bet in exchange for 1 more card if you have an 9, 10, or 11. I’ve brought similar logic to my blackjack game, as well as that final card being delivered face down. The dealer then takes their turn before we reveal the player’s card.
Drag to spread
As the player or dealer’s hand grows, we shrink the cards slightly & stack them on top of eachother. The problem becomes displaying all of the cards efficiently. I decided to build a swipe-to-spread animation that mirrored sitting at a table with cards in front of you; drag to spread the stacked cards out, to get a better view of what’s in the hand. Coupled with a thwompy haptic when released, the cards rubber-band back into their original stack.
Bonus Bets
Every good table has bonus bets that can be played with every hand. I’ve got a list of 5 different bonus bets that are evaluated at different points in the game loop. Makes for good fun!