Skip to content

Releases: heroiclabs/nakama

v3.6.0

09 Sep 02:45
Compare
Choose a tag to compare

Notable changes

Added

  • More informational logging when groups are created, updated, or deleted.
  • Add "ChannelMessageUpdate" function to server framework.
  • New config option to toggle Lua runtime error stacktraces returned to clients.

Changed

  • Use the Facebook Graph API v11.0 version.
  • Defer Facebook email import execution to after account creation.
  • Improve encode/decode check in authoritative match creation parameters.
  • Warn when using deprecated config parameters.
  • Improve email import semantics when linking social accounts.
  • Log IAP provider API response payload when non 200 status code is returned.
  • Better handling of storage operations where OCC is not required.
  • Default ledger updates to false in "walletsUpdate" function in the JavaScript/Lua runtimes. Same as how Go usage works.
  • Build with Go 1.17.0 release.
  • Purchase validation functions now return a flag indicating if valid purchases are new or resubmitted.
  • Adjust Lua runtime pool allocation startup logs.

Fixed

  • Fix log level in Lua runtime log calls which use structured logger fields.
  • Register purchase validation before/after hooks in JavaScript/Lua runtimes.
  • Register "DemoteGroupUsers" before/after hooks in the JavaScript runtime.
  • Add missing "environment" to JavaScript ValidatedPurchases type.
  • Fix typos in error messages which mention empty input values.
  • Fix resolution of exported time and latency metrics.
  • Optimize tournament lookup operations.
  • Fix "groupUpdate" function incorrect parsing of "open" argument in the Lua runtime.
  • List JavaScript modules if loaded from the default entrypoint in the Console.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.17.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"

v3.5.0

10 Aug 22:23
Compare
Choose a tag to compare

Notable changes

Added

  • Handle thrown JS runtime custom exceptions containing a message and a grpc code to be returned in the server response.
  • Add function to retrieve a random set of users to server framework.
  • Add ChannelMessageSend function to server framework.
  • Add BuildChannelId function to server framework.

Changed

  • Apple Sign-In is now supported across both Web and mobile tokens.
  • Status messages can now be up to 2048 characters (increased from 128 characters).
  • Improved SQL used in unfiltered group listings queries.
  • Throw error instead of panic when attempting to create a group with the system user.
  • Add userId field for permission check in JavaScript/Lua runtimes groupUpdate functions.
  • Allow standard space characters in usernames for direct compatibility with Steam display names.
  • Build with Go 1.16.7 release.
  • Allow batch-only leaderboard and tournament score lookups from the server framework.
  • Return a better error message when single input wallet updates are performed for a user which does not exist.
  • Update to newer Apple guidelines on Game Center root certificate validation in authentication.

Fixed

  • Fix creator id being read from the wrong argument in JavaScript runtime groupUpdate function.
  • Fix max count being incorrectly validated in groupUpdate JavaScript runtime function.
  • Fix error handling when attempting to write records to a tournament that does not exist.
  • Fix JavaScript runtime missing fields from leaderboards/tournaments get, list, and write functions.
  • Fix JavaScript runtime ownerId field bad parsing in leaderboard/tournament records list functions.
  • Fix parameter usage in leaderboard score set operator.
  • Fix JavaScript runtime storageList not returning a cursor.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.16.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"

v3.4.0

08 Jul 23:13
Compare
Choose a tag to compare

Notable changes

Added

  • Add new groupsList runtime function.
  • Add runtime leaderboardList and leaderboardsGetId functions.
  • Add leaderboard/tournament prev_reset field.
  • Add custom metrics runtime functions for counters, gauges, and timers.
  • Add optional override for runtime Apple IAP validation function.
  • Add socket lang parameter to Go runtime contexts.

Changed

  • Include ticket in party matchmaker add operation responses.
  • Build with Go 1.16.5 release.
  • Replace Bleve gtreap in-memory store implementation with a more compact version.
  • Users kicked from parties now receive a party close event.
  • Log recovered panics in HTTP handler functions at error level rather than info.
  • Add new langTag, members and open filters to the group listing API.
  • Upgrade pgx to v4 for improved SQL performance.
  • Update RegisterLeaderboardReset runtime function signature.
  • Cancel runtime context when graceful shutdown completes.
  • Add button to Nakama Console UI to allow device IDs to be copied.

Fixed

  • Ensure all members are correctly listed in party info when there are multiple concurrent successful joins.
  • Correctly set party ID in matchmaker matched callback input.
  • Send Party close messages only where appropriate.
  • Fix TypeScript/JavaScript match dispatcher presence list validation.
  • Fix JavaScript/Lua friendsList incorrect returned values.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.15.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"

v3.3.0

17 May 14:30
Compare
Choose a tag to compare

Notable changes

Added

  • Tournaments and leaderboards now allow operator scoring to be passed in on updates.
  • Tournaments and leaderboards now support decrement score operator.
  • Add "rpc_id" and "api_id" to the structured logger output in API calls.

Changed

  • Store email, avatar URL, and display name provided by Apple, Facebook, and Google login providers if empty.
  • Change runtime group add/kick/promote/demote APIs to include optional callerID parameter for permission checking. If the caller ID is an empty string it defaults to the system user.
  • Default to use SSL mode "prefer" in database connections.

Fixed

  • Fix reading Lua authoritative match states that contain functions.
  • Fix reading JS/TS authoritative match states that contain functions.
  • Use UNIX path representation for embedded migrations and console files on Windows systems.
  • Update Lua VM implementation to resolve nil reference caused after a VM registry resize.
  • Pointerize slice and map types when passed into the JS VM so that they're mutated by reference.
  • Fix off by one error in leaderboard records returned by "around owner" queries.
  • Return null from within JS VM GetMatch function if match does not exist.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.14.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"

v3.2.1

18 Apr 23:43
Compare
Choose a tag to compare

Notable changes

Changed

  • A user's online indicator now observes the status mode rather than just socket connectivity.
  • Update sql-migrate library to a32ed26.
  • Rework some migrations for better compatibility with different database engines.
  • Update to Protobuf v1.5.2, GRPC v1.37.0, and GRPC-Gateway v2.3.0 releases.
  • Update to Bleve v2.0.3 release.
  • Various other dependency updates.

Fixed

  • Fix user scoping in Nakama Console purchase listing view.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.13.1 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"

v3.2.0

14 Apr 19:58
Compare
Choose a tag to compare

Added

  • New API to logout and intercept logouts with session and refresh tokens.
  • Add a leave reason to presence events to handle transient disconnects more easily.
  • New API for IAP validation with Apple App Store, Google Play Store, and Huawei AppGallery.

Changed

  • Improve struct field alignment on types in the social package.
  • Improve memory re-use within the matchmaker and match registry structures.
  • Support Facebook Limited Login tokens received into the standard Facebook login/link/unlink functions.
  • Update JS VM to newer version. This resolves an issue with resizing some JS arrays.
  • Build with Go 1.16.3 release.

Fixed

  • Matchmaker entries which were only partially matched together could not combine with larger player counts.
  • Fix bad inputs parsed in some before/after hook executions made from the API Explorer in the Console.
  • Correctly return Unix timestamps in JS runtime functions returning users/accounts data.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.13.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"

v3.1.2

04 Mar 14:39
Compare
Choose a tag to compare

Notable changes

Changed

  • Sort match listings to show newer created matches first by default.
  • Loosen status follow input validation and constraints to ignore unrecognised user IDs and usernames.
  • Build with Go 1.16.0 release.
  • Do not import Steam friends by default on Steam authentication.
  • Do not import Facebook friends by default on Facebook authentication.
  • Improve match label update batching semantics.
  • Account object returned by some JS runtime functions are not flattened with user values anymore.

Fixed

  • Fix an issue in the JS runtime that would prevent the matchmaker matched callback to function correctly.
  • Allow the console API to return large responses based on the configured max message size.
  • Allow JS runtime initializer functions to be invoked inside a try/catch block.
  • Fix Tournament Reset function hook schedules calcuated on first write if the end active time must be computed with no reset schedule.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.12.1 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"

v3.1.1

15 Feb 19:38
Compare
Choose a tag to compare

Notable changes

Changed

  • Go runtime logger now identifies the file/line in the runtime as the caller rather than the logger.
  • Build with Go 1.15.8 release.
  • Use a newer CA certificates package within the Docker containers.

Fixed

  • Fix an issue that prevented the JavaScript runtime hooks to be invoked correctly.
  • Fix the delete button not working in the console leaderboard listing.
  • GetUsers can fetch user accounts by Facebook ID the same as in the client API.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.12.1 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"

v3.1.0

04 Feb 14:45
Compare
Choose a tag to compare

Notable changes

Added

  • New APIs to import Steam friends into the social graph.

Changed

  • Improve output of "nakama migrate status" command when database contains unknown migrations.
  • The socket status flag is now parsed as case-insensitive.
  • Build with Go 1.15.7 release.

Fixed

  • Fix an issue with the JS runtime multiUpdate function.
  • Fix an issue where the JS runtime would call the InitModule function twice.
  • Fix how the JS runtime invokes matchmakerMatched and leaderboard/tournament related hooks.
  • Fix JS VM not being put back into the pool after an RPC call.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.12.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"

v3.0.0

16 Jan 22:27
Compare
Choose a tag to compare

Notable changes

This is a major release of the server but is fully backwards compatible with the 2.x releases. Have a look at the release announcement for more details: https://heroiclabs.com/blog/announcements/nakama-3-0/

Added

  • New JavaScript runtime to write server code.
  • Introduce refresh tokens that can be used to refresh sessions.
  • New Realtime Parties for users to create teamplay in games. Users can form a party and communicate with party members.
  • Add party matching support to the Matchmaker.
  • Add options to the Matchmaker to control how long tickets wait for their preferred match.
  • Add Console UI permissions API.
  • New "ReadFile" runtime function to read files within the "--runtime.path" folder.

Changed

  • Rebuild Console UI with Angular framework. Manage user data, update objects, restrict access to production with permission profiles, and gain greater visibility into realtime features like active matches.
  • Matchmaker improvements to the process for matching and the handling of player count ranges.
  • Authoritative match handlers can now tick at 60 per second.
  • Support CockroachDB 20.2 release.
  • Build with Go 1.15.6 release.

Fixed

  • Return rank field in Lua API for leaderboard record writes.
  • Return social fields for users in friend listings.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.11.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"