EN /HU | Belépés

Teletype BBS

A Teletype BBS a Teletype Games BBS-hálózatának klubháza: telnetes, Synchronet-stílusú hirdetőtábla üzenőfalakkal, levelezéssel, chattel és azokkal a doorokkal, amelyek csak itt élnek.

Elérhető: teletypegames.org:2323

Áttekintés

Ruby alkalmazás a rubbs gemre építve, ami a saját BBS-keretrendszerünk — ez adja az ANSI-felületet, a menüsort, az egymásra tornyozott modális ablakokat, a Telnet-szervert és az xterm egértámogatást. A teletype-bbs repóban csak a Teletype-specifikus részek vannak: a domain (a tárolóikhoz kötött szolgáltatások), a modern arc ablakai és menüi, a PETSCII-arc, a doorok és a karakterek.

A hálózat első boardja volt, ezért egykor minden Teletype Games-tartalom belekerült. 2026-11-01 óta a közösség és a csak itt élő doorok maradtak benne; amit egy másik board visz, azt nem ismétli meg, csak megmutatja, hol van:

Ha ezt keresed Itt van
a játékaink és fájljaink (C64, Plus/4; ZMODEM, XMODEM) WarpEngine BBS, teletypegames.org:2329
a wiki: útmutatók, how-tok, a DOS-sarok TTG Wiki BBS, teletypegames.org:2325
a blog TTG Blog BBS, teletypegames.org:2328
ANSI- és PETSCII-art Pixelia BBS, teletypegames.org:2332
a Definitely not an Impostor játék utáni terminálja Impostor BBS, teletypegames.org:2324
Wikipédia, hírcsatornák, könyvek, a C64-es játéklexikon Alexandria BBS 2326, Feedia BBS 2327, Scriptorium BBS 2330, Commodex BBS 2331
mindegyik egyetlen portról TTG Gate BBS, teletypegames.org:2399
az FTP-fa régi gépeknek ftp.teletypegames.org, sima HTTP-n pedig archive.teletypegames.org

A Board > BBS Network (és a Help > Where are the games, files, wiki?, C64-en az N) ezeket a klubház falán lógó várostérképen mutatja, és a TTG Master is ugyanezt válaszolja.

2026-11-01 óta a board úgy is néz ki, ami: klubház (lásd lent: A klubház). A hívás a régi módon indul: a modem tárcsáz és kapcsol (CONNECT 38400/ARQ/V42BIS), utána a hívó a bejáratnál áll: az ajtó a lámpája alatt, a csengő, a fogason a bent lévők kabátjai, és a nyitott vendégkönyv a legutóbbi három vendéggel és a bejegyzés sorszámával (a hívó sorszáma). A nevet (üresen hagyva Anonymous) és a regisztrált név jelszavát a vendégkönyvbe írja; minden más név vendég. Utána jön a belépési szekvencia: Welcome back, a hívó sorszáma, a korábbi hívásaid (első, utolsó, összes idő), és a régi BBS-ek ellenőrzései — új levelek, új üzenetek falanként az utolsó olvasásod óta, a szavazásaid —, végül a nap idézete, egy csapattag mottója. Az ENTER nyitja a teljes képernyős felületet az irányítópulttal (dashboard), a klubházzal az utcáról: kivilágított ablak minden bent lévő hívónak, füst a kéményből, amíg az élő chatben beszélnek, zászló a postaládán a leveleidnek, alatta ki van bent, a hirdetőtábla és a falfirka; pár másodpercenként frissül. A Board > Dashboard minden ablakot bezár, és visszahozza. Nyitott menünél az alsó sor elmondja, mit csinál a kijelölt menüpont. Minden ablak a menüje színét és ikonját viseli: Board halvány türkiz ☼, Messages zöld ✉, People rózsaszín ☺, Doors lazac ♫, You szürke ♥, Help sárga ¿. A Board > Log off (Alt-X) egyenként lekapcsolja a klubház lámpáit, a kabátjeggyel (a hívó sorszáma és a hívás hossza), egy tagline-nal, +++, ATH0, NO CARRIER.

Az állapotsor jobb oldalán a node, az óra és a bent töltött idő látszik.

Funkciók

A board

  • Irányítópult (Dashboard, Board) — a klubház az utcáról, élőben: az ablakok, a füst, a postaláda; az Inside now (a node-ok és a vendégkönyv, az utolsó hívók), az On the notice board (a közelgő események egy sávval, amely a nap közeledtével telik, az új cédulák a parafatáblán, a leveleid) és a oneliner-ekből álló falfirka. Annak a helyiségnek a kártyája, amelynek az ablaka nyitva van, a ház tetején ül.
  • Bulletins (Board > Bulletins…, Help > New to BBSes?) — számozott hirdetmények: a belépési hirdetőtábla (a board számokban, a legújabb posztok, mi jön, az utolsó hívók, a fal), About Teletype Games, Coming up, a BBS szabályai, New to BBSes? és a BBS-hálózat.
  • Dev Log (Board) — a git.teletypegames.org összes szervezetének nyilvános aktivitása: pushok a commit-üzenetekkel, tagek, release-ek és új repók, a legújabb elöl. A Gitea API-ból anonim módon olvassa, így a privát repók sosem jelennek meg.
  • BBS Network (Board) — a várostérkép: a hálózat minden boardja egy épület a bbsweb-színében a klubház körül; a nyilak épületről épületre lépnek, a térkép alatt az, amit a kiválasztott visz, és hogy hogyan lehet átsétálni. A lista a bbsweb-bel és a sima HTTP-s FTP-fával egy hirdetmény. Gateway-doorja nincs: egy másik boardra úgy jut el a hívó, hogy felhívja, vagy a TTG Gate BBS-en át.
  • TTG Master (F1, a gomb az asztal sarkában, Help) — a sysop, aki a hívók kérdéseire válaszol a BBS-ről: mi hol van, mi jön, és a hálózat melyik boardja viszi azt, ami ebben nincs. A tényeket a kód keresi ki (a menük és a többi board tudástára, a legutóbbi kiadások, az események, a játékok), a modell csak megfogalmazza őket, és a kód ellenőrzi, hogy a válasz megtartotta-e a tényeket, és nem talált-e ki menüt; ha igen, a hívó magát a tényt kapja.

Közösség

  • Több üzenőfal — General / Tech / Off-Topic / Sysop, falanként egy CSV a data/boards/ alatt. Az új hozzászólások többsoros TextArea-ban készülnek, legfeljebb 1000 karakterrel. Regisztrált név esetén minden fal mellett ott az olvasatlan üzenetek száma.
  • Levelezés (Mail) (Messages > Mail…, F7) — privát levelek regisztrált nevek között: Write, Reply, Delete. A Feedback to the Sysop… levél a sysopnak, bárki írhatja, akinek van neve; minden sysop olvassa. A hívás közben érkező levél csenget. A Discord-csatornára csak az kerül, hogy visszajelzés jött, a tartalma soha.
  • Oneliners (Messages) — egysoros üzenetek fala, legfeljebb 64 karakterrel; névvel lehet írni, Anonymousként nem. A legújabbak az irányítópult alján futnak.
  • Élő chat — broadcast-csomópont, kb. 1 Hz-es lekérdezéssel, belépéskor előzményvisszajátszással; a C64-es hívók is benne vannak.
  • IRC #teletypegames — csak olvasható ablak a Libera.Chat-en lévő csatornánkra, azzal, hogyan lehet belépni.
  • Voting Booth (Messages) — a lib/content/polls.yml szavazásai; egyet a katalógus tölt fel (a kedvenc Teletype Games-címed), egyet a doorok. Az eredmény sávdiagram; névvel lehet szavazni, és a szavazat módosítható.
  • Page the Sysop — hívásonként egyszer: csengő, egy sor az élő chatben és a Discordon; ha nincs bent sysop, levélírást ajánl.
  • Regisztrált nevek — a You > Register… jelszóhoz köti azt a nevet, amellyel beléptél; onnantól ez a név jelszót kér. Profil (aláírás / hely / honlap / jegyzetek) csak regisztrált névhez tartozhat.
  • Node-ok — minden hívó a legkisebb szabad node-ot kapja; a People > Who is Online mutatja a node-ot, a nevet, hogy mit csinál a hívó (a legfelső ablak vagy a door), és mióta van bent.
  • Hall of Fame, User Listing, Team (People), Your Stats (You) — a trófeás vitrin (arany-, ezüst- és bronzkupa a top hívóknak, posztolóknak és a Trivia-pontszámoknak, a többiek a vitrin alatt); a regisztrált nevek a hívásaikkal; a Teletype Games tagjai a mottójukkal; a saját számaid.
  • Utolsó betelefonálók — lásd lent: A botok kizárása.
  • Sysop-konzol — statisztikák és broadcast, a TELETYPE_BBS_SYSOPS listában szereplő, jelszóval belépett neveknek.
  • Discord-csatorna — az új faliposztok és a sysop-broadcastok a TELETYPE_BBS_DISCORD_WEBHOOK webhookra mennek, megemlítések (mention) nélkül.

Doorok — programok, amelyeknek a BBS átadja a telnetvonalat, és kilépéskor visszaveszi (a rubbs BBS::Door-ja). Csak az itt élő programok doorok. A Doors > Games Room… a klubház hátsó játéktermének öt állomásaként mutatja őket, egy lámpa ég afölött, amelyikben valaki bent van; a Doors > Door Lobby… mindet felsorolja: mi az, milyen képernyő kell hozzá, és ki van bent.

  • A SERMO egy SERMO-t futtató kettős gép a Neumatronic-univerzumból (a sermo-bbs repóból, sermo gemként): adj ki parancsot, vagy csak beszélgess vele; az EXIT visszavisz a BBS-be. Amit szavakkal mondasz, az a Lapis-ACP-hez megy: egy kis helyi modell (Qwen3.5 0.8B) az 1977-es kánon personájával. Lassú, szűkszavú, és néha téved, részben szándékosan.
  • Commodore 64 és Commodore Plus/4 — a gép a READY. promptnál (kék C64-, szürke Plus/4-képernyő, 40 oszlop), egy kis BASIC V2-vel: a 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 kirajzolja a labirintust, bármelyik billentyű RUN/STOP. A lemezen az adott gépre készült játékaink vannak: a LOAD"$",8 és a LIST megmutatja a directoryt (a blokkszám a valódi .prg-méretből, az FTP-szerver /WARP mappájából, mert a katalógus-API nem ad méretet), a LOAD"NÉV",8 (joker karakterrel is) betölt egy játékot, a LIST megmutatja, a RUN kiírja az adatlapját a katalóguslinkkel. A Plus/4 a DIRECTORY-t és a DLOAD-ot is ismeri; a SYS 64738 újraindítja a C64-et; az EXIT visszavisz a BBS-be.
  • Chat of Ra — te vagy a Blessing of Ra piramisába zárt munkás, és a napisten felülről válaszol. A szabad szöveg a modellhez megy Ra szerepében; a RIDDLE a piramis egy talányát adja fel, amit a kód ellenőriz (HINT, SKIP); három megfejtés után Ra megáld. A GAME megmondja, hol a játék.
  • TTG Trivia — a régi fajta door-játék: tíz kérdés a Teletype Gamesről és a régi időkről, kérdésenként 20 másodperc, A–D; a gyors válasz többet ér, három jó egymás után sorozatbónuszt hoz. A kérdések egy része a katalógusból és a csapatból készül, a többi a lib/content/trivia.yml-ből; a legjobb tíz játék a dicsőségtáblája.

Technikai

  • xterm egér — kattintható menük, gombok és listaelemek, görgethető listák.
  • Tétlenségi bontás 10 perc után.
  • Perzisztens állapot — az üzenőfalak, a betelefonálási napló, a profilok, a fiókok, a levelek, az olvasási jelzők, a szavazatok és a Trivia-pontszámok CSV-fájlok a data/ alatt, ami Docker-kötet, így túlélik az újraindítást.

A C64-es arc

A Commodore 64 (CCGMS, StrikeTerm, C64-módú SyncTERM, vagy WiFi-modem mögötti C64) PETSCII-ben kapja a boardot, 40×25-ön. A képek (a bejárat, a főmenü, a várostérkép, a játékterem, a vitrin, a helyiség-kártyák, a távozás) a C64 nagybetűs/grafikus karakterkészletében készülnek, egyszer az egész képernyő, utána csak ami változik; az olvasó képernyők (posztok, levelek, chat, hirdetmények, a Master) a kisbetűs készletben maradnak. A főmenü a klubház: fent a ház, ugyanabból a jelenetből kivilágítva, mint a modern arcon, alatta ki hív és mi jön, és a helyiségek kurzoros menüként: M Cork board, E Mailbox, O Graffiti wall, L Sofa chat, I Radio (IRC), P Ring the bell, U Notice board, D Workshop, C Guestbook, H Trophies, V Ballot box, S You, R Games room, N Town map, T Ask the bar (a TTG Master), Q Leave; ? súgó, Y rendszerinfó. Egy olvasó helyiség hívásonként egyszer megmutatja a kártyáját. A játékteremben a C64 és a Plus/4 nyitható; a SERMO, a Chat of Ra és a TTG Trivia 80 oszlopot kér, ezek a modern arcon vannak. A játékaink XMODEM-mel jutnak C64-re a WarpEngine BBS-ről.

A * a képek helyett a régi, sima szöveges menüt adja, és vissza; akinek a neve csupa nagybetűvel érkezik, az rögtön ezt kapja, mert az UltimateTerm (a C64 Ultimate terminálja) ANSI-módban felcseréli a kis- és nagybetűt, és a grafikát sem tudja megjeleníteni.

A klubház

A board a hálózat klubháza: nem könyvtár és nem raktár — azok a város többi épülete —, hanem ahová az ember beül, beírja a nevét a vendégkönyvbe, megnézi, ki van bent, üzen a többieknek, és hátul játszik egyet. Minden nagy képen van valami a board saját adataiból (a node-ok, a chat, a levelek, az új posztok, a foglalt doorok, a vendégkönyv, az események, a fal), mindkét arcon ugyanaz; külső lekérdezés nincs, a várostérkép statikus.

Menü (modern) Helyiség (C64-billentyű) Élő elem a képen
a belépés a bejárat: ajtó, lámpa, csengő, vendégkönyv az utolsó három vendég, a bejegyzés sorszáma, a kabátok a fogason (a node-ok)
Board > Dashboard a klubház az utcáról kivilágított ablak node-onként, az ajtó és a lámpa, füst a kéményből (chatsor az utolsó percben), a postaláda zászlaja és a levelek száma
Messages > Boards… a parafatábla (M) az új cédulák
Messages > Mail… a postarekeszek (E) a zászló a postaládán
Messages > Oneliners a falfirka (O) a fal a ház alatt
Messages > Live Chat a kanapésarok (L) a füst
People > Who is Online, Last Callers a vendégkönyv (C) —
People > Hall of Fame a trófeás vitrin (H) a nevek a kupákon
Board > Bulletins…, Dev Log a hirdetőtábla (U), a műhely (D) —
Board > BBS Network a várostérkép (N) statikus
Doors > Games Room… a játékterem (R) lámpa a foglalt állomások fölött
Help > Ask the TTG Master a pult (T) —
Log off távozás (Q) kialvó lámpák, a kabátjegy

A ház Budapest napszakát követi (hajnal, nappal, alkony, éjjel) és az évszakot: hó decembertől februárig, tök október utolsó hetében, tűzijáték szilveszterkor, zászlófüzér a game jam napjain.

Az irányítópult: a klubház az utcáról

A bejárat a vendégkönyvvel

A várostérkép: Board > BBS Network

A játékterem: Doors > Games Room

A trófeás vitrin: People > Hall of Fame

Távozás: kialszanak a lámpák

Az évszakok a házon: hó, tök, tűzijáték, zászlófüzér

C64-en ugyanezek a helyiségek, külön PETSCII-ben rajzolva:

A C64-es főmenü

A C64-es bejárat

A C64-es várostérkép

A C64-es játékterem

A C64-es trófeás vitrin

Távozás C64-en

Az évszakok a C64-es házon

A képek a rubbs BBS::Art YAML-formátumában vannak a lib/content/art/ alatt, kétszer, gépenként külön rajzolva: a modern/ 437-es kódlappal és 256 színnel, a c64/ a C64 nagybetűs/grafikus készletével. Azok a cellák, amelyeket a board az adataiból tölt ki, a kép hotspotjai; az évszakok rétegek, napszakonként egy. A rubbs art-preview-ja rajzolás közben ellenőrzi a képet (ANSI a terminálon, a PETSCII-bájtok, C64-es képernyőkép). A várostérkép a lib/content/network.yml-ből dolgozik: minden board a nevével, portjával, épületével, színeivel és az épülete helyével; új board = egy új sor és a két épülete (building_ID.yml, 12×4 és 3×3).

A C64-es vonal lassú, ezért a képeknek bájtkeretük van, a bin/c64-bytes méri: a főmenü minden napszakban és évszakban 1105–1123 bájt (legfeljebb 1,2 KB), a sáv egy lépése 146–205, egy füstpamacs kb. 60, a bejárat kb. 1,1 KB, a várostérkép 1000 (egy lépés 161–209), a játékterem 770, a vitrin 609, egy helyiség-kártya 231–265, a távozás 570, a lámpák egyenként 29–78 bájt alatt alszanak ki.

A botok kizárása

A 2323-as port nyitva van az internet felé, ezért a telnetes jelszópróbálgató botok másodpercenként hívják, és root, admin és hasonló neveket gépelnek be. 2026-10-20-ig mind bekerült az utolsó betelefonálók közé. Most:

  • egy hívás csak akkor látszik online-nak, és csak akkor kerül a naplóba, ha a terminál elküldte az ablakméretét (telnet NAWS) — a valódi kliensek és a bbsweb ezt megteszik, a botok nem;
  • a hívás a végén kerül a naplóba, és csak ha legalább 10 másodpercig tartott;
  • a név betűvel vagy számjeggyel kezdődik, és csak betűt, számjegyet, szóközt, ., _ és - jelet tartalmazhat; minden más (GET / HTTP/1.1) Anonymous lesz.

Menük és billentyűk

Menü Elemek
Board Dashboard · Bulletins… · Dev Log · System Info · BBS Network · Log off
Messages Boards… · New Post… · Mail… · Oneliners · Live Chat · IRC #teletypegames · Voting Booth · Feedback to the Sysop… · Page the Sysop
People Who is Online · Last Callers · User Listing · Hall of Fame · Team
Doors Games Room… · Door Lobby… · SERMO · Commodore 64 · Commodore Plus/4 · Chat of Ra · TTG Trivia
You Your Stats · Profile… · Register… · Sysop Console (csak jelszóval belépett sysopoknak)
Help Ask the TTG Master… · What is coming up? · Where do I start? · Where are the games, files, wiki? · Which doors are there? · New to BBSes? · Keys · About

Minden menüpontnak van súgója: amíg ki van jelölve, az alsó sor elmondja, mit csinál.

Billentyű Művelet
Alt+betű A megfelelő felső menü megnyitása
F10 A legbaloldalibb menü megnyitása
F1 Kérdés a TTG Masternek
F2 Üzenőfalak
F3 Gyors hozzászólás
F4 Chat
F7 Levelezés (Mail)
Alt-X Kilépés (Log off)
Tab / Shift-Tab Fókuszléptetés az ablakon belül
Enter A fókuszált gomb aktiválása / beküldés
F5 / Alt-Enter Teljes képernyő és vissza a sok tartalmú ablakoknál; ugyanezt teszi a címsor [↑] / [↕] gombja vagy a dupla kattintás a címsoron
F6 / Shift-F6 A következő / előző ablak előrehozása; egy ablakra kattintás is előrehozza
Alt-1 … Alt-9 Az adott számú ablak előrehozása (a szám a felső keret jobb oldalán)
Ctrl-F5 Ablak mozgatása a nyilakkal, méretezése Shift+nyilakkal (a Tab vált), az Enter befejezi (az F6 is, amíg ez az egyetlen ablak); egérrel a címsort vagy a ┘ sarkot kell húzni
betű / Alt+betű Megnyomja az ablak azzal a gyorsbillentyűvel jelölt gombját (szövegmezőben Alttal)
Esc A legfelső ablak vagy menü bezárása

Konfiguráció

Másold az env-example fájlt .env néven:

Változó Alapérték Leírás
BBS_PORT 2323 TCP-port.
TELETYPE_BBS_SYSOPS üres Sysop-nevek vesszővel elválasztva. A fiókjuk csak a bin/account-tal hozható létre.
TELETYPE_BBS_DISCORD_WEBHOOK üres Discord-webhook az új posztokhoz és a sysop-broadcastokhoz; üresen kikapcsolva.
TELETYPE_BBS_ACCOUNTS_PATH data/accounts.csv Regisztrált nevek sózott PBKDF2-SHA256 hash-sel, 600-as fájlmóddal.
TELETYPE_BBS_BOARDS_PATH data/boards Falankénti CSV-fájlok.
TELETYPE_BBS_MESSAGES_PATH data/messages.dat Örökölt, egyfalas fájl; az első futáskor átkerül a General falra.
TELETYPE_BBS_LAST_CALLERS_PATH data/last_callers.csv Befejezett hívások.
TELETYPE_BBS_PROFILE_PATH data/profiles.csv Felhasználói profilok.
TELETYPE_BBS_ONELINERS_PATH data/oneliners.csv Az oneliners fal.
TELETYPE_BBS_MAIL_PATH data/mail.csv Privát levelek és visszajelzések, 600-as fájlmóddal.
TELETYPE_BBS_LAST_READ_PATH data/last_read.csv Melyik regisztrált név meddig olvasta az egyes falakat.
TELETYPE_BBS_VOTES_PATH data/votes.csv A Voting Booth szavazatai.
TELETYPE_BBS_TRIVIA_SCORES_PATH data/trivia_scores.csv A TTG Trivia játszmái.
TELETYPE_BBS_FTP_HOST ftp.teletypegames.org Az FTP-szerver, amelynek /WARP mappájából a Commodore-doorok a játékok blokkszámát veszik.
TELETYPE_BBS_IRC_SERVER irc.libera.chat A csak olvasható csatornaablak IRC-szervere (TLS); üres = kikapcsolva.
TELETYPE_BBS_IRC_PORT 6697 A TLS-portja.
TELETYPE_BBS_IRC_CHANNEL #teletypegames A csatorna, amit a board hallgat.
TELETYPE_BBS_IRC_NICK ttgbbs A board nickje ott; ha foglalt, ttgbbs_.
TELETYPE_BBS_IRC_PASSWORD üres A nick NickServ-jelszava (SASL PLAIN); üres = nincs bejelentkezés.
SERMO_LLM_URL a compose állítja A SERMO modellje, http://llm:8080; üresen csak beégetett válaszok.
SERMO_LLM_MODEL a compose állítja A modell neve a modellszolgáltatásban, qwen3.5-0.8b.
SERMO_LLM_API_KEY üres A SERMO kulcsa a modellszolgáltatáshoz; nélküle a SERMO beégetett válaszokat ad.
TELETYPE_BBS_LLM_URL / _MODEL / _API_KEY a SERMO-é Ra és a TTG Master modellje; ha nincs megadva vagy üres, a SERMO_LLM_* értéket használja.

Sysop-fiókok

A TELETYPE_BBS_SYSOPS listában szereplő nevet telneten nem lehet regisztrálni, így senki nem foglalhatja le elsőként. A fiókot — vagy bármelyik jelszó visszaállítását — a szerver shelljéből kell elvégezni:

BASH
docker exec -it teletype-bbs bin/account Tasi

Futtatás

BASH
docker compose up --build     # vagy Ruby 3.x-szel: bundle install && ruby bbs.rb
telnet localhost 2323

A compose egy konténert indít, a teletype-bbs-t. A SERMO mögötti modell, a Qwen3.5 0.8B, a szerver közös modellszolgáltatásában fut, az interstack hálózaton http://llm:8080-ként; amíg nem válaszol, a SERMO beégetett válaszokat ad. A docker-compose.dev.yaml ehelyett a BBS mellett tartja a modellt: egy teletype-bbs-acp konténer a llama.cpp llama-server-ével, kulcs nélkül.

Doorok

Egy door a TeletypeBBS#doors egy eleme (lib/domain/teletype_bbs.rb): a neve, a program, a címke a gyorsbillentyűjével, a legkeskenyebb képernyő, amire rajzol, és három szöveg (tag a C64-es listához, hint az állapotsorhoz, about a Door Lobbyhoz). A modern arc mindet deklarálja, és a Doors menüje magától felsorolja őket; a PETSCII-arc a 40 oszloposakat kínálja.

RUBY
Door.new(name: :c64, program: Commodore.os(Commodore::C64, games: @games, sizes: @warp_sizes),
         label: '&Commodore 64', cols: 40, tag: 'c64 + our games',
         hint: 'A Commodore 64 at READY., with our C64 games on its disk: LOAD"$",8 lists them',
         about: 'A Commodore 64 at its READY. prompt, with a small BASIC V2. …')

Egy door lehet BBS::FakeOS-definíció (SERMO, a Commodore-ok) vagy hívható objektum. A sermo gem egy revízióra van rögzítve a Gemfile.lock-ban; az entrypoint induláskor csak a rubbs-t frissíti. A sermo-bbs változása után emeld meg a bundle lock --update sermo paranccsal, és élesíts újra.

Karakterek

Ra és a TTG Master a modellszolgáltatás Qwen3.5 0.8B modelljén fut, a rubbs BBS::AI-ján át. Egy ilyen kis modell jó egy rövid, karakteres válaszban, de rossz a tényekben, ezért a tényeket a kód tartja: Ra talányait és a játék címét a kód adja, a deflect szabályok megválaszolják, amit a modell bárhogy kérdezve elrontana (kód, vers, „bot vagy?”), a Master megfogalmazását pedig a kód a tényekhez méri, mielőtt megjelenik. A Master tudástára (lib/characters/master_knowledge.yml, a C64-es archoz master_knowledge_c64.yml) csak az ezen a boardon lévő dolgokhoz ad menüutat; amit egy másik board visz, ahhoz a board nevét és portját.

A personákat méréssel hangoljuk, nem egy-egy válasz alapján: a bin/persona-eval ra|master|master_c64 3 többször felteszi a mérőkérdéseket (lib/characters/eval/), és megszámolja a hibákat: szerepből kiesés, markdown, túl hosszú válasz, a Masternél tévesztés (rossz menüút vagy elveszett tény).

BASH
docker exec teletype-bbs bin/persona-eval master 3

Projektszerkezet

TEXT
bbs.rb                       belépési pont: a terminál-kérdés, utána az egyik arc
bin/account                  fiók létrehozása / jelszó visszaállítása
bin/persona-eval             egy karakter hibáinak számolása sok futáson át
bin/c64-bytes                a C64-es képek bájtjai a vonalon
lib/
  domain/teletype_bbs.rb     a board: a tárolóikhoz kötött szolgáltatások, a doorok,
                             a hálózat listája, amit egy hívás több szolgáltatáson át tesz
  domain/
    repository/              node-ok, falak, katalógus, site (események, tagok), fiókok,
                             utolsó betelefonálók, profilok, oneliners, FTP (fájlméretek),
                             Gitea, levelek, olvasási jelzők, szavazatok, a hálózat
                             (várostérkép); http_json (GET + 5 perces cache)
    service/                 online, fal, játékok, site, fiók, chat, IRC, utolsó betelefonálók,
                             profil, oneliner, WARP-méretek, dev log, discord_notifier,
                             levelezés, szavazás, tagline-ok, hálózat, jelenet (amit
                             a klubház képei mutatnak, mindkét arcnak)
    model/                   értékobjektumok (MessageModel, GameModel, …)
  doors/commodore.rb         a C64- és a Plus/4-door; a commodore/basic.rb a BASIC-jük
  doors/ra.rb                Chat of Ra
  doors/trivia.rb            TTG Trivia
  content/                   szavazások, Trivia-kérdések, tagline-ok, hirdetmények, network.yml
  content/art/               a klubház képei: modern/ (cp437) és c64/ (PETSCII)
  characters/                Ra és a TTG Master: personák, talányok, tudástár, mérőkérdések
  ui/arts.rb                 a képek betöltése és tárolása
  ui/modern.rb               a modern arc: modem, bejárat, ablakok, menük, doorok
  ui/modern/                 az irányítópult, a kép-helyiségek (várostérkép, játékterem),
                             a bejárat, a távozás, a kártyák, a vitrin, a formázók
  ui/petscii.rb, ui/petscii/ a C64-es arc: bejárat, a klubház képei
                             (petscii/clubhouse.rb), az olvasó szekciók
data/
  boards/<id>.csv            falankénti üzenetek (automatikusan jön létre)
  last_callers.csv           befejezett hívások
  profiles.csv               felhasználói profilok
  accounts.csv               regisztrált nevek
  oneliners.csv              az oneliners fal
  mail.csv, last_read.csv,
  votes.csv, trivia_scores.csv

Repó

https://git.teletypegames.org/bbs/teletype-bbs