Separate game lobbies?

i am not very good with wording and english isn't my first language so ill do more than 1 example to make sure atleast someone understands. basically if i would have a lobby list of open world (or use the find for it) and wanted to make a find for instanced dungeons separated would it be possible? and would be possible to make the instanced dungeon find to only be activated authoratively (because i would not want to hackers for example to start a dungeon from anywhere in the map)? an short example would be: can i make "lobby find" authorative? (atleast certain ones) and make them filter out instanced dungeons (like separating gamemodes for example)? i know i could make a check if the player was allowed to be in the dungeon for example if it was started from somewhere strange but asking here just in case there is a easier way
10 Replies
Nathan
Nathanβ€’16mo ago
hey! nope, that request is totally reasonable. and your english is great :cool_doge: the easiest way is to use lobby rules to specify which dungeons are allowed. docs are here: https://arc.net/l/quote/rtyusope for example:
{
"modules": {
"lobbies": {
"conig": {
// Disable default lobbies
"lobbies": {
"enableFind": false, "enableFindOrCreate": false, "enableJoin": false
},
// Add rulse
"lobbyRules": [
{ "tags": { "dungeon": "a" }, "config": { "enableFindOrCreate": true } },
{ "tags": { "dungeon": "b" }, "config": { "enableFindOrCreate": true } },
]
}
}
}
}
{
"modules": {
"lobbies": {
"conig": {
// Disable default lobbies
"lobbies": {
"enableFind": false, "enableFindOrCreate": false, "enableJoin": false
},
// Add rulse
"lobbyRules": [
{ "tags": { "dungeon": "a" }, "config": { "enableFindOrCreate": true } },
{ "tags": { "dungeon": "b" }, "config": { "enableFindOrCreate": true } },
]
}
}
}
}
if you need something more complicated, you can also write your own backend module that runs server-authoritative logic (see https://opengb.dev/docs/build/overview). happy to provide more details as needed.
Open Game Backend
Open Game Backend - Open Game Backend
Build your game's backend on open-source technology. Built to launch quickly, adapt to your game, and scale effortlessly. Supports Godot, Unity, Unreal Engine, HTML5, and Custom Engines.
Killuado 😴
Killuado 😴OPβ€’16mo ago
so in the find i would use the tag correct? that seems easy enough for separate lobbies thanks!
Nathan
Nathanβ€’16mo ago
that's correct!
Killuado 😴
Killuado 😴OPβ€’16mo ago
btw i still have to code a server-side check if the player is supposed to be in that dungeon right? for example if a hacker can run the "lobby.find" manually (idk if its possible tho just guessing), should i code that in the game server or as a OpenGB module?
Nathan
Nathanβ€’16mo ago
can you explain a bit more in what validation you need to do for the player? rivet has an automatic verification step which verifies that a user was placed in a dungeon using the token provided rom the lobby.find command.
Killuado 😴
Killuado 😴OPβ€’16mo ago
for example, would it be possible to a hacker to use lobby.find from anywhere? if yes then i would need to validate for example if in the open world he was at the dungeon entrance location myself right?
Nathan
Nathanβ€’16mo ago
ah i see, yeah that would take some custom logic either on the game server or as a custom backend module how are you planning on identifying individual users? i take it their position will need to be stored somewhere
Killuado 😴
Killuado 😴OPβ€’16mo ago
probably in the backend as would be easier to access in all servers but i didn't think in how exactly yet
Nathan
Nathanβ€’16mo ago
neat, sounds like you'll end up with some sort of "player state" module. happy to answer questions when you get to that stage.
Killuado 😴
Killuado 😴OPβ€’16mo ago
ok, thank you!

Did you find this page helpful?