@crowdedkingdoms/crowdyjs 18.11.0-dev.1 → 18.12.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +26 -0
- package/README.md +12 -0
- package/dist/generated/graphql-schema.d.ts +2 -2
- package/dist/generated/graphql-schema.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/kit/index.d.ts +9 -0
- package/dist/kit/index.d.ts.map +1 -1
- package/dist/kit/index.js +9 -0
- package/dist/kit/kit.d.ts +60 -2
- package/dist/kit/kit.d.ts.map +1 -1
- package/dist/kit/kit.js +58 -2
- package/dist/kit/modules/arenas.d.ts +87 -0
- package/dist/kit/modules/arenas.d.ts.map +1 -0
- package/dist/kit/modules/arenas.js +66 -0
- package/dist/kit/modules/encounters.d.ts +75 -0
- package/dist/kit/modules/encounters.d.ts.map +1 -0
- package/dist/kit/modules/encounters.js +57 -0
- package/dist/kit/modules/instances.d.ts +78 -0
- package/dist/kit/modules/instances.d.ts.map +1 -0
- package/dist/kit/modules/instances.js +72 -0
- package/dist/kit/modules/leaderboards.d.ts +79 -0
- package/dist/kit/modules/leaderboards.d.ts.map +1 -0
- package/dist/kit/modules/leaderboards.js +69 -0
- package/dist/kit/modules/minigames.d.ts +59 -0
- package/dist/kit/modules/minigames.d.ts.map +1 -0
- package/dist/kit/modules/minigames.js +55 -0
- package/dist/kit/modules/racing.d.ts +131 -0
- package/dist/kit/modules/racing.d.ts.map +1 -0
- package/dist/kit/modules/racing.js +113 -0
- package/dist/kit/modules/tables.d.ts +76 -0
- package/dist/kit/modules/tables.d.ts.map +1 -0
- package/dist/kit/modules/tables.js +73 -0
- package/dist/kit/modules/tactics.d.ts +79 -0
- package/dist/kit/modules/tactics.d.ts.map +1 -0
- package/dist/kit/modules/tactics.js +67 -0
- package/dist/kit/modules/territory.d.ts +92 -0
- package/dist/kit/modules/territory.d.ts.map +1 -0
- package/dist/kit/modules/territory.js +84 -0
- package/dist/live-coding/assets/browser-authoring-index.json +1 -1
- package/dist/live-coding/assets/manifest.json +1 -1
- package/dist/live-coding/browser-authoring-index.generated.d.ts.map +1 -1
- package/dist/live-coding/browser-authoring-index.generated.js +3302 -145
- package/package.json +1 -1
package/MIGRATION.md
CHANGED
|
@@ -120,6 +120,32 @@ super-admin's session). There is no SDK replacement.
|
|
|
120
120
|
`dev`'s SDL after #417 merged (`npm run schema:sync:paths -- --schema <that schema.gql>`, then
|
|
121
121
|
`npm run codegen`).
|
|
122
122
|
|
|
123
|
+
## 18.12.0: the genre starters
|
|
124
|
+
|
|
125
|
+
Additive. **Needs a compute toolchain whose starter pack has the genre starters** (ckx-sdk
|
|
126
|
+
0.11.0); `kit.topology` lists, builds and deploys them like the others. Against an app that does
|
|
127
|
+
not run one, its module's calls are refused with `NotFound` (the app has no such node type).
|
|
128
|
+
|
|
129
|
+
- **Nine more kit modules**, one per new starter hub: `leaderboards.board(name)` (the top
|
|
130
|
+
mirrored, `top`, `around`, `me`, `season`; hubs submit the scores they decided, a client never
|
|
131
|
+
does), `tables.table(key)` (cards: the table mirrored and the caller's hand as private state),
|
|
132
|
+
`tactics.battle(key)` (grid battles in phases), `encounters.encounter(key)` (waves, towers, a
|
|
133
|
+
boss with phases), `minigames.duel(key)` (hidden throws revealed together), `instances.run(key)`
|
|
134
|
+
(a party's private run: seeded floors, permadeath, expiry), `arenas.arena(key)` (classes and
|
|
135
|
+
abilities in real time), `racing.race(key)` and `racing.ball(key)` (races with laps, splits
|
|
136
|
+
and a ghost; ball games with possession), `territory.map(key)` and `territory.zone(key)`
|
|
137
|
+
(control points; a shrinking circle).
|
|
138
|
+
- **The node types they talk to** are the starters' (`leaderboard`, `deck`, `tactics`,
|
|
139
|
+
`director`, `minigame`, `instance`, `arena`, `race`, `ball`, `territory`, `zone`); an app that
|
|
140
|
+
deploys one under another name passes it in `client.kit(appId, { nodes: { ... } })`.
|
|
141
|
+
- **Positions a client reports are the hub's to keep**: `arenas`, `racing` and the ball game take
|
|
142
|
+
`move` / `pos` reports and answer with the position the hub's movement warden kept (a move too
|
|
143
|
+
fast is cut short, a jump refused). Each refused report is a `violation` event, and an arena
|
|
144
|
+
removes a player after a run of them (`removed`). Send them a few times a second, without an
|
|
145
|
+
action id.
|
|
146
|
+
- **Event bodies never use the header's field names** (`v`, `epoch`, `seq`, `kind`): the race's
|
|
147
|
+
`timing` events carry their `stage`, the warden's `violation` events their `what`.
|
|
148
|
+
|
|
123
149
|
## 18.11.0: the Game Kit on ck-exec
|
|
124
150
|
|
|
125
151
|
Additive, apart from one fix in `client.exec` (below). **Needs what 18.10.0 needs from the Game
|
package/README.md
CHANGED
|
@@ -750,6 +750,15 @@ modules are the tree's starter types:
|
|
|
750
750
|
| `kit.matchmaking.queue(name)` | `matchmaker` | `join` with a rating, alone or as a party matched whole (the leader names the members; each confirms with `leader`); `accept` / `decline`; `place` and `onMatched` with the session key |
|
|
751
751
|
| `kit.sessions.open(key)` | `session` | lobby, `ready`, the host's `startGame`, `act` in turn under a time limit; the hub scores and names the winner; `state` mirrored |
|
|
752
752
|
| `kit.npcs.area(key)` / `areaAt(x, z)` | `npcs` (`npc-mobs`) | an area's mobs, NPCs and pets mirrored; `attack` (the hub decides reach, cooldown, damage), `talk`; pets: `adopt`, `rename`, `summon`, `dismiss`, `release`, `myPets` |
|
|
753
|
+
| `kit.leaderboards.board(name)` | `leaderboard` | the top mirrored; `top`, `around`, `me`, `season`; scores come from the hubs that decided them (`submit` is for developers and hubs), seasons roll on a schedule (18.12.0) |
|
|
754
|
+
| `kit.tables.table(key)` | `deck` | a card table: the table mirrored, the caller's hand as private state; `join`, `start`, `play`, `draw`, `pass` in the hub's turn order |
|
|
755
|
+
| `kit.tactics.battle(key)` | `tactics` | a grid battle in phases: `move`, `attack`, `endTurn` for the player's units; the hub's units act when every player ended the phase |
|
|
756
|
+
| `kit.encounters.encounter(key)` | `director` | waves down a lane on the hub's clock, `build` towers (the lane must stay open), `hit` with a cooldown, a boss with phases |
|
|
757
|
+
| `kit.minigames.duel(key)` | `minigame` | two-player duels of hidden throws, revealed together; `throw`, `rematch` |
|
|
758
|
+
| `kit.instances.run(key)` | `instance` | a private run for one party: `open` (seeded floors), `invite`, `join`, `enter` each room, `descend`; permadeath and expiry; depth to a leaderboard |
|
|
759
|
+
| `kit.arenas.arena(key)` | `arena` | real-time fights: `join` as a class, `move` (the hub's warden keeps what the speed allows), `cast` (cooldown, resource, range; projectiles and areas land on the hub's ticks) |
|
|
760
|
+
| `kit.racing.race(key)` / `ball(key)` | `race`, `ball` (`racing`) | races (gates in order, laps, splits, places, the winner's `ghost`) and ball games (`claim`, `pass`, `shoot`, goals) on reported positions the warden keeps |
|
|
761
|
+
| `kit.territory.map(key)` / `zone(key)` | `territory`, `zone` (`territory`) | control points a faction captures by standing on them (the hub reads where players are), and a circle that shrinks and wears down whoever is outside |
|
|
753
762
|
| `kit.topology` | — | composes a manifest from `exec.starters` (the types picked, what they hang under and call), checks the tree, builds and deploys (developers, `manage_compute`) |
|
|
754
763
|
| `kit.spectate`, `kit.emotes`, `kit.shards` | — | a viewer's heartbeat so the world's messages reach it; emotes as client events every kit client reads; shard keys as the hubs compute them |
|
|
755
764
|
| `kit.social` | — | parties, guilds and chat rooms over teams and channels |
|
|
@@ -1227,6 +1236,9 @@ is why the mint also returns `discoveryUrl`.
|
|
|
1227
1236
|
`CROWDY_HTTP_URL` and `CROWDY_E2E_THROWAWAY_OWNER=1` it registers a throwaway org admin (its own
|
|
1228
1237
|
org and app) and a player, opens and closes a grid, and checks the tier's ck-exec gateway. It
|
|
1229
1238
|
leaves the org behind and archives the app, so it runs only when asked to.
|
|
1239
|
+
`test/e2e/game-kit.test.mjs` does the same for the Game Kit: the throwaway owner composes the
|
|
1240
|
+
starter hubs with `kit.topology`, builds and deploys them, and two players play them (on dev and
|
|
1241
|
+
test it also needs `CROWDY_PROVISIONING_TOKEN`, which their staff-only sign-up asks for).
|
|
1230
1242
|
|
|
1231
1243
|
## Maintainers: schema artifacts and fixtures
|
|
1232
1244
|
|
|
@@ -4836,7 +4836,7 @@ export type Mutation = {
|
|
|
4836
4836
|
revokeTierAccessProvisioningToken: TierAccessProvisioningToken;
|
|
4837
4837
|
/** OPERATOR: remove an entry from the list. Accounts it was admitting are refused at their next request, and their sessions and app tokens are ended. Refused on prod. */
|
|
4838
4838
|
revokeTierAccessRule: TierAccessRule;
|
|
4839
|
-
/** Reverts every voxel edit made by `userId` in `appId` between `from` and `to`, returning one RollbackVoxelEventResult per affected voxel (`applied` tells you whether each was actually changed). DEFAULTS to dryRun=true, which only PREVIEWS the planned reversions without writing; pass dryRun=false to actually apply them (DESTRUCTIVE — mutates world state). A reverted voxel’s edit-log row takes the earlier edit’s type, state and author and the ROLLBACK’s time as its createdAt, so a client reading edits `since` its last sync sees the revert. Requires a valid bearer token AND the `manage_apps` permission on the org that owns `appId` (super admins bypass). */
|
|
4839
|
+
/** Reverts every voxel edit made by `userId` in `appId` between `from` and `to`, returning one RollbackVoxelEventResult per affected voxel (`applied` tells you whether each was actually changed). DEFAULTS to dryRun=true, which only PREVIEWS the planned reversions without writing; pass dryRun=false to actually apply them (DESTRUCTIVE — mutates world state). A reverted voxel’s edit-log row takes the earlier edit’s type, state and author and the ROLLBACK’s time as its createdAt, so a client reading edits `since` its last sync sees the revert. When the app’s wilderness is closed (`wildernessOpen` false), an applied rollback that would write any chunk of closed, unclaimed wilderness is refused (403) before it writes anything; a dry run is not. Requires a valid bearer token AND the `manage_apps` permission on the org that owns `appId` (super admins bypass). */
|
|
4840
4840
|
rollbackVoxelUpdates: Array<RollbackVoxelEventResult>;
|
|
4841
4841
|
/** OPERATOR ONLY. Runs the shared-usage billing tick once. It still bills only the last CLOSED clock hour — it will not charge an open hour. Use this to prove a closed-hour debit without waiting for the ~60s cron. Backdating usage rows is a local-test fixture, not something this mutation does on a live tier. */
|
|
4842
4842
|
runSharedUsageBillingTick: Scalars['Boolean']['output'];
|
|
@@ -6799,7 +6799,7 @@ export type Query = {
|
|
|
6799
6799
|
execMods: Array<ExecMod>;
|
|
6800
6800
|
/** Your mods in an app, on every grid. */
|
|
6801
6801
|
execMyMods: Array<ExecMod>;
|
|
6802
|
-
/** The starter packs, which replace the compute templates:
|
|
6802
|
+
/** The starter packs, which replace the compute templates: ckx-sdk hub crates for a root world, matchmaking, game sessions, NPCs and mobs, and game genres (leaderboards, cards, tactics, waves, duels, private runs, arenas, races, territory), to pass to `execBuild`, with a manifest for `execDeploy`. `starters` has one entry per node type, so a crate that serves two types appears twice: build it once. Requires the org 'manage_compute' permission. */
|
|
6803
6803
|
execStarters: ExecStarterPack;
|
|
6804
6804
|
/** An app's deployed ck-exec versions, newest first, and which is active. Requires the org 'view_compute_diagnostics' permission. */
|
|
6805
6805
|
execVersions: Array<ExecVersion>;
|