/hotel

A simple master/lobby server for multiplayer games.

Primary LanguageGoMIT LicenseMIT

Hotel

Hotel is a simple master/lobby server for multiplayer video games written in golang. It's purpose is to facilitate the registration, discovery, and spawning of multiplayer game servers.

Overview

There are two services which are deployed separately:

  • hotel-master: The master server is a web server + database that provides a REST API for clients to register and request game server information.
  • hotel-spawner (optional): The spawner is an RPC server which fulfills requests from the master server to spawn new game server processes. This component can be omitted if the game doesn't require realtime provisioning of servers.

The ideal relationship between these services is visualized in the following diagram:

Architecture

Clients

Hotel was designed with Unity in mind as a client, but is agnostic to the game engine.

hotel-client-unity is a ready-made Unity client implementation that abstracts away much of the internal API calls.

Example control flow

Below is an example request flow for a game client requesting that a new game server be spawned, and connecting to it:

Spawn Flow

API

TODO

Deployment

TODO

Roadmap

TODO