Check the Client SDK Documentation for more details on each of the SDK functions and how to run the SDK locally.
Area | Action | Implemented |
---|---|---|
Lifecycle | Ready | ✔️ |
Lifecycle | Health | ✔️ |
Lifecycle | Reserve | ✔️ |
Lifecycle | Allocate | ✔️ |
Lifecycle | Shutdown | ✔️ |
Configuration | GameServer | ✔️ |
Configuration | Watch | ✔️ |
Metadata | SetAnnotation | ✔️ |
Metadata | SetLabel | ✔️ |
Counters | GetCounterCount | ❌ |
Counters | SetCounterCount | ❌ |
Counters | IncrementCounter | ❌ |
Counters | DecrementCounter | ❌ |
Counters | SetCounterCapacity | ❌ |
Counters | GetCounterCapacity | ❌ |
Lists | AppendListValue | ❌ |
Lists | DeleteListValue | ❌ |
Lists | SetListCapacity | ❌ |
Lists | GetListCapacity | ❌ |
Lists | ListContains | ❌ |
Lists | GetListLength | ❌ |
Lists | GetListValues | ❌ |
Player Tracking | GetConnectedPlayers | ✔️ |
Player Tracking | GetPlayerCapacity | ✔️ |
Player Tracking | GetPlayerCount | ✔️ |
Player Tracking | IsPlayerConnected | ✔️ |
Player Tracking | PlayerConnect | ✔️ |
Player Tracking | PlayerDisconnect | ✔️ |
Player Tracking | SetPlayerCapacity | ✔️ |
Additional methods have been added for ease of use (both of which are enabled by default):
/gameserver
till a succesful response is returned and then call /ready
.bDisableAutoConnect
to true
.GameServer
data once the /gameserver
call succeeds./health
endpoint on supplied rateHealthRateSeconds
to 0
.Both of the above are automatically kicked off in the BeginPlay
of the component.
Download the source from the Releases Page or directly from GitHub.
Unreal is a game engine that is used by anyone from hobbyists all the way through to huge AAA Game Stuidos.
With this in mind there is a vast amount to learn to run a production game using Unreal, even before you get to learning how it integrates with Code Blind. If you want to kick the tires with a starter project you will probably be fine with one of the starter projects out of the box.
However as your Unreal/Code Blind project gets more advanced you will want to understand more about the engine itself and how it can be used to integrate with this project. There will be different ways of interacting via in Play In Editor (PIE) versus running as an actual dedicated game server packaged into a container.
There are few helpful links for latest Unreal Engine 5:
If you use Unreal Engine 4, There are few helpful links for it:
This is a SDK inspired by the REST API to the Code Blind sidecars that allows engineers to communicate with the sidecar from either C++ or Blueprints.
Easiest way to get this code is to clone the repository and drop the entire plugin folder into your own Plugins
folder. This runs the plugin as a Project plugin rather than an engine plugin.
We could however turn this into a marketplace plugin that can be retrived from the marketplace directly into the UE editor.
.uproject
file) "Plugins": [
{
"Enabled": true,
"Name": "Code Blind"
}
],
*.Build.cs
)PublicDependencyModuleNames.AddRange(
new[]
{
"Code Blind",
});
#include "AgonesComponent.h"
UPROPERTY(EditAnywhere, BlueprintReadWrite)
UAgonesComponent* AgonesSDK;
#include "AgonesComponent.h"
#include "Classes.h"
ATestGameMode::ATestGameMode()
{
AgonesSDK = CreateDefaultSubobject<UAgonesComponent>(TEXT("AgonesSDK"));
}
void APlatformGameSession::PostLogin(APlayerController* NewPlayer)
{
// Empty brances are for callbacks on success and errror.
AgonesSDK->PlayerConnect("netspeak-player", {}, {});
}
Add Component to your Blueprint GameMode
This will automatically call /health
every 10 seconds and once /gameserver
calls are succesful it will call /ready
.
Accessing other functionality of Code Blind can be done via adding a node in Blueprints.
Add Component to your Blueprint GameMode
This will automatically call /health
every 10 seconds and once /gameserver
calls are succesful it will call /ready
.
Accessing other functionality of Code Blind can be done via adding a node in Blueprints.
A number of options can be altered via config files in Unreal these are supplied via Game
configuration eg. DefaultGame.ini
.
[/Script/Code Blind.AgonesComponent]
HttpPort=1337
HealthRateSeconds=5.0
bDisableAutoConnect=true
Within the Unreal GameMode and GameSession exist a number of useful existing funtions that can be used to fit in with making calls out to Code Blind.
A few examples are:
RegisterServer
to call SetLabel
, SetPlayerCapacity
PostLogin
to call PlayerConnect
NotifyLogout
to call PlayerDisconnect
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.