This is a documentation for getting started with the Lobby Service.
Check also:
| LUA SCRIPTING | ANGELSCRIPT SCRIPTING |
|---|
In order to run it, you need to run the lobby_service binary from command line from this repo:
lobby_service -hWill print:
Usage: ./lobby_server [--verbose] [--disable-metrics] [--skip-login] [--logout] [--generate-config]The lobby_service uses a config.ini file and a games.ini file. The config.ini file contains configurations that are specific to the lobby_service. One notable setting is the:
[games]
scripts_folder=scriptsBy overriding this, you can set the scripts_folder to any folder you want. This is the folder where you can script logic on the server side.
The games.ini config file contains a mapping between the scripts folder and the game_id. You also set there the scripting language you want to use, if any, for the game.
- disband on leave (should the game disband when host leaves?):
lobby_control=true # Default is false- tickrate (If you enable this the
_on_lobby_tick callbackwill be enabled):
tickrate=10 # Default is 0- sendrate (How often should messages be sent. If you enable this messages will be batched):
sendrate=10 # Default is 0- lua example
[19289469-294c-4ff7-89a3-78528d8e6c17]
lobby_control=lua
folder=draft- angelscript example
[b006a006-40b1-4ff0-87be-0aad85309bec]
lobby_control=angelscript
folder=draft- relay example (no scripting backend)
[19289469-294c-4ff7-89a3-78528d8e6c17]
lobby_control=relaySee LUA_SCRIPTING.md for details on using Lua scripting with the Lobby Service.
See ANGELSCRIPTING.md for details on using AngelScript scripting with the Lobby Service.
If you set lobby_control as relay, then there is no scripting backend and you are not required to set the folder.
There is also a test script that can be run in nodejs which tests the functionality of the draft project. It connects a user, creates a lobby and calls the function echo, then leaves the lobby. It exits after 3 seconds. (To run it you have to start the lobby server)
cd test
npm i
npm run testIt should print something like this:
[Lua] Open
[Lua] Message: [
{
command: 'peer_state',
data: { peer: [Object] },
message: 'Initial Message'
},
{
command: 'lobby_created',
data: { id: '', lobby: [Object], peers: [Array] },
message: 'Lobby created'
},
{
command: 'lobby_call',
data: { id: 'echo', result: 'Lua test' },
message: 'Lobby Call'
},
{ command: 'lobby_left', data: { id: '' }, message: 'Lobby Left' }
]
[AngelScript] Open
[AngelScript] Message: [
{
command: 'peer_state',
data: { peer: [Object] },
message: 'Initial Message'
},
{
command: 'lobby_created',
data: { id: '', lobby: [Object], peers: [Array] },
message: 'Lobby created'
},
{
command: 'lobby_call',
data: { id: 'echo', result: 'AngelScript test' },
message: 'Lobby Call'
},
{ command: 'lobby_left', data: { id: '' }, message: 'Lobby Left' }
]