In-Game Store and Economy Console for a Caribbean Game Studio
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.
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, offers, the offer editor with a live phone preview, refunds and voids, and player detail with the journal lines behind every balance.
Real-money price first, reference price for any discount, no random contents, cosmetic only, no personalised targeting of under-18s and a copy blocklist, plus pack fit for Pearl-priced offers and a real end time when a timer shows.
Refunds revoke bonus Pearls first and never more than the balance. The rest is a shortfall memo, auto-processed under 1,000 Pearls or on a player's first refund in 90 days.
16 offers, 18 cosmetics, 6 Pearl packs, 5 bundles, 29 purchases and 12 refund cases, with prices in 8 storefront currencies and a full ledger history for one player.
Flyingfish Tiles grew faster than its store. Offers were hard-coded into client builds, so a price change needed an app release. Pearl balances were a single number on the player record, and when Apple or Google refunded a purchase, support removed Pearls by hand, leaving some players negative and others with currency they never paid for. Nobody could say how many Pearls were in circulation, parents wrote in about children spending without asking, and a player in Ireland called a countdown offer "fake urgency".
Tuk gives Greenmonkey Gully's economy, live ops, support, finance and player safety staff one console for the store and its currency. Offers are built in the console and checked against fairness rules before approval, every Pearl moves through a double-entry ledger, refunds and voids are revoked without driving a balance below zero, and each player's spend, limit and parent link sit on one page.
Flyingfish Tiles is sold through Apple and Google to players across the Caribbean, North America, the UK and the EU, so every offer has to respect platform billing rules, consumer law in each market and the studio's own policy for children.
Prices, bundles and daily deals were hard-coded into client releases. Changing a price meant shipping a new build, and there was no review step between an idea and what players saw.
Pearls were one number per player. Refunds from Apple and voids from Google, including chargebacks, were corrected by hand after the Pearls were often already spent, so balances went negative or kept unpaid currency.
The CPC Network's principles ask for real-money prices next to virtual currency and no forced overbuying. The EU Unfair Commercial Practices Directive and the UK DMCC Act 2024 prohibit misleading and aggressive practices, so false countdowns and fake scarcity are out.
COPPA generally requires verifiable parental consent before collecting personal information from under-13s, and the UK Age Appropriate Design Code and Google Play Families policy point the same way. The studio also chose no personalised offers for anyone under 18.
Mapped 9 roles and 38 screens across the staff console, the in-game store, a parent portal and player web pages, and the data model for items, Pearl packs, offers, price points, purchases, ledger accounts and journals, refund cases, spending limits, parent links, safeguard reviews and change requests. Wrote down the rules the design follows: Apple and Google billing with server-side validation, the CPC principles, the UCPD and DMCC Act, withdrawal rights, COPPA, the UK Age Appropriate Design Code, no paid random items, and the Barbados Data Protection Act 2019, GDPR and UK GDPR.
Built 5 key screens of the staff console on a production dashboard kit: the dashboard with 5 KPIs, bookings by platform, Pearl sources and sinks and a needs-attention list, the offers table, the offer editor with a phone preview by platform, theme, language and currency and fairness checks that update as you edit, refunds and voids with the proposed revocation journal, and player detail with wallet, purchases, spend and limits, inventory, parent link and activity tabs. All actions run on local state.
Integration with StoreKit 2, the App Store Server API and Server Notifications V2, Google Play Billing, the Play Developer API, real-time developer notifications and the Voided Purchases API, Apple Ask to Buy and Google Play parental approval, the game backend, an event stream such as Segment or Kinesis, store sales reports and parent emails through Postmark or SES. Staff single sign-on, an audit log of every price, offer, limit and grant change, and the remaining screens: catalogue, schedule, price points, economy dashboard, ledger explorer, simulations, change requests, safeguard reviews, targeting rules, reports, the in-game store and the parent portal.
The offer editor shows the local price first and runs every fairness check under the phone preview. A "was" price appears only with a reference price, meaning the same contents on sale 28 of the last 90 days, and wording such as "Only today!" on a repeating offer is flagged for a reviewer.
Every Pearl and Shell balance is built from append-only journal lines with the balance after each one, paid and bonus Pearls kept apart. Corrections are new journals, and the dashboard confirms that debits equal credits with 0 wallets below zero.
Each refund or void shows where the Pearls went, then proposes a revocation journal: bonus Pearls first, never more than the balance, with the rest held in a shortfall account rather than against the player. Nobody is blocked from playing because of a refund.
Player detail shows the age band, month-to-date spend against the limit and who set it, the limit history and requests sent to a parent. Lowering a limit applies at once, raising takes 24 hours, and a goodwill grant above 500 Pearls becomes a change request.

Designed and built a clickable companion community app for Cinderwild, an online survival game from a Pristina studio: clans with channels, voice rooms and raid RSVPs, patch notes, LFG and guides for players, and a moderator console that works reports against response targets and records a statement of reasons for every decision.

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