Skip to content

Releases: heroiclabs/nakama

v3.21.1

22 Mar 08:31
Compare
Choose a tag to compare

Notable changes

Added

  • Add ability to easily run unit and integration tests in an isolated docker-compose environment.

Changed

  • More efficient initial loading of storage index contents.

Fixed

  • Fix issue with Fleet Manager access causing an unexpected error.

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

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.31.0"

v3.21.0

17 Mar 18:14
Compare
Choose a tag to compare

Notable changes

Added

  • Add Fleet Manager API to power session-based multiplayer adapters. See the documentation for more details.
  • Add CRON next and previous functions to Go runtime.
  • Add CRON previous function to Lua runtime.
  • Add CRON previous function to TypeScript/JavaScript runtime.
  • Add support for storage deletes in runtime multi-update functions.

Changed

  • Reduce number of memory allocations in leaderboard cache.
  • Fix leaderboard rank cache inconsistencies/race that could arise under heavy load.
  • List leaderboard records can now return up to 1,000 records per request.
  • Simplify query planning for storage object read operations.
  • Improve comparison operation for leaderboard rank cache ordering.
  • Extend extraction of purchase data from Apple IAP receipts.

Fixed

  • Prevent players from requesting duplicate joins to the same party.
  • Prevent players from requesting joins to parties they are already members of.
  • Ensure runtime user deletion function rejects the system user.

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

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.31.0"

v3.20.1

03 Feb 06:07
Compare
Choose a tag to compare

Notable changes

Changed

  • Improve handling of messages being sent while session is closing.
  • Build with Go 1.21.6.

Fixed

  • Skip Google refund handling for deleted users.
  • Fix storage engine version check regression.
  • Fix JavaScript runtime tournament records list owner identifier parameter handling.
  • Fix regression in tournament end active time calculation when it coincides with reset schedule.
  • Better handling of concurrent wallet update operations for the same user.

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

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.30.1"

v3.20.0

15 Dec 21:15
Compare
Choose a tag to compare

Notable changes

Changed

  • JavaScript runtime localcachePut now only accepts primitive types, other values will throw an error.
  • Storage search index list max limit increased from 100 to 10,000 results.
  • Upgrade GRPC-Gateway, Tally, Zap, crypto, oauth2, GRPC, and related dependencies.
  • Build with Go 1.21.5.

Fixed

  • Fix pointer slices assertions in JavaScript runtime Nakama module function arguments.
  • Fix caller ID parameter index in Lua runtime storage_list function.
  • Fix incorrect GOARCH flag in Dockerfiles for arm64.

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

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.30.1"

v3.19.0

11 Nov 23:00
Compare
Choose a tag to compare

Notable changes

Added

  • Add IAP purchase validation support for Facebook Instant Games.
  • Add Lua runtime function to clear all localcache data.
  • Add JavaScript runtime function to clear all localcache data.
  • Add support for per-key TTL in Lua runtime localcache.
  • Add support for per-key TTL in JavaScript runtime localcache.
  • Add support for optional client IP address passthrough to runtime Satori client.

Changed

  • Remove unused config 'matchmaker.batch_pool_size'.
  • RPC now allows omitting the unwrap parameter for requests with empty payloads.
  • Upgrade GRPC dependency.
  • Writing tournament scores now updates number of scores even if submitted score is not an improvement.
  • Move internal queries with variable number of args to a fixed number of args syntax.
  • Better handling of num_score and max_num_score in tournament score updates.
  • Remove unnecessary curl, git, unzip, rsync, and schroot tools from Docker images.
  • Build with Go 1.21.4 and use Debian bookworm-slim for base docker images.

Fixed

  • Correctly handle empty email field when authenticating via Apple Sign In.
  • Fix issue where rank cache may store duplicate ranks for some score inputs.
  • Fix issue related to accepting party members.
  • Fix HTTP request timeout usage in JavaScript runtime.

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

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.30.0"

v3.18.0

24 Oct 16:56
Compare
Choose a tag to compare

Notable changes

Added

  • Allow HTTP key to be read from an HTTP request's Basic auth header if present.
  • Add prefix search for storage keys in console (key%).
  • Runtime functions to build a leaderboardList cursor to start listing from a given rank.
  • Improved support for TypeScript/JavaScript runtime profiling.

Changed

  • Session cache model switched from whitelist to blacklist for improved usability.
  • Use Steam partner API instead of public API for Steam profiles and friends requests.
  • Add create_time and update_time to returned storage engine writes acks.
  • Add storage index create flag to read only from the index.
  • Add caller ID param to storage listing and storage index listing runtime APIs.
  • Update Facebook Graph API usage from v11 to v18.
  • Add support for refresh token rotation.
  • Allow JS runtime storage write operation version inputs to be undefined.
  • Build with Go 1.21.3.

Fixed

  • Fixed multiple issues found by linter.
  • Fix storage index listing results sometimes being returned with incorrect order.
  • Fixes calculation of leaderboard and tournament times for rare types of CRON expressions that don't execute at a fixed interval.
  • Improved how start and end times are calculated for tournaments occurring in the future.
  • Fix users receiving friend request notifications when added by users who have blocked them.
  • Fix Go runtime registration of matchmaker custom override hook function.
  • Fully remove corresponding matchmaker tickets after custom matchmaker process completes.
  • Fix incorrectly documented default value for matchmaker flag.

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

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.29.0"

v3.17.1

23 Aug 22:18
Compare
Choose a tag to compare

Notable changes

Added

  • Add Satori recompute optional input parameter to relevant operations.

Changed

  • Prefix storage index values with value. for query input namespacing purposes.

Fixed

  • Ensure graceful log handling during Lua runtime check operation.
  • Fix Satori client response body resource handling.

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

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.28.1"

v3.17.0

19 Jul 22:19
Compare
Choose a tag to compare

Notable changes

Added

  • Introduce pagination for console API leaderboard and tournament listing endpoint.
  • Introduce pagination for devconsole leaderboard view.
  • Add storage object indexing support and related runtime functions.
  • Return rank count from leaderboard score listings, if available for the given leaderboard.
  • Return rank count from tournament score listings, if available for the given tournament.

Changed

  • Better formatting for graphed values in devconsole status view.
  • Better handling of large numbers of configured leaderboards and tournaments.
  • Improved delivery of non-persistent SendAll notifications to large numbers of users.
  • Truncate stats reported to devconsole status view to 2 decimal digits for improved readability.
  • Memory usage and population time improvements in leaderboard rank cache.
  • Better handling of internal transaction retries.
  • Better handling of party membership when interacting with matchmaking.
  • Improve leaderboard cache reporting of idempotent operations.
  • Build with Go 1.20.6.

Fixed

  • Correct cursor usage in group listings using only open/closed group state filter.
  • Fix issue delivering persistent SendAll notifications to large numbers of users.
  • Remove incorrect category start and category end parameters from runtime leaderboard list functions.
  • Graceful handling of idempotent tournament creation operations.
  • Correct sorting of batched storage write and delete operations.
  • Fix indexing of channel message list responses in Lua runtime.
  • Better handling of parameters submitted from the devconsole UI.
  • Remap original Google IDs to "next generation player IDs"
  • Return ordered owner records in leaderboard/tournament records listings.

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

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.28.0"

v3.16.0

18 Apr 18:23
Compare
Choose a tag to compare

Notable changes

Added

  • Add "tournamentRecordDelete" function to server frameworks.
  • Add "insecure" flag to runtime http functions to optionally skip TLS checks.
  • Satori API available to Nakama server in all server frameworks.
  • New "MatchmakerOverride" hook to provide custom matching behaviour.

Changed

  • Improve graceful shutdown of Google IAP receipt processor.
  • If In-App Purchase validation contain mismatching user IDs, do not return an error.
  • Better handling of matchmaker operations while the interval process is in execution.
  • Add user ID param to Go runtime GroupUpdate function.
  • Build with Go 1.20.3 and use Debian bullseye-slim for base docker images.

Fixed

  • Consistent validation of override operator in runtime leaderboard record writes.
  • Correctly filter open/closed groups in the listing API.
  • Ensure direct message channel message list is correctly scoped to participants only.
  • Make next and previous cursor of leaderboard and tournament records around owner operations consistent with record listings.
  • Make next and previous cursor of leaderboard and tournament records haystack operations consistent with record listings.

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

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.27.0"

v3.15.0

05 Jan 01:57
Compare
Choose a tag to compare

Notable changes

Happy New Year to everyone! 🎉

For the full release notes have a look at our release notes documentation.

Added

  • Allow the socket acceptor to read session tokens from request headers.
  • Add support for custom response headers set in server configuration.
  • Add missing fields to tournament end and reset JavaScript server framework hooks.
  • Add support for removing channel messages to all server runtimes.
  • Allow Console group UI view to add new members.
  • Allow "DELETE" and "HEAD" methods in server framework HTTP request functions.
  • Add In-App Purchase notification callback functions to all server runtimes.
  • Add "DeleteAccount" client API function.
  • Add "DeleteAccount" before and after hook functions to all server runtimes.

Changed

  • Use stricter validation of limit param in server framework storage list operations.
  • Allow newer subdomain variant in Facebook Limited Login token issuer field.
  • Rename "groupsGetRandom" to "groups_get_random" in the Lua server framework for consistency.
  • Accept Google IAP receipts with or without Unity wrapper structures.
  • Update Nakama logos.
  • Use stricter validation of method param in Lua server framework HTTP request function.
  • Disable SQL statement cache mode describe by default. This reverts to the same behaviour as before 3.14.0 release.
  • Build with Go 1.19.4 release.

Fixed

  • Fix response structure in purchase lookups by identifier.
  • Ensure corresponding leaderboard rank cache entries are removed when a user is deleted.
  • Update scheduler when leaderboards and tournaments are deleted from the Console.
  • Fix matchmaker tracking of eligible matches when downsizing for count multiples.
  • Handle context cancellation in "httpRequest" calls in the JavaScript server framework.
  • Handle context cancellation in "httpRequest" calls in the Lua server framework.
  • Fix logic on users who attempt to leave groups they're banned from.
  • Fix logic in optional params in JavaScript server framework token generate function.
  • Validate group member count so it does not update when failing to add a member.
  • Handle Google IAP validation token caching when using credential overrides.
  • More graceful handling of no-op authoritative storage delete operations.
  • Ensure rank cache is correctly updated when joining tournaments.
  • Ensure default parameters for tournament listings are consistent between API and runtimes.
  • Fix Console groups view incorrect visual removal of last group member.
  • Fix In-App Purchase subscription notification handling.
  • Fix handling of party leader transition if previous leader and other members leave concurrently.
  • Fix exact enforcement of maximum party size.

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

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.26.0"