The last month has been very busy for the AcceleratXR team. There have been numerous updates across the entire product that we are excited to share with you.
AcceleratXR Platform
Several updates and bug fixes have gone into the base micro-service framework (called service-core). These changes are generally pushed to all downstream micro-services projects as soon as they are made. Details of the various changes to the framework and additional improvements to other services are detailed below.
Service Core
- Fixed issue with bad headers being set on some responses
- Added support for search filtering to ModelRoute.doTruncate
- Upgraded third-party dependencies
- Fixed various unit tests and related bugs
Account Services
- Added new endpoints for testing user and role existence (e.g.
HEAD /users/{id}
andHEAD /roles/{id}
) - Improvements to multi-factor authentication to support SDK changes
- Upgraded to service core v2.15.1
Session Services
- Added endpoints for allowing session members to set their own custom data
- Implemented automatic team assignment
Persona Services
- Refactored /personas/{uid}/stats/{uid} to take the PersonaStatDefinition uid instead of the instance record uid.
- Upgraded to service-core v2.16.1
C# SDK
The C# SDK underwent a major file re-organization to ensure it is consistent with the other SDKs. Several higher level utility classes were also added to help support simpler development.
PlayerInfo / PlayerInfoManager
The PlayerInfo class has been added to serve as a container of all user-related data in the platform including User and Profile data objects. The PlayerInfoManager now serves as a simpler interface to query and locally cache this information about any given user or set of users.
SessionManager
The purpose of the SessionManager is to provide a simple interface for working with game sessions with the ability to create, search, join and destroy/leave sessions.
SocialManager
The SocialManager class provides a common interface for working with the platform’s social functionality. This includes query and caching of a user’s various relationships (e.g. friends, encounters, blocked, follows) as well as player-to-player messaging.
C++ SDK
Several important improvements have been made to the C++ SDK including a variety of bug fixes.
- Upgraded third-party dependencies
- Added support for multi-factor authentication challenges (TOTP)
- Added support for requesting server instance assignments
- Add fluent API semantics to all data model classes (e.g. SetXXX() chaining)
- Added [] operator overrides for accessing properties
- Reduced default thread-pool size from 40 to 20.
- Set default priority of all worker threads to normal.
Unreal SDK
A lot of big changes have happened to the Unreal SDK recently including Unreal Engine 5 support and a brand new plug-in called GameFrameworkAXR.
Unreal Engine 5
The team recently downloaded the Early Access build of Unreal Engine 5 and are excited to report that the AcceleratXR Unreal SDK builds and runs successfully against this latest version. As a result, we are adding UE5 as an officially supported build.
GameFrameworkAXR
With the deprecation of the AXRCoreSDK plug-in a new plug-in has been created. The new GameFrameworkAXR plug-in provides typical implementations of common online capabilities leveraging the AcceleratXR platform. This includes sub-classes of GameSession and GameMode that offer automatic server registration and session assignment as well as user validation.
Using the GameSessionAXR class developers can now have a standard implementation for using the AcceleratXR game server auto-scaling system. It works with both the session system and Virtual World System out of the box. This is accomplished by performing automatic server registration with the backend and then awaiting for session or shard assignments. Once an assignment is received the server will automatically load the configured map any associated game options and notify the backend that it is ready for players to connect.
The new GameModeAXR class currently provides user validation when a game session is active. This validation ensures that only members of a given session are allowed to join the server and rejects any other client attempts to join the server.
In addition to the above the plug-in also includes utilities for building and running game servers in a Linux-based container environment such as Docker or Kubernetes. This includes automatic external port discovery when running under Kubernetes.
OnlineSubsystemAXR
Several bug fixes and general improvements have been made to the OnlineSubsystemAXR plug-in. Some of the highlights include:
- Upgraded to C++ SDK v2.5.1
- Fixed issues with OnlineSessionAXR triggering the wrong delegates for certain operations
- OnlineSessionAXR::StartSession will now request a server instance when bIsDedicated is set to true for the session.
- Added various getter/setter functions to FOnlineSessionInfoAXR and FShard
- Added EmptyId static accessor to FUniqueNetIdAXR
Admin Console
The AcceleratXR Admin Console has gone through quite a few feature improvements and bug fixes. The console has also been moved to a new URL. The new home address is https://console.goaxr.cloud/
- Persona and PersonaStats now display and function correctly
- Fixed issues with Zone/Shard/ScalingPolicy pages now functioning correctly
- All collection pages now automatically refresh their results every 5 seconds
- Fixed issue with the login screen not saving the “remember me” state correctly