openvibers/openvibe.games STATUS.json

STATUS.json

main 3.6 KB · 48 lines · 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