Tech showcase

Infinite Book Shelf powered by Sai Server.

A 3D puzzle for browser, PC and Android where every book, shelf and flower is saved to the cloud, so no progress is lost.

  • Unity 6 (6000.3)
  • URP
  • WebGL · PC · Android
  • Google sign-in
Wooden bookshelves packed with colored books, flowers blooming above each sorted compartment, and a magic wand cursor picking up a yellow book

Where to play

One game, four stores

The same game and the same cloud saves, in the browser, on PC and on Android.

  • Unity PlayBrowserPlay on Unity Play
  • Itch.ioBrowser / PCComing soon
  • SteamPCComing soon
  • Google PlayAndroidComing soon

Gameplay

Infinite books. Endless shelves.

Never run out of books.

Powered by Sai Server

What the game asks of its backend

Infinite Book Shelf uses two Sai Server modules for sign-in and cloud saves. Here is what each one does in the game.

SaiAuth
Google sign-in through the backend, token sessions with auto refresh, and auto-login on return. A session guard sends the player back to login safely when the refresh token expires.
GamerProgresscustom game_data
The whole level is stored in the cloud: the seed, the position of every moved book, the tray contents and the Fuzzy Fruit count.
Smart auto-save
A cheap fingerprint of the level is checked on an interval. The game saves only when data changed, after it settles, with a maximum delay cap. It also force-saves on logout or exit, and saves to the device on mobile. Few requests, no lost progress.
Seed-based restore
A saved level is rebuilt deterministically from its seed and only the differences are applied, so saves stay small.
Release-safe config
Release builds take the GAME_ID from build config, strip dev credentials and allow only Google sign-in. Dev builds keep the debug login and debug info.
Web store on Sai Play
The game's shop also opens on Sai Play, the player site shared by every game on Sai Server. Players sign in with the same account and buy in the browser; purchases arrive in the game's mailbox or inventory.Open the shop on Sai Play

Architecture

The game's login panel with a single Sign in with Google button and the build version
The SaiServer prefab in the Unity Inspector: Sai Auth settings for persisted tokens, auto login and auto refresh, with the Google Backend Login, Gamer Progress and other module components below

Also available in the SDK

Not used by this game. One drop-in prefab, modular and event-driven.

  • Mailbox
  • Inventory / Items
  • Crafting
  • Gacha
  • Shop
  • Quests
  • Leaderboards
  • Journey analytics
  • Battle sessions
  • Lua scripting

Engineering highlights

Measured in the final build

  • 4,177 → 55draw callswith 4,000 books on screen: GPU instancing and one shared 4K cover atlas.
  • 35.1 MB → 22.4 MBtexture memoryabout 36% less.
  • ~245 ms → ~19 msbook picking batch1,514 rays, zero mismatches.
  • 588 / 28books / shelvesin a normal view, with 100% pool reuse: 84/84 objects, no runtime GameObject allocation.
Tested with 800 billion books.
A level in play: shelves packed with colored books framed by tropical flowers, the book counter in the corner, a magic wand cursor and the book tray with its chained slots
  • Endless-feeling levels

    A grid of shelves is split into clusters. Shelves are generated only when the camera needs them and streamed in and out as you pan.

  • Procedural shelves

    Each shelf is built from rules: rows of 10 books, compartments of 2–7, stepped boards and one empty compartment. The rules are validated over 20,000 seeds.

  • Cross-shelf shuffle

    Books swap between shelves inside a cluster, fully reproducible from the seed.

  • Startup work budget

    Loading is spread across frames, so the game never freezes while a level loads, on any platform.

  • Per-platform rendering

    Desktop and mobile feature profiles: a mobile render pipeline asset, BC7 textures on desktop and ASTC on mobile.

  • Pooling everywhere

    Books, shelves, flowers and effects come from one scene-authored pool.

Play it, then build your own.