@indiegems/gem-web-sdk 11.0.0 → 11.1.0
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/CHANGELOG.md +9 -0
- package/dist/game.d.ts +22 -0
- package/dist/gem-web-sdk.esm.js +2 -2
- package/dist/gem-web-sdk.function.js +2 -2
- package/dist/gem-web-sdk.game.js +2 -2
- package/dist/gem-web-sdk.min.js +2 -2
- package/dist/gem-web-sdk.sdk.js +2 -2
- package/dist/gem-web-sdk.server.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/sdk.d.ts +22 -0
- package/docs/api/api-reference-game.md +47 -1
- package/docs/api/api-reference-server.md +1 -1
- package/docs/api/reference.json +34 -2
- package/docs/changelog.md +9 -0
- package/docs/getting-started.md +1 -1
- package/docs/manifest.json +8 -8
- package/docs/rooms-and-matches.md +43 -0
- package/docs/server-bundles.md +2 -2
- package/package.json +1 -1
|
@@ -872,11 +872,54 @@ seat stands, so `myRooms()` shows the room and `join(id)` enters it.
|
|
|
872
872
|
| `matchmaking_not_enabled` (400) | A named template has no enabled `matchmaking` block. A config fault, not a player one. |
|
|
873
873
|
| `matchmaking_unavailable` (503) | Matchmaking is turned off for the whole platform, or its store is not answering. |
|
|
874
874
|
|
|
875
|
+
**A party leader can meet three more.** The platform checks that a party can be seated together
|
|
876
|
+
before it queues it, so a party that could not play is told at once rather than matched and then
|
|
877
|
+
dropped. Only the leader queues, so only the leader's game sees these. No ticket was made, and the
|
|
878
|
+
button can be pressed again.
|
|
879
|
+
|
|
880
|
+
| Code | Meaning | What to show the leader |
|
|
881
|
+
| --- | --- | --- |
|
|
882
|
+
| `version_data_required` (400) | The party has not launched this game together, so the platform has no record of what each member is running. | "Start the game with your party from the Arcade to queue together." Pressing again will not help until they do. |
|
|
883
|
+
| `party_versions_incomplete` (409) | A member's game has not finished starting, so their version has not arrived yet. | "Waiting for your party to finish loading." This one clears by itself: queue again after a few seconds, on the player's press or on a short timer. |
|
|
884
|
+
| `party_version_mismatch` (409) | A member is running a build that cannot play with the leader's. | "Someone in your party is on a different version. Everyone reload the game." |
|
|
885
|
+
|
|
886
|
+
A party's `quickJoin()` and `create()` are refused the same way, with the same codes.
|
|
887
|
+
|
|
875
888
|
⚠️ **Nothing falls back to quick-join, and a game should not either.** Not on
|
|
876
889
|
`matchmaking_unavailable`, not on `expired`. Quick-join puts the player in a different kind of room —
|
|
877
890
|
alone, in a mode that was queued for precisely because it needs a lobby. Tell the player matchmaking is
|
|
878
891
|
unavailable and leave the button where it is.
|
|
879
892
|
|
|
893
|
+
## 5d. Quick-joining any of several modes
|
|
894
|
+
|
|
895
|
+
A drop-in game with more than one mode can ask for whichever has players, in one call:
|
|
896
|
+
|
|
897
|
+
```js
|
|
898
|
+
const room = await gem.rooms.quickJoin({ templateSlugs: ['duel', 'brawl'] });
|
|
899
|
+
startMode(room.templateSlug); // which one the player landed in
|
|
900
|
+
```
|
|
901
|
+
|
|
902
|
+
- **Open rooms of every listed template are candidates together**, ranked as a single-template
|
|
903
|
+
quick-join ranks them: the fullest first, then the closest cluster.
|
|
904
|
+
- **The order matters only when no room is open.** The room that gets created is made from the
|
|
905
|
+
**first** slug listed, so put the mode an empty lobby should start in first.
|
|
906
|
+
- **One to eight slugs, in place of `templateSlug`, never beside it.** A list together with
|
|
907
|
+
`templateSlug` or `templateId`, an empty list, or more than eight is refused locally, before
|
|
908
|
+
the platform is asked.
|
|
909
|
+
- **Every listed template must be one players can quick-join.** One that is not refuses the whole
|
|
910
|
+
call; it is not skipped.
|
|
911
|
+
- **`room.templateSlug` says which template the room is from.** It is on every room, however it was
|
|
912
|
+
entered.
|
|
913
|
+
|
|
914
|
+
A call that passes `templateSlug` behaves exactly as it always has.
|
|
915
|
+
|
|
916
|
+
Under a developer's tool that runs the game's server on the developer's own machine, only the first
|
|
917
|
+
slug is sent. Such a room is always created rather than joined, so it would be made from the first
|
|
918
|
+
template either way.
|
|
919
|
+
|
|
920
|
+
This is still quick-join: the player is in a room at once, possibly alone. For "any of these modes,
|
|
921
|
+
but never start short", name the same slugs on `queueForMatch()` instead.
|
|
922
|
+
|
|
880
923
|
## 6. Scope
|
|
881
924
|
|
|
882
925
|
**In:** rooms, membership, host, ready state, the match lifecycle, and the dedicated-server connect
|
package/docs/server-bundles.md
CHANGED
|
@@ -80,8 +80,8 @@ To check the download yourself: the package npm serves is, byte for byte, the fi
|
|
|
80
80
|
also publishes on its download host, with the hash beside it:
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
curl -fsSL -O https://downloads.gemarcade.com/sdk/v11.
|
|
84
|
-
curl -fsSL https://downloads.gemarcade.com/sdk/v11.
|
|
83
|
+
curl -fsSL -O https://downloads.gemarcade.com/sdk/v11.1.0/gem-web-sdk.tgz
|
|
84
|
+
curl -fsSL https://downloads.gemarcade.com/sdk/v11.1.0/gem-web-sdk.tgz.sri
|
|
85
85
|
openssl dgst -sha384 -binary gem-web-sdk.tgz | openssl base64 -A
|
|
86
86
|
```
|
|
87
87
|
|