MORE_STORES item 2 is done: stores/warp-engine-desktop-store and stores/ttg-desktop-store. The write-up records what the implementation changed about the plan — chiefly that the `html` asset is not a downloadable archive but a hosted directory, so a browser title becomes a menu entry that opens its page rather than an offline install. Separately: `check-repos.sh` reported `infra/wiki-pages` as STALE while the repo was plainly there. Gitea caps a page at 50 items whatever `--limit` says, so `tea repo list --limit 1000` had been quietly returning the first 50 — invisible until today, when the estate reached 51 repos. The check now pages through, and fails loudly if the server returns nothing at all rather than declaring the whole workspace stale. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
12 KiB
TTG ökoszisztéma — mink van, mi kell még
Készült 2026-08-15-én, a 2026-08-15-i org-átszervezés utáni állapotra (lásd REPO_REFACT.md).
A cél: a TTG megoldásai együtt egy teljes játékfejlesztési ciklust fedjenek le — ötlettől a kiadáson át a kiadás utáni életig —, és minden fázisban kézzelfogható eszközt adjanak, ne csak dokumentációt.
A mérce a saját folyamatunk, a wiki PDLC oldala: Preparation → Development → Release → Post-launch. Az alábbi táblázat ezt veti össze azzal, hogy melyik fázisban van tényleg futtatható eszközünk.
| PDLC fázis | Fedő org | Eszköz? |
|---|---|---|
| Preparation / Concept | — | ✗ csak wiki-oldalak |
| Preparation / Admin | tools (devarea) |
~ részben, Redmine külső |
| Development / Infrastructure | build, internal |
✓ erős |
| Development / Implementation | engines, demos |
✓ erős |
| Release / Distribution | services, tools |
✓ web + Batocera |
| Release / Release party | services (botok), bbs |
✓ |
| Post-launch | — | ✗ letöltésszámláláson túl semmi |
A két véglet: a fejlesztés és a build fázis kiválóan ellátott, a ciklus két vége — a koncepció-fázis és a kiadás utáni visszacsatolás — viszont eszköz nélkül áll.
engines — a fejlesztés alapjai
Van: warp_engine (Rails engine: katalógus, publikáló API, ActiveAdmin), rubbs (Telnet BBS keretrendszer), inkwell (Go point'n'click DSL), gorpg (Ebitengine RPG motor).
Erősség: a warp_engine valódi termék — mountolható, konfigurálható, saját tárolóadapterrel és CI-hívható publikáló felülettel. A warp-engine-batocera-store szétválasztása megmutatta, hogy a köré épülő eszközök is általánosíthatók.
Kiadva (2026-08-16):
-
inkwellv0.1.0 — modulnévgit.teletypegames.org/engines/inkwell,go get-tel lehívható. Ademos/inkwell-demomár a kiadott verziót használja,replacedirektíva nélkül; ez javította a demó CI-jét is, ami a testvérkönyvtárat váróreplacemiatt bukott. -
gorpgv0.1.0 — a modulnevemodule gamevolt, vagyis semmilyen néven nem lehetett rá hivatkozni; mostgit.teletypegames.org/engines/gorpg. -
warp_engine0.2.0 gem — fent van azenginesrubygems registryben (https://git.teletypegames.org/api/packages/engines/rubygems), Bundlerrel feloldható. A publikáló pipeline megvolt a monorepóban, csak sosem futott le; három elavult org-hivatkozást és egy hitelesítési hibát kellett javítani benne.
Hiányzik:
- Nincs audio- és bemenetkezelő könyvtár. A grafikai/narratív oldal le van fedve, a hang és a gamepad-absztrakció minden játékban újraíródik.
build — a CI gerinc
Van: hét toolchain repo (bevy-, c64-, ebitengine-, godot-, love-, phaser-, tic80-tools), mind közös Makefile-mintára; hozzájuk hét builder image az internal registryben; a pipeline-t a warp_engine config-extension szolgáltatása szolgálja ki központilag, tehát egy image-bump egy sor a services/teletypegames inicializálójában.
Erősség: ez a legérettebb részünk. Hét platform, egységes minta, központi konfiguráció — egy új játék .woodpecker.yaml-ja egyetlen sor (platform: ebitengine).
Hiányzik:
- A WarpEngine
pipelinestáblája hiányos. A Woodpecker 19 repót ismer és mind aktív, a/api/ci/pipelinesviszont csak 10-et mutat, elavult tulajdonossal. A tábla a felület, amin a CI állapotát nézzük, tehát félrevezet — a valóság awoodpecker-cli repo ls. - Négy build nem zöld (2026-08-16): a
bevy-demoabevy-builderimage miatt (a Dockerfile-ban ott apkg-config, a publikált image-ben nincs — újra kell építeni), abombexpertazldocmiatt (a Lua forrás dokumentációs kommentjei nem értelmezhetők), atrickster-tilespedig azért, mert a phaser pipelinesrc/*.js-t ellenőriz egy TypeScript projektben (javítva a sablonban, deploy után él). - Kétféle fájlnév él egymás mellett:
.woodpecker.yamlés.woodpecker.yml(impostor,mranderson). Apróság, de a keresést és a sablonozást megnehezíti. - Nincs kiadás-előtti ellenőrzés. A pipeline buildel és publikál, de nem futtat tesztet, lintet vagy méretkorlát-ellenőrzést.
games és demos — a tartalom
Van: 11 játék és 6 platformdemó. A katalógusban 15 bejegyzés: 5 released, 2 archived, 2 development, 6 demo.
Platform-lefedettség:
| Platform | Toolchain | Builder image | Demó | Kiadott játék | Aktív CI |
|---|---|---|---|---|---|
| c64 | ✓ | ✓ | ✓ (c64-demo) | 3 | ✓ |
| tic80 | ✓ | ✓ | — | 2 (+2 archivált) | ✓ |
| ebitengine | ✓ | ✓ | ✓✓ | 1 | ✓ |
| godot | ✓ | ✓ | ✓ (pong) | — | ✓ |
| phaser | ✓ | ✓ | ✓ | — (1 fejlesztés alatt) | ✓ |
| bevy | ✓ | ✓ | ✓ | — | ⚠ builder image elavult |
| love | ✓ | ✓ | ✓ | — | ✓ |
Hiányzik:
- Négy platformon nincs kiadott játék (godot, phaser, bevy, love). A teljes eszközlánc kiépült alattuk, de nem bizonyítja semmi.
- A demók nem sablonok. Mindegyik önálló repo, de nincs belőlük
create-from-templatemintarepo, se scaffolding parancs. Új játék indítása ma másolás-beillesztés. nyuller,realworld,c64-demo-cpp: se CI, se katalógus, se wiki-oldal. Elakadt vagy félbehagyott munkák — érdemes eldönteni, hogy élnek-e.- Névütközés: a katalógus szoftvernevei és a repo-nevek eltérnek (
bevydemo/bevy-demo,love2ddemo/love-demo), és két külön c64 demó fut hasonló néven (c64demoésc64-demo).
services — ami a szervereinken fut
Van: teletypegames (a publikus oldal monorepója: Rails katalógus-API + Vue SPA), statusbot és updater (Discord), social-updater (YouTube → Facebook/LinkedIn), blog-writer (wiki → Gemini → blog), redmine-tree.
Erősség: a kiadás utáni kommunikáció automatizált — új build, közösségi poszt, blogbejegyzés mind gépi úton megy.
Hiányzik:
- Nincs visszacsatolás a játékostól. A
warp_engineletöltést számol, de nincs értékelés, komment, hibabejelentő vagy telemetria. A PDLC „Post-launch" fázisa gyakorlatilag eszköztelen. - Nincs hírlevél vagy követés. Aki egyszer letöltött egy játékot, nem értesül a következő kiadásról.
- A
statusbotPascalban, a többi Go/Python/Ruby — négy nyelv négy bothoz, közös keretrendszer nélkül.
stores — a katalógus a gazdaplatform könyvtárformátumában
Van: warpstore (a közös mag, az engines alatt) + három motor és a rájuk épülő három store-unk: warp-engine-batocera-store / ttg-batocera-store (EmulationStation, ROM-mappák, gamelist.xml), warp-engine-retroarch-store / ttg-retroarch-store (RetroArch .lpl playlistek, borítóképek) és warp-engine-desktop-store / ttg-desktop-store (az OS saját alkalmazás-menüje: .desktop, .app, Start menü). 2026-08-18-ig a tools orgban voltak.
Erősség: a Batocera store a mintapélda arra, hogyan válik egy belső eszközből általánosan használható termék — bárki felhúzhat saját store-t a saját katalógusára. A második motor ezt igazolta: a közös rész kiemelése után egy új gazdaplatform egy adapter plusz egy konfiguráció, nem új program.
Hiányzik:
- A
htmlcsak online megy. Az asztali store menü-bejegyzést ad hozzá, de az a kiszolgált oldalt nyitja meg, mert ahtmlasset nem letölthető archívum. Offline webes játékhoz awarp_engine-nek zip-ben is publikálnia kellene. - Windowson és Linuxon senki nem próbálta még az asztali store-t valódi gépen.
- A demók nélkül az asztali store négy címet vinne, ezért ott be vannak kapcsolva; a cartridge-store-okon ez a döntés semmit nem változtat (nincs
demostátuszú cartridge).
tools — amit az ember magának telepít
Van: ttg-marketplace (Claude plugin marketplace), devarea (workspace-kezelés), tic80-draw-image (vendorolt).
Hiányzik:
- Nincs projekt-scaffolder. A
devareaa workspace-t kezeli, de nincsttg new game --platform godotjellegű parancs, ami a demót, a Makefile-t, a.woodpecker.yaml-t és a Redmine-projektet együtt felhúzza. Ez az egyetlen eszköz, ami abuildés agamesközti szakadékot áthidalná. - Nincs helyi fejlesztői környezet dobozolva. A builder image-ek CI-re valók; lokálisan mindenki maga rakja össze a toolchaint.
bbs — a közösségi felület
Van: bbs-server (a rubbs-ra épülő Telnet BBS), sermo-bbs (SERMO-DOS showcase), impostor-bbs (a Neumatronic Universe 1.5-ös „játéka").
Erősség: ez a márkánk egyedi arca — retró csatorna, ami egyben a rubbs referenciamegvalósítása és NU-tartalom is.
Hiányzik:
- A BBS nincs összekötve a katalógussal. Nem lehet rajta böngészni vagy letölteni a játékainkat, pedig a
warp_engineAPI pont ezt adná — awarp-engine-batocera-storemintájára egy „BBS store" modul kézenfekvő lenne.
infra — az üzemeltetés
Van: nginx-conf, backup-scripts, wiki-pages (Grav wiki + fetcher + BBS front-end).
Hiányzik:
- Nincs verziózott deploy. A
nginx-confés a backup szkriptek megvannak, de nincs infrastruktúra-leíró (Ansible/Terraform/Compose-gyűjtemény), amiből a teljes kiszolgáló újraépíthető. - Nincs a repóban monitorozás. Az Uptime Kuma külső szolgáltatás, a konfigurációja nincs verziózva.
- Az
internalorg megmaradt a builder image-ek névtereként; a csomagok nem költöztek a repókkal. Amíg nincsenek újrapublikálva abuildalá, ez a névtér nem szűnhet meg.
Ami a ciklusból teljesen hiányzik
Ez a három nem illeszthető egyetlen meglévő orgba sem — új org vagy új repo kellene hozzájuk.
1. Asset-készítés (assets). A wiki dokumentálja a LibreSprite-ot és a Pixeloramát, a tic80-draw-image vendorolt harmadik féltől — de saját asset-eszközünk nincs. Nincs paletta-készlet, sprite-konverter, tilemap-exportáló, hangkonverter. Minden platformnak más a formátuma, és ezt ma kézzel hidalja át mindenki. Ez a legnagyobb egybefüggő hiány a láncban.
2. Koncepció-fázis (design). A PDLC szerint itt dől el a sztori, a műfaj és a technológia. Van hozzá wiki (Neumatronic Universe, paper-sketch), de nulla eszköz: nincs game design dokumentum-sablon, nincs a technológiaválasztást segítő döntési segédlet (pedig hét platformunk van, és a választás következményeit a /builds mátrix már ismeri).
3. Post-launch. Nincs analitika, visszajelzés-gyűjtés, patch-folyamat vagy játékos-kommunikáció. A warp_engine letöltés-statisztikája az egyetlen adatunk arról, mi történik a kiadás után.
Javasolt sorrend
Hatás szerint, nem nehézség szerint.
- A négy nem zöld build rendbetétele, és a WarpEngine pipeline-szinkron lefuttatása, hogy a
/api/ci/pipelinesa valóságot mutassa. A demók bekötve vannak — a korábbi feltevés, hogy hiányoznak, a hiányos táblából jött. - Projekt-scaffolder a
toolsorgba. Abuildés agamesközti kézi lépéseket szünteti meg, és a demókat sablonná lépteti elő. assetsorg és az első konverter. A leghosszabb út, de a legnagyobb napi megtakarítás.Csomagpublikálás— kész (2026-08-16):inkwellv0.1.0,gorpgv0.1.0 és awarp_engine0.2.0 gem kiadva, mindhárom külső projektből ellenőrizve.- Kiadott játék a godot / phaser / bevy / love platformra. Négy kiépített lánc várja, hogy bizonyítson.
- Post-launch visszacsatolás — értékelés vagy hibabejelentés a katalógusban,
warp_enginebővítésként, hogy minden WarpEngine-es oldal megkapja.