v3.8.0
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 toseed-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