CLIENT: Kokjal Games🇰🇬Kyrgyzstan

Kerege - Game Backend and Live-Ops Console for a Cross-Platform Multiplayer Game

Player Backend and Live Ops for a Bishkek Game Studio

Designed and built a clickable player backend and live-ops console for a Bishkek studio's team-based multiplayer game on iOS, Android, Steam, PlayStation and Xbox: one player account across platforms, a server-authoritative currency ledger, audited grants with a second approver above each role's limit, and remote config targeted by segment.

Scope of Work
Product design, UI build and clickable demo
Industry
Gaming / Game Backend & Live Ops
Enterprise
Compliance & Certifications
GDPRUK GDPRUK Children's CodeCOPPAKyrgyz Digital CodeConsole certification (TRC, XR, Lotcheck)App Store and Google Play rulesLoot box odds disclosure

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Dashboard, player search with a quick view panel, player detail with 8 tabs and 6 audited actions, grants and revocations, and remote config with the client version gate.

2 Approvers
Above each grant limit

Support agents grant up to 1,000 Embers alone and senior support up to 5,000. Larger grants and every bulk grant wait for a second approver, who cannot be the requester.

8 of 18
Config keys locked in live

Critical keys such as match rewards, pass prices, crossplay, voice chat and the odds link need a second approver before a change reaches live. Every edit shows a diff and the players it affects.

24 Players
Realistic demo data

24 players in 15 countries across 5 platforms, 2 with child profiles, plus 15 grants, 7 reason codes, 10 segments, 8 support cases and 9 staff users.

The Problem

Kokjal Games shipped Ember Steppe on mobile first, on a patchwork: a hosted mobile login, a separate Steam login, saves in a key-value store and currency balances kept partly on the client. When the game reached PlayStation and Xbox, progress could not move between platforms and duplicate accounts piled up. Support granted compensation by editing database rows with no reason and no second check, and one mistyped grant put 500,000 premium currency into a single account.

Our Solution

Kerege puts the game behind one set of player APIs and gives live-ops, support and trust and safety one console. Every player has one account with linked platform identities, balances come only from a server-side ledger, grants and revocations need a reason code and a second approver above the requester's limit, and config changes are scheduled in UTC, targeted by segment and approved before they reach live.

The Challenge: One Game, Five Platforms, Every Market

Ember Steppe is published worldwide from Bishkek. One player can sign in from a phone, Steam and a console, the studio's staff work in UTC+6 while most players are hours behind, and each market brings its own rules for children, personal data and paid random items.

One Player, Many Platform Accounts

Each platform has its own sign-in and reports its own privileges, such as communication, user-generated content and crossplay. Without one account above them, progress stayed on the platform it was earned on and support could not tell duplicates apart.

Currency Nobody Could Trust

With balances partly on the client and grants made by editing rows, there was no record of why a player's Embers changed or who changed them. A server-authoritative economy needs every movement as a ledger entry with a source, a reason and an idempotency key.

Live Changes at Midnight

Live events were switched on by a developer editing a config file at midnight Bishkek time, mid-afternoon in the Americas. Changes had to become scheduled, targeted by segment and platform, checked against a diff and approved for the keys that move the economy.

Children and Data Rights by Country

GDPR expects a data request answered within one month and lets each EU country set the age of digital consent between 13 and 16. The UK Children's Code covers players under 18 and COPPA needs parental consent under 13. Deletion requests had been answered late or not at all.

Our Approach: From Live-Ops Rules to a Clickable Console

01

Spec and Rules Research

Mapped 10 roles from support agent and moderator to privacy officer, player and parent, 44 screens (38 console and 6 player-facing) and the data model for players, platform identities, cloud saves, inventory, the wallet ledger, grants, drop tables, matchmaking, events, seasons, config, segments, experiments, sanctions and data requests. Wrote down the rules the design follows: GDPR and UK GDPR, the UK Children's Code, COPPA, Kyrgyzstan's Digital Code, console certification, app store account deletion and odds disclosure rules, and a server-authoritative economy.

02

Clickable Demo on a Production UI Kit

Built 5 key screens on a production dashboard kit with a dev, staging, certification and live environment switcher: the dashboard with 5 KPI cards, players online by platform, live now and needs attention, player search, player detail with identities, inventory, wallet ledger, matches, sanctions, privacy and activity, grants and revocations with approve, reject and bulk grants to a segment, and remote config with overrides, history and roll back. Grants post ledger entries and update balances as you click.

03

What a Production Build Adds

The player API for the game client, sign-in through Steamworks, PlayStation Network, Xbox services, Sign in with Apple and Google Play Games, age assurance and parental consent through k-ID or SuperAwesome, Agones or GameLift for the server fleet, Easy Anti-Cheat, Zendesk, Prometheus with Grafana and PagerDuty, and a Kafka event stream. Staff auth by role, a full audit log, and the remaining screens: matchmaking, leaderboards, events and battle pass, experiments, sanctions and appeals, privacy, operations, settings, the player account portal and the parent dashboard.

Why It Works: Every Change Has a Name and a Reason

Balances Come From the Ledger

The wallet tab lists every entry with its amount, balance after, source and reason code, and each opens a panel with the reference, actor and idempotency key. The player page states plainly that the client never decides a balance.

Limits Travel With the User

The sidebar shows the signed-in role and grant limit. A grant above it is sent to Grants & revocations instead of applied, the requester cannot approve their own grant, and a bulk grant freezes its segment and excludes deleted and banned players before it runs.

Live Is Hard to Touch by Accident

The live environment puts a red strip across every page. Config edits open a diff with the affected segment and estimated players, times show in UTC and Bishkek time, critical keys wait for a second approver and the client version gate sets the minimum version per platform.

Child Profiles Visible Everywhere

Child profile badges appear in search and on the player page, platform privileges are listed per linked identity, and child defaults turn off marketing, personalised offers and purchases. Searching by email or platform id is logged as a personal data lookup.

Related case studies

View all: Gaming
Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab