# Open source

> Orbium is going open source, through a public edition of its code published release by release. What that means, and why we do it this way.

Orbium will be open source: the platform, One Beam and the engine under them,
for anyone to read, learn from, run and build on. This page explains how the
code will be shared, and why.

## How the code will be shared

Orbium is developed in a **private repository**. From it, we generate an
**open-source edition**: a separate, public repository on GitHub, under the
[OrbiumGames](https://github.com/OrbiumGames) account. It is updated **every
time we ship a new release**, so what you read there is what players are
running.

The first edition is being prepared. It will be announced on these pages, on
[Discord](https://discord.gg/orbiumgames) and on
[Patreon](https://www.patreon.com/OrbiumGames), with more updates in the near
future.

## Why a separate edition

Keeping development private and publishing an edition with each release lets us
open the code without putting the platform or its people at risk:

- **Security.** The private repository holds what keeps the live service running
  and fair: how the servers are deployed and configured, and the safeguards
  around them. Those details stay out of the public edition.
- **Privacy.** Day-to-day development carries things that are not meant to be
  public: internal notes, conversations with players and backers, work in
  progress. The edition contains the code, not the people around it.
- **Releases you can rely on.** Every edition matches a release that has been
  tested and runs. No half-finished work, no history to dig through: a clean
  starting point for reading the code or running your own server.

## What the edition will contain

| Folder    | What it is                                                      |
| --------- | --------------------------------------------------------------- |
| `engine/` | The WebGPU engine: GPU resources, shaders, terrain, sea, sky    |
| `shared/` | Code the browser and the server both run: the island, the rules |
| `server/` | The game server: one Durable Object per Hold                    |
| `client/` | The site and the game in the browser                            |
| `tools/`  | Bot players and the sound pipeline                              |
| `test/`   | The tests                                                       |
| `docs/`   | These pages, in Markdown                                        |

The [developers' docs](https://orbium.games/docs/developers) already explain how it all works. The
file names they mention are those of the edition; once it is published, they
will link straight to the code.

## For our backers

Backing on [Patreon](https://www.patreon.com/OrbiumGames) pays for the servers,
the games to come and the time it takes to prepare each open-source edition and
these Docs. Nothing about playing changes: Orbium stays free to play, one Hold
per player. See the [backers](https://orbium.games/backers).

## Where it comes from

The engine started as [Tidewater](https://github.com/dgreenheck/tidewater),
Daniel Greenheck's WebGPU ocean and island renderer, and Orbium keeps it in step
with it. Everything else Orbium builds on (the clouds, the sounds, the fonts) is
named, with its licence, in the [credits](https://orbium.games/docs/platform/credits).
