New gather-game-client SDK version released! 32.0.0 -> 33.0.3

preamble

This is a sorry attempt at a changelog.
Things change all the time, and it would be pretty hard to document all of it.
But, at least for breaking changes between versions, we’ll do our best.

33.0.3

breaking changes

  • spaceId now passed in through constructor
  • connect and disconnect take no args
  • onreconnected removed (was deprecated and unused)
  • setEmote now takes a string instead of an Emote enum

other changes

(very incomplete list)

  • fixed a bug with always Enter-ing
  • tons of other stuff, hard to keep track. it’s been 3 months since 32.0.0. lots of random experimental things added internally, will announce when stable

to be clear – version 32.0.0 will still work for a while (except setEmote, which will stop next monday). and will print errors/warnings if you try to use outdated stuff (including setEmote, which should have been printing a warning for a little while already)

I am trying to migrate some of my scripts over to 33.0.2, and I am noticed two things:

NPM yells at me about versioning. I assume this is just a missing carrot in the version tag.

Game.init seems to think that spaceId isn’t a string, and is throwing an error at @gathertown/gather-game-client/dist/src/Game.js:150:32 saying TypeError: spaceId.substring is not a function.
And for debugging purposes:

var url = "spaceityspace\\space";

var game = new Game(() => Promise.resolve({ spaceId: url, apiKey: API_KEY }));

game.connect();

I am on a Mac, VSCode, Node v17.3.0

Also, please let me know if I’ve misunderstood the new Game constructor. Entirely possible.

ah sorry I just saw this

should be

var game = new Game(url, () => Promise.resolve({ apiKey: API_KEY }));

(also, lol)

2 Likes

Hey @npfoss, I have some question about the API.

  • Are there any limitations on the use of the API? We saw that we had a limitation for maps of up to 50 people, or up to 32 interactions every 2s. How is it in an event for 500 or 2,000 people?
  • Can we somehow “give” a kart to a user who completes a task? No more access to the kart, only that user.

sorry I dropped this thread! please do start new ones in the future just so it’s easier for other people to find them too. but for now:

  1. you can use it up to the max per space of 500 people, but I can’t guarantee that you won’t run into performance issues – we haven’t tested it at scale very thoroughly
  2. I think you might be able to use the setGoKartId function but tbh I’m not really sure, this is an experimental feature from the remote work team that isn’t well documented as part of the core platform, and certainly has undefined behavior