---
title: Home
url: 'https://wiki.teletypegames.org/'
markdown: 'https://wiki.teletypegames.org/index.md'
lang: en
date: '2026-11-01'
description: 'Teletype Games is an independent game development collective. We make small retro-flavoured games on eight platforms — from Go and Godot to the Commodore 64 — and we build the whole road they travel: a CI pipeline that turns a push into a release, a public catalog where every title plays in the br…'
---

# Home

> **Teletype Games** is an independent game development collective. We make small retro-flavoured games on eight platforms — from Go and Godot to the Commodore 64 — and we build the whole road they travel: a CI pipeline that turns a push into a release, a public catalog where every title plays in the browser or downloads for desktop, and stores that carry the catalog onto a Batocera box, into RetroArch or onto a desktop. This wiki documents all of it. The engineering pages are public; the team and project pages need a login.

# The road from a repo to a player

| Stage | What happens | Read |
|---|---|---|
| **1. A game repo** | A project on our Gitea holds its sources and a one-line `.woodpecker.yaml` marker naming its platform. | [Platforms](https://wiki.teletypegames.org/development) |
| **2. The pipeline** | Woodpecker asks the catalog server, and WarpEngine serves the whole build config: version, build, package, upload, publish. The builder images live server-side. | [WarpEngine](https://wiki.teletypegames.org/engines/warp-engine), [Deployment](https://wiki.teletypegames.org/infrastructure/deployment) |
| **3. The catalog** | The release lands on [teletypegames.org](https://teletypegames.org): a web build to play in the browser, native zips to download, a cartridge for real hardware. | [Public site](https://wiki.teletypegames.org/services/public-site) |
| **4. The stores** | The same catalog is installed onto a Batocera box, rendered as RetroArch playlists, or browsed in the desktop client. | [Stores](https://wiki.teletypegames.org/stores) |
| **5. The shop** | Teletype Orbit puts prices, entitlements and gated downloads on top of the catalog, with the same client on the other end. | [Teletype Orbit](https://wiki.teletypegames.org/services/teletype-orbit) |

---

# Platforms

Every platform page has the same shape: how a project is laid out, the Makefile for local work, the served pipeline step by step, and what the release carries.

| Platform | Language | What a release carries |
|---|---|---|
| [Ebitengine](https://wiki.teletypegames.org/platforms/ebitengine) | Go | Web build, Windows and Linux binaries; macOS by hand |
| [Bevy](https://wiki.teletypegames.org/platforms/bevy) | Rust | Web build, Windows and Linux binaries |
| [Godot](https://wiki.teletypegames.org/platforms/godot) | GDScript / C# | Web build, Windows, Linux and a universal macOS build |
| [LÖVE](https://wiki.teletypegames.org/platforms/love) | Lua | Web build via love.js, Windows, Linux and macOS |
| [Phaser](https://wiki.teletypegames.org/platforms/phaser) | JavaScript | Web build — no compilation at all |
| [TIC-80](https://wiki.teletypegames.org/platforms/tic80) | Lua | Cartridge, source, docs, web build and native players |
| [Commodore 64](https://wiki.teletypegames.org/platforms/c64) | 6502 assembly | `.prg` cartridge, a browser player and native players for Linux, Windows and macOS |
| [Commodore Plus/4](https://wiki.teletypegames.org/platforms/plus4) | 6502 assembly | The same as the C64, on the 264 series |

Alongside the platforms: [LibreSprite](https://wiki.teletypegames.org/development/libresprite) and [Pixelorama](https://wiki.teletypegames.org/development/pixelorama) for pixel art, and the [RoR Styleguide](https://wiki.teletypegames.org/development/ror-styleguide), the rules our Rails applications follow.

---

# Engines

The reusable parts, each its own repository and product.

| Engine | Language | What it is |
|---|---|---|
| [WarpEngine](https://wiki.teletypegames.org/engines/warp-engine) | Ruby | Mountable Rails engine: the retro software catalog, the CI pipeline server, the build endpoints and the public JSON API behind the public site and Teletype Orbit |
| [warpstore](https://wiki.teletypegames.org/engines/warpstore) | Python | The shared core of the store engines: one dependency-free file that knows a WarpEngine catalog |
| [Inkwell](https://wiki.teletypegames.org/engines/inkwell) | Go | Point-and-click adventure framework on Ebitengine, a SCUMM-era skeleton as a thin DSL |
| [RuBBS](https://wiki.teletypegames.org/engines/rubbs) | Ruby | Framework for Synchronet-style Telnet BBS servers, behind our own [Teletype BBS](https://wiki.teletypegames.org/services/teletype-bbs) |

---

# Stores

How the catalog reaches a player's machine.

| Store | Runs on | What it does |
|---|---|---|
| [WarpEngine Client](https://wiki.teletypegames.org/stores/warp-engine-client) | Windows, Linux, macOS | Desktop app: the catalog as a grid of cards, with the store engine built in |
| [WarpEngine Batocera Store](https://wiki.teletypegames.org/stores/warp-engine-batocera-store) | Batocera | Installs a catalog into the ROM folders under its own EmulationStation menu |
| [WarpEngine RetroArch Store](https://wiki.teletypegames.org/stores/warp-engine-retroarch-store) | Anything RetroArch runs on | Renders a catalog as `.lpl` playlists with box art |
| [TTG Batocera Store](https://wiki.teletypegames.org/stores/ttg-batocera-store), [TTG RetroArch Store](https://wiki.teletypegames.org/stores/ttg-retroarch-store) | — | Our own store definitions on top of the two engines |

---

# Infrastructure

| Page | What it covers |
|---|---|
| [Server](https://wiki.teletypegames.org/infrastructure/server) | The self-hosted box: Nginx, Traefik, Gitea, Woodpecker and the rest |
| [Deployment](https://wiki.teletypegames.org/infrastructure/deployment) | Docker Compose architecture and the CI/CD path from push to running service |
| [Public site](https://wiki.teletypegames.org/services/public-site) | teletypegames.org: the Rails catalog API and the retro-styled frontend |
| [Teletype Orbit](https://wiki.teletypegames.org/services/teletype-orbit) | The shop platform on WarpEngine: purchases, entitlements, gated downloads |
| [Wiki Site](https://wiki.teletypegames.org/services/wiki-site) | This wiki: Grav, the git-backed content, the fetcher, the JSON API, the two languages |
| [BBS Network](https://wiki.teletypegames.org/services/bbs-network), [TTG Wiki BBS](https://wiki.teletypegames.org/services/wiki-bbs) | Our telnet boards, from the [Teletype BBS](https://wiki.teletypegames.org/services/teletype-bbs) on; this wiki on a telnet line |
| [Backup](https://wiki.teletypegames.org/infrastructure/backup), [ResourceSpace](https://wiki.teletypegames.org/infrastructure/resourcespace) | Off-site backups; the asset library for artwork and media |

---

# Team and projects

These sections need a login.

- **Team** — the [Constitution](https://wiki.teletypegames.org/team/constitution), [Communication](https://wiki.teletypegames.org/team/channels) channels, [Members](https://wiki.teletypegames.org/team/members), the [Accounts](https://wiki.teletypegames.org/team/accounts) onboarding guide, weekly [Meetings](https://wiki.teletypegames.org/team/meetings) and the [PDLC](https://wiki.teletypegames.org/team/pdlc) development lifecycle.
- **Projects** — [Definitely Not an Impostor](https://wiki.teletypegames.org/projects/impostor) and [Underwater Sun Rising](https://wiki.teletypegames.org/projects/realworld), the two games of the Norman Arc, with the [Neumatronic Universe](https://wiki.teletypegames.org/projects/neumatronic-universe) lore behind them; [Rabbit Roller](https://wiki.teletypegames.org/projects/rabbitroller) and its C64 port [Rabbit Scooter](https://wiki.teletypegames.org/projects/rabbitc64); [Blessing of Ra](https://wiki.teletypegames.org/projects/blessingofra) and the [C64 Demo](https://wiki.teletypegames.org/projects/c64-demo).

---

# Others

| Page | What it is |
|---|---|
| [Discord Updater Bot](https://wiki.teletypegames.org/services/updater) | Polls the wiki, Redmine and Gitea and announces new activity on Discord |
| [Discord Thread Scheduler](https://wiki.teletypegames.org/services/statusbot) | Opens the weekly meeting thread at a set time |
| [Paper Sketch](https://wiki.teletypegames.org/development/paper-sketch) | A guide to designing a game on paper before touching a tool |
| [Useful materials](https://wiki.teletypegames.org/development/useful-materials) | Curated indie articles, films and funding sources |

---

# Where to start

- **Starting a game?** Pick a platform above; each page ends with the pipeline that publishes it.
- **A release is missing something?** [WarpEngine](https://wiki.teletypegames.org/engines/warp-engine) explains the asset kinds and the checklist that finds the gaps.
- **Putting the games on a retro box?** [Stores](https://wiki.teletypegames.org/stores).
- **Joining the team?** [Accounts](https://wiki.teletypegames.org/team/accounts) and [Communication](https://wiki.teletypegames.org/team/channels), after signing in.
- **Something the wiki names and you have never heard of?** The [Technologies](https://wiki.teletypegames.org/technologies) register lists every language, tool and library with a link to where it is used.
- **How this wiki itself works?** [Wiki Site](https://wiki.teletypegames.org/services/wiki-site).

# Around the wiki

[Gitea](https://git.teletypegames.org) · [Woodpecker CI](https://ci.teletypegames.org) · [teletypegames.org](https://teletypegames.org) · [Redmine](https://pm.teletypegames.org) · [Uptime Kuma](https://uptime.teletypegames.org) · [ResourceSpace](https://assets.teletypegames.org)

'; var prevLevel = 2; for (var i = 0; i < headings.length; i++) { var h = headings\[i\]; var text = h.textContent.trim(); var slug = text.toLowerCase() .replace(/\[áàâä\]/g,'a').replace(/\[éèêë\]/g,'e').replace(/\[íìîï\]/g,'i') .replace(/\[óòôöő\]/g,'o').replace(/\[úùûüű\]/g,'u') .replace(/\[^a-z0-9\]+/g, '-').replace(/^-|-$/g, ''); if (!slug) slug = 'heading-' + i; if (used\[slug\]) { slug += '-' + i; } used\[slug\] = true; h.id = slug; var level = parseInt(h.tagName.charAt(1)); var cls = level > 2 ? ' class="toc-child"' : ''; html += '- [' + text + '](#'%20+%20slug%20+%20')
'; } html += '
'; toc.innerHTML = html; // Scroll-spy: highlight current heading var links = toc.querySelectorAll('a'); var ids = \[\]; for (var j = 0; j < links.length; j++) ids.push(links\[j\].getAttribute('href').slice(1)); function updateActive() { var current = ''; for (var k = 0; k < ids.length; k++) { var el = document.getElementById(ids\[k\]); if (el && el.getBoundingClientRect().top <= 80) current = ids\[k\]; } for (var m = 0; m < links.length; m++) { links\[m\].parentNode.classList.toggle('active', links\[m\].getAttribute('href') === '#' + current); } } window.addEventListener('scroll', updateActive, { passive: true }); updateActive(); })();

---

## Navigation

- Previous: [Engines](https://wiki.teletypegames.org/engines.md)
- Next: [Infrastructure](https://wiki.teletypegames.org/infrastructure.md)
