`stores/warp-engine-desktop-store` és `stores/ttg-desktop-store` törölve: a motor a `warp-engine-client`be került (2.0.0), tehát nincs mit letölteni, és a 2.2.0 óta nincs mit konfigurálni sem kívülről — a registry-rekord csak név + katalógus, a store-onkénti szeparáció pedig almappa, amit a kliens a katalógus-hostból képzett slugból állít elő. A `repos.list` és a `WIKI_CONNECTION.md` táblája követi (két sorral kevesebb), a `REPO_REFACT.md` repófája a jelen állapotot mutatja, a történeti bejegyzések pedig maradtak — azok arról szólnak, ami akkor történt —, datált lezáró jegyzettel. 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 az asztali út, ami 2026-08-19-től nem repó: a motor a warp-engine-clientben van (az OS saját alkalmazás-menüje: .desktop, .app, Start menü), a warp-engine-desktop-store / ttg-desktop-store pár törölve. 2026-08-18-ig a store-repók 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.
Grafikus kliens és store-registry (2026-08-18): stores/warp-engine-client Electron-ablak a desktop store CLI fölé, és hozzá a services/teletypegames-ben egy Store modell + publikus GET /api/stores végpont ActiveAdminnel. A kliens innen kérdezi, milyen store-ok vannak — tehát egy új store egy adatbázissor, nem egy app-kiadás. Szándékosan a host appban van, nem a WarpEngine-ben: a motor egy katalógust szolgál ki, és nem tudja, ki ad rá store-t.
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.