Skip to content

Releases: heroiclabs/nakama

v2.4.0

03 Feb 11:26
Compare
Choose a tag to compare

Notable changes

Added

  • New logging format option for Stackdriver Logging.
  • New runtime function to immediately disconnect active sockets.
  • New runtime function to kick arbitrary presences from streams.

Fixed

  • Fix return arguments for group user list results in Lua runtime function.
  • Leaderboard records returned with a previous page cursor no longer errors.

v2.3.2

17 Jan 22:18
Compare
Choose a tag to compare

Notable changes

Fixed

  • Set gateway timeout to match idle timeout value.
  • Reliably release database resources before moving from one query to the next.
  • Unlock GPGS certs cache in social client.

v2.3.1

04 Jan 22:37
Compare
Choose a tag to compare

Notable changes

Added

  • Make authoritative match join attempt marker deadline configurable.

Changed

  • Improve db transaction semantics with batch wallet updates.

Fixed

  • Initialize registration of deferred messages sent from authoritative matches.
  • Early cancel Lua authoritative match context when match initialization fails.
  • Update decoding of Steam authentication responses to correctly unwrap payload. Thanks @nielslanting
  • Parse Steam Web API response errors when authenticating Steam tokens.

v2.3.0

31 Dec 12:53
Compare
Choose a tag to compare

Notable changes 🎉

Added

  • WebSocket connections can now send Protobuf binary messages.
  • Lua runtime tournament listings now return duration, end active, and end time fields.
  • Lua runtime tournament end hooks now contain duration, end active, and end time fields.
  • Lua runtime tournament reset hooks now contain duration, end active, and end time fields.
  • New configuration flag for maximum number of concurrent join requests to authoritative matches.
  • New runtime function to kick users from a group.
  • Clients that send data to an invalid match ID will now receive an uncollated error.
  • The logger now supports optional log file rotation.
  • Go runtime authoritative matches now also print Match IDs in log lines generated within the match.
  • Email authentication client requests can authenticate with username/password instead of email/password.
  • Email authentication server runtime calls can authenticate with username/password instead of email/password.
  • New authoritative match dispatcher function to defer message broadcasts until the end of the tick.
  • New runtime function to retrieve multiple user accounts by user ID.
  • Send notifications to admins of non-open groups when a user requests to join.
  • Send notifications to users when their request to join a group is accepted.
  • New configuration flag for presence event buffer size.

Changed

  • Replace standard logger supplied to the Go runtime with a more powerful interface.
  • Rename stream 'descriptor' field to 'subcontext' to avoid protocol naming conflict.
  • Rename Facebook authentication and link 'import' field to avoid language keyword conflict.
  • Rejoining a match the user is already part of will now return the match label.
  • Allow tournament joins before the start of the tournament active period.
  • Authoritative matches now complete their stop phase faster to avoid unnecessary processing.
  • Authoritative match join attempts now have their own bounded queue and no longer count towards the match call queue limit.
  • Lua runtime group create function now sets the correct default max size if one is not specified.
  • Improve socket session close semantics.
  • Session logging now prints correct remote address if available when the connection is through a proxy.
  • Authoritative match join attempts now wait until the handler acknowledges the join before returning to clients.

Fixed

  • Report correct execution mode in Lua runtime after hooks.
  • Use correct parameter type for creator ID in group update queries.
  • Use correct parameter name for lang tag in group update queries.
  • Do not allow users to send friend requests to the root user.
  • Tournament listings now report correct active periods if the start time is in the future.
  • Leaderboard and tournament reset runtime callbacks now receive the correct reset time.
  • Tournament end runtime callbacks now receive the correct end time.
  • Leaderboard and tournament runtime callbacks no longer trigger twice when time delays are observed.
  • Check group max allowed user when promoting a user.
  • Correct Lua runtime decoding of stream identifying parameters.
  • Correctly use optional parameters when they are passed to group creation operations.
  • Lua runtime operations now observe context cancellation while waiting for an available Lua instance.
  • Correctly list tournament records when the tournament has no end time defined.

v2.2.1

20 Nov 17:21
Compare
Choose a tag to compare

Notable changes

Added

  • New duration field in the tournament API.

Fixed

  • Set friend state correctly when initially adding friends.
  • Allow tournaments to be created to start in the future but with no end time.
  • Join events on tournaments with an end time set but no reset now allow users to submit scores.

v2.2.0

12 Nov 00:03
Compare
Choose a tag to compare

Notable changes

Added

  • New runtime function to send raw realtime envelope data through streams.

Changed

  • Improve error message on database errors raised during authentication operations.
  • Set new default of 100 maximum number of open database connections.
  • Friendship state is no longer offset by one when sent to clients.
  • Group membership state is no longer offset by one when sent to clients.
  • Set new default metrics report frequency to 60 seconds.

Fixed

  • Account update optional inputs are not updated unless set in runtime functions.
  • Fix boolean logic with context cancellation in single-statement database operations.

v2.1.3

02 Nov 02:34
Compare
Choose a tag to compare

Notable changes

Added

  • Add option to skip virtual wallet ledger writes if not needed.

Changed

  • Improved error handling in Lua runtime custom SQL function calls.
  • Authoritative match join attempts are now cancelled faster when the client session closes.

Fixed

  • Correctly support arbitrary database schema names that may contain special characters.

v2.1.2

24 Oct 14:37
Compare
Choose a tag to compare

Notable changes

Added

  • Ensure runtime environment values are exposed through the Go runtime InitModule context.

Changed

  • Log more error information when InitModule hooks from Go runtime plugins return errors.
  • Preserve order expected in match listings generated with boosted query terms.

Fixed

  • Improve leaderboard rank re-calculation when removing a leaderboard record.

v2.1.1

21 Oct 05:11
Compare
Choose a tag to compare

Notable changes

Added

  • More flexible query-based filter when listing realtime multiplayer matches.
  • Runtime function to batch get groups by group ID.
  • Allow authoritative match join attempts to carry metadata from the client.

Changed

  • Improved cancellation of ongoing work when clients disconnect.
  • Improved validation of dispatcher broadcast message filters.
  • Set maximum size of authoritative match labels to 2048 bytes.

Fixed

  • Use leaderboard expires rather than end active IDs with leaderboard resets.
  • Better validation of tournament duration when a reset schedule is set.
  • Set default matchmaker input query if none supplied with the request.
  • Removed a possible race condition when session ping backoff triggers concurrently with a timed ping.
  • Errors returned by InitModule hooks from Go runtime plugins will now correctly halt startup.

v2.1.0

08 Oct 20:32
Compare
Choose a tag to compare

Notable changes

Added

  • New Go code runtime for custom functions and authoritative match handlers.
  • New Tournaments feature.
  • Runtime custom function triggers for leaderboard and tournament resets.
  • Add Lua runtime AES-256 util functions.
  • Lua runtime token generator function now returns a second value representing the token's expiry.
  • Add local cache for in-memory storage to the Lua runtime.
  • Graceful server shutdown and match termination.
  • Expose incoming request data in runtime after hooks.

Changed

  • Improved Postgres compatibility on TIMESTAMPTZ types.

Fixed

  • Correctly merge new friend records when importing from Facebook.
  • Log registered hook names correctly at startup.