# Developers

> How Orbium is built, from the game server to the WebGPU engine, its shaders and its effects. A knowledge base that grows with the platform.

These pages explain how Orbium works inside: how a Hold is run, how the browser
and the server agree on a World, and how the engine draws it with WebGPU. They
are for anyone curious about real-time 3D on the web, and they are our own map
as the platform grows.

The pages name the files they talk about, as the code is organised: the files
are the source of truth, these pages explain why they are the way they are.
Orbium's code will be public as an
[open-source edition](https://orbium.games/docs/platform/open-source), published on GitHub with each
release; once it is out, those names link straight to the code.

## Where to start

1. [Run Orbium locally](https://orbium.games/docs/developers/run-it): the game server, the client
   and bot players on your machine, in two commands.
2. [Architecture](https://orbium.games/docs/developers/architecture): the pieces and how they talk.
   The client, the server, the code they share, and who decides what.
3. [The engine](https://orbium.games/docs/developers/engine): a tour of the WebGPU engine, one
   folder at a time.
4. [WebGPU in Orbium](https://orbium.games/docs/developers/webgpu-basics): the device, buffers, WGSL
   modules, materials, and how a frame is recorded and submitted.

## Deep dives

One system at a time, from the idea to the shader:

- [The ocean](https://orbium.games/docs/developers/ocean): FFT waves, shore waves that bend around
  headlands, surf foam, caustics and the view under the sea.

More will follow: the terrain and its level of detail, rocks, the sky and
clouds, shadows, the post effects, particles, sound.

## The stack

| Piece      | What it does                                                   |
| ---------- | -------------------------------------------------------------- |
| WebGPU     | Draws every World, in the page, with compute and render passes |
| WGSL       | WebGPU's shading language: every shader in the engine          |
| Deno       | The toolchain: the build, the tests, the tools                 |
| Vite       | Builds and serves the client                                   |
| Celld      | Runs every Hold: self-hosted Durable Objects                   |
| Cloudflare | Serves the site                                                |
