Aeion BaaS vs Firebase & PlayFab
Firebase Game SDK costs $0.05/MAU after the free tier and lacks matchmaking, ratings, and virtual economy. PlayFab takes 5-8% of your virtual goods revenue. Aeion BaaS delivers Glicko-2 ratings, MMR+RD matchmaking, double-entry currency ledger, sandboxed JS/TS functions, battle passes, guild wars, and rule-based anti-cheat — for one flat $49/mo fee, unlimited users.
Head-to-Head Comparison
| Capability | Aeion BaaS | Firebase Gaming | PlayFab |
|---|---|---|---|
| **Virtual Economy** | Double-entry ledger (atomic, no dupe exploits) | Firestore (no ledger model) | Basic ledger (limited atomic ops) |
| **Currency Types** | Soft, hard, premium (3 types) | N/A (build yourself) | Soft + hard |
| **Rating System** | Glicko-2 (MMR + RD) | N/A | ELO (no RD) |
| **Matchmaking** | MMR + RD widening (4-step) | N/A (Cloud Functions + Firestore) | MMR with configurable widen |
| **Leaderboards** | Global/weekly/tournament/speed-run with anti-cheat | Basic Firestore queries | Built-in |
| **Anti-Cheat** | Rule engine (rate_limit/impossibility/account_age/honeypot/custom) | N/A (build yourself) | Basic rule list |
| **Serverless Functions** | Sandboxed JS/TS VM (transpiled) | Cloud Functions (Node.js) | CloudScript (JavaScript) |
| **Battle Passes** | Built-in tiered XP progression with free + premium tiers | N/A | Built-in (Economy v2) |
| **Guilds + Wars** | Built-in — lifecycle, ranks, applications, wars, prize distribution | N/A | Built-in |
| **Push Notifications** | APNs + FCM + Web Push with campaigns, A/B variants, quiet hours | Firebase Cloud Messaging | PlayFab notifications |
| **Inbox with Rewards** | Transactional reward delivery (failed delivery rolls back rewards) | N/A | N/A |
| **Loot Tables** | Seeded + probabilistic with conditions | N/A | Built-in (Loot Tables) |
| **Pricing Model** | Flat $49/mo, unlimited users | $0.05/MAU after free tier | 5-8% of virtual goods revenue |
| **Customizability** | Deep configuration control, no vendor lock-in | Limited (managed service) | Limited (managed service) |
| **Ecosystem** | Part of Aeion OS (45+ vertical modules) | Google ecosystem | Microsoft ecosystem |
The Revenue Share Problem
PlayFab: 5-8% of virtual goods revenue. If you sell $100K/month in virtual currency and in-game items:
- PlayFab cost: $5,000-$8,000/month — forever
- This is on top of your AWS/Azure/GCP bill for the rest of your infrastructure
Firebase Game SDK: $0.05/MAU after the free tier (50K MAU). At 500K MAU:
- Firebase cost: $22,500/month — and you still need to build matchmaking, ratings, economy, anti-cheat yourself
Aeion BaaS: $49/mo flat. Your $100K/month game doesn't cost more because you're successful — no MAU meter, no revenue share, ever.
The comparison gets worse when you factor in what you're getting: PlayFab's built-in economy is a basic ledger. Aeion BaaS has a battle-tested double-entry currency ledger, a Glicko-2 rating engine, and a rule-based anti-cheat engine with 5 rule types. To replicate this on PlayFab or Firebase, you'd need a team of engineers for 6-12 months.
Glicko-2 vs ELO: Why Ratings Matter
PlayFab uses ELO. ELO is a zero-sum rating system — your rating goes up when you win, down when you lose. It's what chess has used for 60 years.
The problem with ELO for games:
- It doesn't account for uncertainty. A player with 10 games at 1500 rating is treated the same as a player with 500 games at 1500 rating.
- It doesn't track volatility. A player who swings wildly between stomping and getting stomped is treated the same as a consistent player.
- It can't handle inactivity. A player who takes a 6-month break comes back with the same confidence as someone who plays daily.
Aeion BaaS uses Glicko-2, tracking rating, Rating Deviation (RD), and volatility per player:
- RD (Rating Deviation): New players start with RD=350 (high uncertainty). Active players have RD=50-100. Inactive players' RD grows over time — their rating becomes less certain, so they're matched more loosely when they return.
- Volatility: Tracks how much a player's performance swings. A consistent player has low volatility. A "coin flip" player has high volatility.
- Better matchmaking: Two players with the same ELO but different RDs get matched differently. A veteran at RD=50 is a known quantity. A new player at RD=350 is a wildcard — matched more loosely.
This is why games like Overwatch, Valorant, and League of Legends use variants of Glicko/Glicko-2. ELO is for chess. Games are messier.
Virtual Economy: Double-Entry vs Basic Ledger
The dupe exploit problem: Most game economies get wrecked by dupe exploits — players finding ways to grant themselves currency without a corresponding deduction. This happens because the economy is built on "balance" fields that get updated, not on immutable transaction logs.
PlayFab Economy v2: Basic ledger. When a player purchases currency, PlayFab increments their balance. When they spend it, PlayFab decrements it. If the increment and decrement happen simultaneously (race condition), both might succeed — and you've just created 500 soft currency out of nothing.
Aeion BaaS's currency ledger:
``` // Every transaction is double-entry — one debit, one credit, always balanced // There is NO balance field that gets arbitrarily updated. // Balance is always derived: SUM(credits) - SUM(debits) from transactions.
// Debiting an account is atomic: // 1. Lock the balance row // 2. Check balance >= amount // 3. Insert the debit transaction record // 4. Update the balance // All inside a single database transaction — a second concurrent debit // always sees the updated balance and fails cleanly rather than racing. ```
Every transaction is an append-only ledger entry. The balance is always re-derived from the transaction log. There is no way to change a balance without a corresponding transaction. Dupe exploits require finding a way to insert a credit without a debit — and the atomic transaction model prevents that at the database level.
This is the accounting principle applied to game economies. It's why real financial systems use double-entry bookkeeping — it makes it mathematically impossible to create money out of nothing.
Anti-Cheat: Rule Engine vs Blacklist
PlayFab: Basic rules — ban player, unban player, add to ban list. When a new exploit emerges, you update the ban list. Players who find the exploit before you do get banned retroactively. The exploit has already done its damage.
Firebase: No anti-cheat. You build it yourself. By the time you've built a basic rate limiter, the exploit community has moved on.
Aeion BaaS's anti-cheat engine:
It's a rule engine, not a ban list:
typescript
// Impossibility rule
{
ruleType: "impossibility",
appliesTo: "score",
config: {
theoreticalMax: 10000,
stdDeviations: 5,
checkAgainstGlobalMean: true
},
severity: "critical",
action: "block",
autoBanOnCritical: true
}
When a new exploit is discovered:
- Configure a new rule in the admin console (no code deployment, no app update)
- Rule takes effect immediately across all players
- Exploit attempts are blocked in real time, not banned retroactively
- Evidence is logged for manual review of borderline cases
Rule types:
rate_limit— Too many actions per time windowimpossibility— Score exceeds theoretical maximum or global mean + N standard deviationsaccount_age— New accounts gated from high-value actionshoneypot— Hidden fields that only bots fillcustom— Arbitrary JS expression evaluated in sandbox
This is the difference between reactive (ban list) and proactive (rule engine).
Serverless Functions: Sandboxed VM vs Cloud Functions
PlayFab CloudScript: JavaScript functions that run in PlayFab's cloud. Limited API surface. Can't run arbitrary Node.js. Performance is opaque.
Firebase Cloud Functions: Full Node.js. But Firebase has no concept of game-specific APIs (currency, inventory, matchmaking, ratings). You'd be writing raw Firestore reads/writes — which means building the game logic yourself, on top of the "serverless" layer.
Aeion BaaS sandboxed function execution:
```typescript // Sandboxed QuickJS WASM // Fully isolated — no access to filesystem, network, process // Memory limit: 128MB (configurable) // Timeout: 5000ms (configurable)
// Injected Aeion API: ctx.db.find/create/update/delete() // Database ctx.currency.debit/credit() // Currency operations ctx.inventory.grant/revoke() // Item management ctx.ratings.update() // Glicko-2 rating updates ctx.log(level, msg, meta) // Structured logging → WebSocket broadcast ctx.raise(event, payload) // Emit game event ```
`ctx.log` → live clients via WebSocket: When a function runs, its console.log output is broadcast to connected game clients in real time. Use case: AI game masters, live debugging, streaming state updates.
TypeScript support: Functions written in TypeScript are transpiled on deploy. tsconfig.json respected. Type errors block deployment. This is not a "we support TypeScript syntax in JavaScript" — it's actual TypeScript.
Inbox with Transactional Rewards
Most game notification systems are fire-and-forget. Player earned a reward, notification sent, reward delivered. If the reward fails to deliver (database error, item doesn't exist, player banned mid-delivery), the notification has already fired and the reward is lost.
Aeion BaaS in-game inbox with transactional reward delivery:
The inbox uses two-phase reward delivery:
```typescript async sendWithRewards(input): Promise<InboxMessage> { // Phase 1: Create message in 'pending' state const message = await this.createMessage({ status: "pending" });
// Phase 2: Grant rewards try { await this.grantRewards(message.id, input.attachedRewards); // Phase 3: Mark as delivered await this.updateMessage(message.id, { status: "delivered" }); } catch (err) { // Reward failed — message stays 'pending', retryable await this.updateMessage(message.id, { status: "failed", error: err.message }); } } ```
If the database hiccups during reward delivery, the message is marked failed and retried automatically. The player never receives a notification for a reward they didn't get.
Push + Inbox mirror: push notifications can set mirrorToInbox: true — every push delivery also creates an in-game inbox message. Players who have push disabled still see the notification in their in-game inbox.
The Real Cost Comparison
| Cost Factor | Aeion BaaS | Firebase Gaming | PlayFab |
|---|---|---|---|
| **Platform fee** | $49/mo flat | $0 (free tier: 50K MAU) | $0 (free tier) |
| **100K MAU** | $49/mo (no change) | $2,500/mo ($0.05/MAU) | $0 |
| **500K MAU** | $49/mo (no change) | $22,500/mo | $0 |
| **Economy engineering** | $0 (built-in) | $50K-$150K (build yourself) | $0 |
| **Anti-cheat engineering** | $0 (built-in) | $50K-$100K (build yourself) | $0 |
| **Matchmaking engineering** | $0 (built-in) | $100K-$200K (build yourself) | $0 |
| **Virtual goods revenue 5%** | $0 | $0 | $2,500-$20,000/mo |
| **1M MAU + $500K revenue** | **$49/mo** | **$50,000+/mo** | **$25,000-$65,000+/mo** |
Frequently Asked Questions
No — the gaming surface (matchmaking, leaderboards, virtual currency, battle passes) is one slice. The rest (sandboxed cloud functions, edge cron, KV / queues / pub-sub, real-time data sync) serves general-purpose backend needs. Game studios use the gaming features; everyone else uses the BaaS layer.
Zero revenue share. Firebase/PlayFab charge per MAU and sometimes take a percent of in-game purchases. Aeion's platform fee is flat — your virtual-goods economy revenue is yours.
Functions run in a QuickJS WASM sandbox with hard CPU + memory + time limits and tenant-scoped DB / network access. No noisy-neighbor cold-start issues, no surprise billing for runaway compute. Compared to Cloud Functions' ~1-10s cold start and per-invocation cost, Aeion functions start in <10ms and incur no per-invocation fee beyond the platform plan.
Native anti-cheat rule engine: signed transactions, server-validated state mutations, rate limits per user + per action, anomaly detection on score patterns + currency movements. Firebase requires you to build this yourself; PlayFab's anti-cheat is basic. Aeion ships a working baseline that game-launchers can extend with custom rules.
Partial — the data shape is similar (collections / docs), but auth + cloud functions + rules need translation. The Singularity Firebase connector ports user accounts, Firestore collections, and config. PlayFab's title-data / catalog / store maps to Aeion's commerce + KV layers. Plan 2-6 engineer-weeks for a non-trivial title; the cost savings (no per-MAU fee) typically pay back within months.