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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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 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.

Designed and built a clickable tournament platform for an Ulaanbaatar amateur and semi-pro esports league: tournaments checked against each publisher's recorded licence terms, brackets and schedules, a match day board that shows who has checked in, and score reports with evidence and disputes. No betting features of any kind.

Designed and built a clickable store and economy console for a Barbados studio's free-to-play puzzle game: offers that pass fairness checks before they go for approval, a double-entry Pearl ledger that never lets a balance go below zero, Apple refund and Google void handling, and a player view with spending limits and parent requests.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
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
Enterprise Software Engineering - Human + AI
Contact Us
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