openvibers/openvibe.games STATUS.json
STATUS.json
| 1 | { |
| 2 | "repository": "OpenVibers/OpenVibe.Games", |
| 3 | "stage": "stable", |
| 4 | "code": true, |
| 5 | "product": "Scraplandia, Salvage Rush and Vibe Heroes", |
| 6 | "runtime": "node 22, TypeScript (tsx), pnpm workspace; Babylon.js (client) + deterministic Rapier physics; PostgreSQL 18 via openvibe-sdk/db (pg, or embedded PGlite in development); Valkey optional", |
| 7 | "port": 8000, |
| 8 | "domain": "openvibe.games, play.openvibe.games", |
| 9 | "contracts": "openvibe-contracts v0.422.0, openvibe-sdk v0.161.0, openvibe-shared v4.237.0, openvibe-publishing v1.7.0 (apps/server/package.json)", |
| 10 | "capabilities": [ |
| 11 | "games.mod.manage", |
| 12 | "games.mod.read", |
| 13 | "games.world.announce", |
| 14 | "games.prop.place", |
| 15 | "games.def.define", |
| 16 | "games.script.run", |
| 17 | "games.players.read", |
| 18 | "games.player.message", |
| 19 | "games.world.emit", |
| 20 | "games.storage.kv" |
| 21 | ], |
| 22 | "deployed": true, |
| 23 | "deployment": "Public at https://openvibe.games and https://play.openvibe.games: deployed with `sudo ovhost deploy games` (OpenVibe.Host strategy pnpm-build since the 2026-09-27 cutover; deploy/scripts/deploy.sh is the wrapper), unit openvibe-games on 127.0.0.1:8000, env /etc/openvibe/games.env, principal games.", |
| 24 | "features": [ |
| 25 | "authoritative multiplayer physics sandbox (deterministic Rapier on the server)", |
| 26 | "Source-style movement, physgun building, gathering, crafting, skills", |
| 27 | "persistent world, characters and props in PostgreSQL (write-behind flusher; the tick never awaits I/O)", |
| 28 | "one-process rooms (M4): a PostgreSQL instance registry with fenced leases, capacity-based join, same-place transfer, per-room position, grid-cell interest and a socketless load probe", |
| 29 | "Scraplandia and Salvage Rush in one Games process (M5), in separate place and instance registries; server-scored rounds, per-game achievements and all-time/week leaderboards", |
| 30 | "scores, unlocks and guest adoptions posted to OpenVibe.Play (GAMES_PLAY_URL)", |
| 31 | "creator worlds: a published world gets its own page (/worlds/<id>) and is in OpenVibe.Search (openvibe-publishing search-feed)", |
| 32 | "creators make games the way we do: characters belong to each game, remix a world (credited), its own games-quickjs@1 scripts (run when GAMES_CREATOR_SCRIPTS=1), a team of up to 8 editors by invite link, and a top-down (2D) view", |
| 33 | "the asset store: builds (pieces placed in the editor) and scripts shared free for anyone's worlds, placed from the editor's Store tab or added from /worlds", |
| 34 | "Steam's featured lists (top sellers, new releases, specials) read from OpenVibe.Sources (GAMES_SOURCES_URL)", |
| 35 | "the casual line (plan T22): packages/casual kit, server economy with ledger and idempotent actions, Vibe Heroes at /play/vibe-heroes (guest play, adoption on sign-in, earned-only summons, gem store; paid products wait for Billing)", |
| 36 | "six achievement rewards granted as free OpenVibe.Inventory items, never sold or traded; GAMES_ITEMS=on/off and GAMES_INVENTORY_URL configure delivery", |
| 37 | "map editor with assets mirrored to OpenVibe.Media", |
| 38 | "declarative mods (games-content@2: definitions merged into the content registry at boot, placements, announcements) with per-install grants and audit", |
| 39 | "server script mods (games-quickjs@1): isolated QuickJS sandboxes, per-binding grants, per-mod/place PostgreSQL storage, seeded randomness, multi-file imports, staff installs and reload, active definition delivery to new clients; off unless GAMES_SCRIPT_MODS=1", |
| 40 | "players keyed by Network subjects", |
| 41 | "games.* events through a transactional outbox", |
| 42 | "games.progress.summary user module", |
| 43 | "the OpenVibe Frame from its own pinned copy", |
| 44 | "per-actor limits on capability-boundary writes (openvibe-sdk/limits)" |
| 45 | ], |
| 46 | "updated": "2026-11-13" |
| 47 | } |
| 48 |