diff --git a/lib/backends.ts b/lib/backends.ts index 43a70c7..a6ec622 100644 --- a/lib/backends.ts +++ b/lib/backends.ts @@ -115,7 +115,7 @@ export const backends: Backend[] = [ docsUrl: 'https://learn.microsoft.com/en-us/gaming/playfab/', type: 'proprietary', pricingModel: 'usage-based', - pricingDetails: 'Free development mode (100K players per title, up to 10 titles). Pay-as-you-go ($0/month base), Standard ($99/month, $400 in meter credits), Premium ($1,999/month, $8,000 in meter credits). Foundation Mode: included at no cost for games shipped under an Xbox publishing agreement.', + pricingDetails: 'Development Mode: up to 1,000 lifetime players per title (10 titles). Pay-as-you-go ($0/month base), Standard ($99/month, $400 in meter credits), Premium ($1,999/month, $8,000 in meter credits). Foundation Mode: included at no cost for games shipped under an Xbox publishing agreement.', features: { authentication: { supported: true, description: 'Multiple auth methods including anonymous, platform-specific (Steam, Facebook, iOS, Google, PlayStation, Xbox), and direct PlayFab login. Players can link multiple accounts for cross-platform identity.', sourceUrl: 'https://learn.microsoft.com/en-us/gaming/playfab/identity/player-identity/authentication/' }, playerProfiles: { supported: true, description: 'Player profiles store Key/Value Pairs (KVPs) shareable across devices and games. Supports both title-specific Player Data and cross-title Publisher Data.', sourceUrl: 'https://learn.microsoft.com/en-us/gaming/playfab/player-progression/player-data/' }, @@ -166,7 +166,7 @@ export const backends: Backend[] = [ gameTypes: ['f2p-mobile', 'live-service-pc', 'competitive', 'casual-social'], platforms: ['unity', 'unreal', 'custom', 'html5'], strengths: [ - 'Free development tier supporting up to 100K players per title', + 'Development Mode free tier for up to 10 titles; Foundation Mode for Xbox-shipping games at no extra cost', 'Azure and Xbox platform integration', 'SDKs for Unity, Unreal, C/C++, C#, and console platforms', 'Documentation hosted on Microsoft Learn with API references', @@ -179,7 +179,7 @@ export const backends: Backend[] = [ ], foundedYear: 2014, architectureLabel: 'Managed microservices platform', - lastUpdated: '2026-06', + lastUpdated: '2026-10', sources: [ { label: 'Pricing', url: 'https://developer.microsoft.com/en-us/games/products/playfab/pricing' }, { label: 'Documentation', url: 'https://learn.microsoft.com/en-us/gaming/playfab/what-is-playfab' }, @@ -210,9 +210,9 @@ export const backends: Backend[] = [ virtualCurrency: { supported: true, description: 'Hiro Economy system manages multiple in-game currencies with atomic transaction processing. Supports configurable initial balances and player wallets for earned and purchased currencies.', sourceUrl: 'https://heroiclabs.com/docs/hiro/concepts/economy/' }, inventorySystem: { supported: true, description: 'Hiro Inventory allows players to collect, upgrade, and consume items with configurable properties including max counts, stackability, consumption rewards, and inventory limits.', sourceUrl: 'https://heroiclabs.com/docs/hiro/concepts/inventory/' }, iapValidation: { supported: true, description: 'Nakama validates Apple App Store, Google Play, and Huawei purchases server-side. Features replay attack prevention, receipt binding, and real-time subscription notifications.', sourceUrl: 'https://heroiclabs.com/docs/nakama/concepts/iap-validation/' }, - offers: { supported: true, description: 'Hiro Virtual Store enables in-game marketplaces with game currency or IAP purchases. Personalizer supports one-time offers, player-specific pricing, and VIP offers with A/B testing.', sourceUrl: 'https://heroiclabs.com/docs/hiro/concepts/economy/virtual-store/' }, + offers: { supported: true, description: 'Hiro Virtual Store enables in-game marketplaces with game currency or IAP purchases. Personalizer supports one-time offers, player-specific pricing, and VIP offers with A/B testing. Hiro Auctions (v1.34) support direct bids and item trades between players.', sourceUrl: 'https://heroiclabs.com/docs/hiro/concepts/economy/virtual-store/' }, pushNotifications: { supported: true, description: 'Satori Messages support push via OneSignal, APNS, and FCM integrations, plus email and in-game inbox. Nakama provides in-app notifications. CRON or live event triggered scheduling.', sourceUrl: 'https://heroiclabs.com/docs/satori/concepts/messages/' }, - leaderboards: { supported: true, description: 'Nakama Leaderboards with unlimited scoreboards, configurable sort order, operators (set/best/incr/decr), CRON-based resets for seasons, record metadata, and authoritative mode.', sourceUrl: 'https://heroiclabs.com/docs/nakama/concepts/leaderboards/' }, + leaderboards: { supported: true, description: 'Nakama Leaderboards with unlimited scoreboards, configurable sort order, operators (set/best/incr/decr), CRON-based resets for seasons, record metadata, and authoritative mode. Hiro adds Event Leaderboards with tier-based progression and Team Leaderboards (v1.35) for group competitive play.', sourceUrl: 'https://heroiclabs.com/docs/nakama/concepts/leaderboards/' }, achievements: { supported: true, description: 'Hiro Achievements support tasks with configurable rewards (currency, items, energy). Features preconditions for achievement trees, sub-achievements, repeatable achievements, and team achievements.', sourceUrl: 'https://heroiclabs.com/docs/hiro/concepts/achievements/' }, socialFeatures: { supported: true, description: 'Nakama Friends system provides friend management via user ID/username, requests with confirmations, online presence tracking, 1-on-1 chat, blocking, and social graph import.', sourceUrl: 'https://heroiclabs.com/docs/nakama/concepts/friends/' }, guildsClans: { supported: true, description: 'Nakama Groups enable communities with hierarchical roles (superadmin, admin, member), public/private access, configurable member limits, metadata, group chat, and discovery filtering.', sourceUrl: 'https://heroiclabs.com/docs/nakama/concepts/groups/' }, @@ -262,7 +262,7 @@ export const backends: Backend[] = [ ], foundedYear: 2014, architectureLabel: 'Composable open-source stack', - lastUpdated: '2026-02', + lastUpdated: '2026-10', sources: [ { label: 'Heroic Labs', url: 'https://heroiclabs.com/' }, { label: 'Nakama', url: 'https://heroiclabs.com/nakama/' }, @@ -270,6 +270,7 @@ export const backends: Backend[] = [ { label: 'Hiro', url: 'https://heroiclabs.com/hiro/' }, { label: 'Pricing', url: 'https://heroiclabs.com/pricing/' }, { label: 'GitHub', url: 'https://github.com/heroiclabs/nakama' }, + { label: 'Hiro Release Notes', url: 'https://heroiclabs.com/docs/hiro/concepts/introduction/release-notes/' }, ], }, { @@ -481,13 +482,13 @@ export const backends: Backend[] = [ serverlessLogic: false, dedicatedServers: { supported: true, description: 'Self-hosted dedicated infrastructure using Docker, PM2, or Nginx. Vultr offers pre-configured Colyseus marketplace image with Node.js and PM2.', sourceUrl: 'https://docs.colyseus.io/deployment' }, globalScaling: { supported: true, description: 'Horizontal scaling via RedisPresence and RedisDriver for inter-process communication. Colyseus Cloud offers 32 global deployment locations with automatic region configuration.', sourceUrl: 'https://docs.colyseus.io/deployment/scalability' }, - adminDashboard: { supported: true, description: '@colyseus/monitor web-based admin dashboard for listing rooms, viewing room states, sending/broadcasting messages, disconnecting clients, and disposing rooms. HTTP basic auth supported.', sourceUrl: 'https://docs.colyseus.io/tools/monitoring' }, + adminDashboard: { supported: true, description: '@colyseus/admin (beta, 0.18) is an operations console with live room inspection, CRUD, and CPU profiling. The earlier @colyseus/monitor provides basic room listing, state viewing, and message broadcasting with HTTP basic auth.', sourceUrl: 'https://docs.colyseus.io/tools/monitoring' }, playerSupport: false, moderation: false, sourceCodeAccess: { supported: true, description: 'Fully open-source under MIT license on GitHub. All framework code, SDKs (Unity, Defold, Haxe, JavaScript), and tools available with permissive license for modification and commercial use.', sourceUrl: 'https://github.com/colyseus/colyseus' }, managedServices: { supported: true, description: 'Colyseus Cloud official managed hosting from $15/month. 32 global locations, automatic SSL, DDoS protection (Layer 3/4), rolling updates, graceful shutdown, no CCU/DAU/MAU limits.', sourceUrl: 'https://colyseus.io/cloud-managed-hosting/' }, selfHosting: { supported: true, description: 'Fully self-hostable under MIT license. Deploy using Docker, PM2, or traditional Node.js hosting with Nginx/Apache reverse proxies. Cloud-agnostic deployment.', sourceUrl: 'https://docs.colyseus.io/deployment' }, - multiplatformSDK: { supported: true, description: 'Official SDKs for TypeScript/JavaScript, React, Unity (C#), Defold (Lua), Construct 3, Cocos Creator, Haxe (OpenFL, HaxeFlixel, Heaps), Discord Activity, and WeChat.', sourceUrl: 'https://docs.colyseus.io/getting-started' }, + multiplatformSDK: { supported: true, description: 'Official SDKs for TypeScript/JavaScript, React, Unity (C#), Godot, Defold (Lua), Construct 3, GameMaker, Cocos Creator, Haxe (OpenFL, HaxeFlixel, Heaps), Flutter, Swift, MonoGame, Discord Activity, WeChat, and a C-based Native SDK (beta).', sourceUrl: 'https://docs.colyseus.io/getting-started' }, serverAuthoritative: { supported: true, description: 'Server-authoritative architecture where only the server mutates game state. Clients send messages requesting changes; server validates actions before updating and syncing state.', sourceUrl: 'https://docs.colyseus.io/state' }, cheatProtection: { supported: true, description: 'Server-authoritative model validates all player actions and controls game state. Clients treated as visual representations only, preventing client-side data manipulation.', sourceUrl: 'https://docs.colyseus.io/state' }, sharedClientServerLogic: { supported: true, description: 'TypeScript enables shared code between client and server. Schema classes defined on server can be imported on TypeScript/JavaScript clients, allowing method reuse and bandwidth optimization.', sourceUrl: 'https://docs.colyseus.io/getting-started/typescript' }, @@ -500,7 +501,7 @@ export const backends: Backend[] = [ }, bestFor: ['Indie developers', 'Rapid multiplayer prototyping', 'Node.js/TypeScript developers'], gameTypes: ['casual-social', 'competitive'], - platforms: ['unity', 'custom', 'html5'], + platforms: ['unity', 'godot', 'custom', 'html5'], strengths: [ 'Minimal boilerplate with quick setup (npm create colyseus-app)', 'Automatic state synchronization with delta encoding', @@ -510,17 +511,18 @@ export const backends: Backend[] = [ ], limitations: [ 'No official Unreal Engine SDK (community SDK exists)', - 'No built-in persistence (requires external database)', + 'No managed cloud persistence; @colyseus/database (official, 0.18) supports PostgreSQL and SQLite but requires self-managed infrastructure', 'No live ops, leaderboards, analytics, or economy features', 'Smaller community (~3.1K Discord, ~6.7K GitHub stars)', ], foundedYear: 2015, architectureLabel: 'Authoritative multiplayer framework', - lastUpdated: '2026-02', + lastUpdated: '2026-10', sources: [ { label: 'Pricing', url: 'https://colyseus.io/pricing' }, { label: 'Documentation', url: 'https://docs.colyseus.io/' }, { label: 'GitHub', url: 'https://github.com/colyseus/colyseus' }, + { label: 'Colyseus 0.18 release', url: 'https://colyseus.io/blog/colyseus-018-is-here/' }, ], }, {