Skip to content

Components

Infra is spread across many different repositories, with different functions. On this page is a current comprehensive list (index like) of everything that BAR infrastructure consists of.

Info

Even though many of the repositories below are hosting UI visible to players, the infrastructure team is not responsible for the design and overall UX improvements. The same applies to rating, balancing and data analysis. Other BAR development teams are supposed to drive planning and improvements to those aspects.

Live games serving

The server side components responsible for facilitating live games: hosting the engine instances clients connect to to play the game.

There is also some monitoring setup: health checks using healthchecks.io and Okema's Zabbix instance.

Lobby rooms serving

The online components needed to set up and prepare the lobby rooms before the game happens.

  • teiserver: The primary piece here responsible for all the:

    • Account management logic
    • Moderation
    • Lobby rooms permissions and management
    • Middleware between client side components and SPADS

    hailstorm are the integration tests.

  • ansible-teiserver: Teiserver server configuration.

  • tachyon: Work in progress new lobby server protocol specification.
  • Even though the SPADS and its configuration is mentioned in the previous section, it also belongs here. SPADS is handling both lobby rooms setup and then game handling.

Client side infra

Pieces responsible for ensuring that players have all the assets available and ready to start the game.

  • BYAR-Chobby: Our current lobby client.

    It's responsible for communication with lobby server, launcher, preparing engine start script.

  • bar-lobby: New work in progress lobby client.

  • spring-launcher: Game installer and launcher.
  • pr-downloader: CLI application distributed with engine used for downloading mods/games

    Could be interpreted also to belong in the engine team, but it heavily impacts infra.

  • bar_debug_launcher: BAR Debug launcher. It's not intended for end users, it is a developer tool.

Game assets distribution

Infrastructure responsible for making all the game assets available to players.

Auxiliary services