Replies: 2 comments 4 replies
-
|
The biggest advantage I see with a service like this is how it lowers the barrier for entry for fellow game developers. A lot of folks aren't too savvy with the devOps stuff needed for WebRTC, and terms like ICE and TURN servers can easily intimidate many (I know I was). I was very close to giving up when setting up Geckos.io on prod for the first time; there were just too many unknowns for me back then. |
Beta Was this translation helpful? Give feedback.
-
|
We could just publish a tutorial/blog + terraform sample? The minimum monthly cost is still fairly high, but in speaking to a few JS game developers - infra seems to be their big hurdle that stops them pursuing multiplayer 🤷♀️ |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Gamedev is already hard. Infra + devops is hard too, especially so for browser games.
Geckos.io makes UDP networking easy, and given many browser-based games would have similar hardware/hosting requirements, I wonder how much interest the community might have in a service that deployed your game server fleet for you?
💥 Example challenges with WebRTC infra / devops
This isn't even mentioning advanced production requirements like DDOS protection, etc.
*Generally speaking. Depends on the game - i.e. memory/bandwidth requirements could be more significant.
What would a service look like?
Something halfway between Fly.io (hosting) and Agones.dev (gameserver fleet management) - for webrtc browser games.
e.g. in your server
Game servers would register themselves with the third party service:
Click here for full HTTPS example
e.g. in your API:
Then in your game's central API you could trigger something like:
and get a list of available game servers, which you can use in your matchmaking logic.
Example response: List gameservers
[ { "id": "038e053b-0205-4bc0-8fef-39c24a0ded59", "region": "europe-central", "gameVersion": "20d4ae0d4dc245fb9c50435f5aa5c8b0", "available": true, "state": "healthy", "address": { "host": "https://gs-234-123-45-156.gameservers.example-wrtc-fleet-service.net", "port": 3233 }, "players": { "capacity": null, "reserved": 0, "active": 11 }, "aliveSince": 1716445331, "lastUpdated": 1716453224, "tags": [ "casual" ] }, { "id": "a9222aff-e52f-4daf-9321-3d28acbfa738", "region": "north-america-east", "gameVersion": "20d4ae0d4dc245fb9c50435f5aa5c8b0", "available": false, "state": "healthy", "address": { "host": "https://gs-55-124-23-121.gameservers.example-wrtc-fleet-service.net", "port": 8911 }, "players": { "capacity": 8, "reserved": 8, "active": 8 }, "aliveSince": 1716445456, "lastUpdated": 1716453225, "tags": [ "ranked" ] }, { "id": "21d15ee4-3e66-49b1-ac31-96aa230c73f2", "region": "north-america-east", "gameVersion": "b9c50435fe0d4dc245f5aa5c820d4ab0", "available": false, "state": "shutting-down", "address": null, "players": { "capacity": 8, "reserved": 8, "active": 7 }, "aliveSince": 1716445456, "lastUpdated": 1716453210, "tags": [ "ranked", "game-ended" ] } ]Benefits
Cons
cc @Quitalizner @yandeu @JayeMcC @Not-Jayden
Beta Was this translation helpful? Give feedback.
All reactions