Skip to content

v3.8.0

Compare
Choose a tag to compare
@sei-mkaar sei-mkaar released this 23 Feb 17:24
· 159 commits to main since this release
20cd301

Gameboard 3.8.0 contains performance optimizations, bug fixes, and multiple new features. This PR has a corresponding one in the Gameboard UI project.

New features

  • Gameboard now supports x-api-key header-based authorization. Admins can issue API keys for any user account on the Users screen in Admin. Resolves #107.
  • The game enrollment and session commencement process has been improved, receiving some performance optimizations and, most notably, improved differentiation between the "unenroll" and "reset session" commands.
    • "Unenroll" is only available before a session has begun, and only for non-manager players in team games. It now removes a single player from the game. Resolves #111.
    • "Reset Session" now removes an entire team from the game after they've started session. All record of their session is deleted, including challenge data.
    • These functions are available to players in the game lobby screen and to admins on the "Players" screen for a specific game. Note that admins cannot currently unenroll individual players in team games.
  • New installations can now be correctly seeded with desired data, including users, games, challenges, and more! Rename the included seed-data.json.example file to seed-data.json to get started. Resolves #106.
  • Practice mode is now available!
    • Support various modes: competition, practice, test
    • Admin designates Game as "Practice"
    • Public practice challenge browser shows all challenges in practice games.
    • Auto session creation in practice mode (sliding window).
    • Players can extend/end session.
    • Players can see previous sessions in profile/history.
    • Admins can toggle modes on player browser.

Bug fixes

  • Players can no longer generate certificates for a game unless their score is greater than zero.
  • It's no longer possible to set a challenge as a prerequisite for itself. Partially addresses #114, but it's likely that in a future version we'll expand this guard to detect dependency cycles at a deeper level.

Performance improvements

  • The Admin -> Users screen now downloads a slimmed-down dataset and loads additional data by request, which should result in faster load times and increased page performance. Resolves #116.

Infrastructure

  • An abstraction layer has been added to support the use of additional game engines beyond TopoMojo and to support the Crucible project.
  • AutoFixture has been added to the Integration tests project to support better test semantics.
  • Gameboard now supports optional HTTP logging. This can be enabled using app.settings.conf and setting any of the following optional values:
    • Logging__EnableHttpLogging
    • Logging__RequestBodyLogLimit
    • Logging__ResponseBodyLogLimit