Werkstattbuch / FABULA C64 & Amiga
Aus der Werkstatt.
Was sich an FABULA ändert, Tag für Tag: an der Engine und an der Werkstatt, für den Commodore 64 und für den Amiga. Die C64-Fassung erscheint am 16. Oktober 2026 und ist seit dem 17. September im Test – der Umfang der ersten Ausgabe steht, gearbeitet wird an Fehlern und an der Bedienung, und was beim Bauen eines Spiels auffällt, kommt noch dazu –, die Amiga-Fassung steckt mitten in der Entwicklung.
-
FABULA C64 1.5 ist da
Seit heute gibt es FABULA C64 1.5 – ein kostenloses Update für alle Käufer, herunterzuladen wie gehabt auf itch.io. Projekte öffnen und bauen damit unverändert. Ein Haken für fertige Spiele: Die Räume liegen jetzt gepackt im Modul, und ein mit 1.5 neu gebautes Modul bietet alte Spielstände nicht mehr an – wer gerade mitten in einem Spiel steckt, spielt es am besten auf dem alten Modul zu Ende.
Dazugekommen sind über 100 Räume statt rund 45, zwölf Verben oder eine Leiste nur mit dem Inventar, Fragen mit Antworten, Erzählstimmen, Hires-Figuren, der MIDI-Import, ein GIF-Export und eine Werkstatt im neuen Aufbau mit Startseite, Vorlagen und den Zusammenhängen eines Spiels als Grafik – alles im Einzelnen im Eintrag darunter. Damit sind alle Wünsche aus dem Forum und dem Forum64 erledigt; neue sammelt der Wunsch-Thread im Forum.
-
Vorschau auf FABULA C64 1.5: Morgen ist es da
Seit 1.2 ist so viel dazugekommen, dass die nächste Fassung gleich 1.5 heißt – und mit ihr sind alle Wünsche aus den Foren erfüllt. Im Spiel liegen die Räume jetzt gepackt im Modul: über 100 statt rund 45, dazu bis zu 1020 Flags. Es gibt zwölf Verben in vier Spalten mit „Gib X an Y“, eine Leiste nur mit dem Inventar, eine Tasche mit 18 oder 24 Plätzen, Fragen mit bis zu sechs Antworten, Erzählstimmen, Dinge ohne Raum, Gespräche über Funkgerät und Telefon, längere Texte in Zwischensequenzen und einen Abspann mit Bild. Figuren dürfen ganz in Hires gezeichnet sein oder eine feine Hires-Kontur über der Mehrfarbfigur tragen.
Die Werkstatt hat einen neuen Aufbau mit vier Farbthemen, Projektbaum und Startseite, Objekte zieht man direkt im Raum auf, ein Suchfeld findet alles, und die Projektübersicht zeigt die Zusammenhänge eines Spiels als Grafik, mit Sprung in den Editor. MIDI-Dateien kommen als Musikstück herein, ein Gegenstand aus dem Raumbild wird mit einem Klick aufhebbar, und ein Raum mit seinen Animationen lässt sich als GIF speichern. Dazu zwei neue Beispiele, HAFENNACHT und DACHBODEN, und vier Vorlagen mit Bitmap-Räumen. FABULA C64 1.5 erscheint am Freitag, 30. Oktober 2026, und ist für alle Käufer kostenlos.
-
FABULA C64 1.2: Bitmap-Räume, weiches Scrollen und viele Wünsche
Ein Raum, der nicht scrollt, darf jetzt ein Multicolor-Bitmap nach Koala-Regel sein oder ein echtes Hires-Bitmap mit 320 Punkten und zwei Farben je Zelle – umgeschaltet wird mit einem Klick in der Leiste über der Malfläche, aus dem, was schon gemalt ist. Koala-Bilder kommen Punkt für Punkt aufs Titelbild, gepackte Koala- und Doodle-Dateien lassen sich importieren, und die Vorlage bleibt im Projekt: Ein Bild lässt sich später mit anderen Einstellungen neu wandeln.
Im Spiel scrollen breite Räume jetzt weich, Punkt für Punkt, RESTORE oder F1 öffnen ein kleines Menü mit Musik, Spielständen und Tasten, und Standardsätze dürfen mehrere Fassungen haben. Vieles davon kam aus dem Forum und dem Forum64: gleiche Namen für mehrere Türen, Wegpunkte als Zahlen, eigene Farben für die Leiste, ein Joystick mit Schwung und Magnet. Dazu eine Notsicherung und ein Absturzprotokoll. Projekte öffnen und bauen unverändert; 1.2 ist für alle Käufer kostenlos.
-
FABULA C64 1.1: mehr Platz für große Spiele
Beim Bau von SCHATTENFELS lief eine Ecke im Speicher des C64 voll: der Bereich ab $8000, in dem der Abspann und die Skripte der Dinge liegen, die man bei sich trägt. Am Ende waren dort noch 32 Bytes frei, und ein Abspann mit allen Rollen passte nicht mehr hinein. In 1.1 hat der Abspann eine eigene Bank im Modul und wird Zeile für Zeile von dort geholt, während er läuft – bis zu 204 Zeilen, ohne ein Byte im Speicher des Rechners. Was die Skripte getragener Dinge sagen, liegt jetzt ebenfalls im Modul, und die Tabellen dahinter führen nur noch Dinge, die so ein Skript wirklich haben. In SCHATTENFELS stieg der freie Platz dort von 32 Bytes auf rund 2,6 KB.
Dazu kommen zwei neue Einstellungen im Bildimport: ein Farbplan, der festlegt, welche C64-Farbe Holz, Stein, Flammen oder Himmel bekommen, und das Verkleinern ohne Mischfarben, bei dem jeder Punkt die häufigste Farbe seiner Umgebung nimmt. Behoben ist, dass ein Mausklick in Port 1 das Spiel anhalten konnte, und „Jetzt spielst du …“ lässt sich jetzt übersetzen. Projekte öffnen und bauen unverändert; 1.1 ist für alle Käufer kostenlos.
-
SCHATTENFELS: ein ganzes Spiel als Probe
Um zu sehen, wie weit FABULA trägt, haben wir ein ganzes Spiel damit gebaut: SCHATTENFELS, Kapitel 1 – neun Räume, zwei Spielfiguren, die man mit W wechselt, drei Rätselstränge nebeneinander, eigene SID-Musik, ein Hires-Titelbild, flackernde Kerzen und ein Kaminfeuer. Gebaut mit der Werkstatt, wie sie jeder hat, auf Deutsch und auf Englisch aus einem Projekt.
Der Bau hat gezeigt, wo es eng wird – der Speicher ab $8000, aus dem dann 1.1 wurde – und zwei kleine Fehler, die mit 1.1 zu allen kamen. Der Trailer ist live vom Commodore 64 Ultimate aufgenommen; das Spiel erscheint am 23. Oktober kostenlos.
-
FABULA C64 ist erschienen
Seit dem 16. Oktober gibt es FABULA C64 auf itch.io: die Werkstatt für Windows, macOS (Apple Silicon und Intel) und Linux – auf dem Steam Deck läuft sie ohne Proton –, die Engine samt eigenem Assembler, SENDESCHLUSS als komplettes Projekt zum Aufmachen und das Handbuch auf Deutsch und Englisch, als PDF auch kostenlos zum Reinlesen vor dem Kauf. Alles, was später auf die Seite kommt, bekommen Käufer ohne Aufpreis.
Der Release-Trailer ist live vom Commodore 64 Ultimate aufgenommen – Bild und SID direkt aus der Maschine.
-
Die letzten Tage vor dem Release
Was in der Woche vor dem 16. Oktober noch dazukam, kam fast alles aus dem Test. Das Titelbild darf jetzt Hires sein – 320 × 200 Punkte, je Zelle zwei der 16 Farben –, und der Speicher steht live in der Fußleiste, kurz nach jeder Änderung. Laufflächen lassen sich als Vieleck ziehen, und Alt+Klick zeigt den Weg, den die Figur nehmen wird.
Ein Testlauf startet auf Wunsch mit gewählter Tasche, gesetzten Flags und der Figur am gewünschten Ort. Die Projektübersicht listet alle Dinge mit Raum und Skripten, Türen kennen einen Ankunftspunkt, und im Skript zeigt ein Farbkästchen, in welcher Farbe jeder Satz im Spiel stehen wird.
-
Eine ruhige Zeile unter dem Raum
Stand der Mauszeiger im untersten Streifen des Raums, flackerte direkt unter dem Bild eine Pixelzeile in der Grundfarbe des Raums. Aufgefallen ist es beim Testen im Beispiel Promenade. Der Zeiger kostet in dieser Höhe ein paar Takte, und in manchen Bildern kam die Umschaltung auf den schwarzen Grund der Leiste dadurch einen Takt zu spät – für eine Zeile stand noch die Farbe des Raums da.
Statt dem einen Takt hinterherzulaufen, sorgt der Bau jetzt dafür, dass es auf ihn nicht mehr ankommt: Diese Zeile ist schwarz, ganz gleich, wann umgeschaltet wird. Wo nötig, legt er dafür ein eigenes Zeichen im Raumzeichensatz an.
-
Ein Weg, der erst frei wird
Aus dem Test kam die Frage nach einem Raum mit zwei Laufflächen, bei dem man die zweite erst betreten darf, wenn die tödlichen Piranha-Pudel schlafen. Dafür gibt es jetzt den Skriptbefehl „Lauffläche begehbar“ in der Gruppe Raum. Er sperrt eine Lauffläche des Raums oder gibt sie wieder frei, gezählt wie in der Liste der Laufflächen. In eine gesperrte Fläche führt kein Weg, ein Klick dorthin endet am Rand davor. Beim Betreten eines Raums sind alle Flächen frei; wer einen Weg gesperrt halten will, sperrt ihn im Raumskript. Das Handbuch zeigt es an einem Beispiel, die Prüfung meldet eine Nummer, die es im Raum nicht gibt, und Spiele ohne den Befehl bauen wie vorher.
Am selben Tag fiel eine Lauffläche auf, die nie begehbar war. Wer sie mit W über den Rand der Malfläche hinauszog, bekam Werte jenseits des Raums, im Test bis y 257. Das passt in kein Byte, beim Bauen wurde daraus 1, und die Fläche reichte „von 54 bis 1“ – ohne jede Meldung. Jetzt bleibt das Rechteck beim Ziehen im Raum, der Bau hält die Werte bei 255, und die Prüfung meldet eine Fläche, die unten so weit hinausragt.
-
„Beendet“ heißt jetzt: sofort
Eine Gesprächszeile mit dem Häkchen „beendet“ schließt das Gespräch – bisher aber erst gut drei Sekunden, nachdem ihre Antwort fertig war, nämlich wenn der letzte Satz abgelaufen war. Beim Testen ging so eine Figur mitten im Gespräch Bier holen, war längst aus dem Raum, und weiterspielen konnte man trotzdem noch nicht.
Jetzt kommen die Verben zurück, sobald die Antwort durchgelaufen ist. Der letzte Satz bleibt dabei in der Satzzeile stehen, bis er gelesen ist – so wie nach einer Szene.
-
Ein Lösungsweg, aus der Rätselkette gerechnet
„Projekt → Lösungsweg …“ schreibt einen Weg durchs Spiel auf: Raum, Verb, Ding, Gesprächszeile, und vor der ersten Benutzung eines Dings, wie man es bekommt. Gerechnet wird er aus der Rätselkette, er passt also immer zum Spiel, wie es gerade ist – ein möglicher Weg, nicht unbedingt der erzählte. Für eine Übersetzung steht er in deren Sprache; die Raumnamen übersetzt man im Fenster Sprachen. Kopieren und Speichern geben ihn an Spieler weiter.
Die erste Fassung folgte noch der Reihenfolge, in der die Kettenprüfung rechnet: Raum für Raum, so wie sie im Projekt stehen. In einem längeren Spiel begann der Weg damit in einem Raum mitten in der Geschichte statt in der Szene, mit der das Spiel anfängt. Jetzt geht er dort los, wo das Spiel losgeht, folgt Raumwechseln, die von selbst geschehen, und nimmt als Nächstes immer den Schritt, der über die wenigsten Türen zu erreichen ist. Was man bei sich trägt, kommt dran, wenn hier und nebenan nichts mehr zu tun ist.
-
Schrift im Bild, Abspann mit Vorschau
Das Werkzeug Schreiben (Taste T) öffnet jetzt ein Fenster mit Vorschau. Es schreibt mehrere Zeilen, in der Schrift des Spiels oder in einer eigenen schmalen Pixelschrift von 3 × 5 Punkten, die doppelt so viel Text in eine Zeile bringt. Breite und Höhe lassen sich getrennt von 1× bis 4× strecken, die Spielschrift lässt sich fett und kursiv setzen, dazu kommen Abstand, Zeilenabstand und ein Schatten in einer zweiten Farbe. Bisher gab es eine Größe und eine Schrift.
„Bearbeiten → Abspann“ zeigt rechts den Schirm so, wie das Spiel ihn zeigt: mittig, hellgrau auf Schwarz, im Zeichensatz des Spiels. Eine angeklickte Zeile erscheint dort, „Abspielen“ lässt den Abspann im Tempo des Spiels durchlaufen, und darunter steht die Dauer. Zeichen, die der C64 nicht hat, werden mit ihrer Zeile gemeldet. Schrift-, Grund- und Rahmenfarbe und das Tempo – langsam, normal, schnell – lassen sich jetzt wählen; die Vorschau zeigt es sofort, das Spiel baut es ein. Wer nichts ändert, bekommt den Abspann wie bisher.
-
Ein Spiel in mehreren Sprachen – SENDESCHLUSS auch auf Englisch
Unter „Projekt → Sprachen …“ steht jeder Text, den ein Spieler zu sehen bekommt: Verben, Namen der Dinge, „Schau an“ und Standardantworten, Gesprächszeilen, jeder Text aus den Skripten, die Engine-Texte und der Abspann. Links steht das Deutsch, rechts die Übersetzung; ein leeres Feld bleibt deutsch. Ein Zähler sagt, wie weit man ist, und über Exportieren und Importieren geht die Tabelle an jemanden, der übersetzt. Ändert man später einen deutschen Satz, zeigt das Fenster die alte Übersetzung als „verwaist“. Unter den Engine-Texten stehen jetzt auch die Wörter des Spielstandmenüs und die Mausmeldungen von F3; sie waren bisher fest eingebaut.
Gebaut wird je Sprache ein eigenes Modul: „Auf en bauen“ legt sendeschluss-en.crt neben sendeschluss.crt. Dingnamen und Verben ziehen in allen Skripten mit, und die Prüfung läuft auf der übersetzten Fassung. Hat ein Projekt eine Übersetzung, wird im Menü Spiel jeder Eintrag – Bauen, VICE, U64, Export – zu einem Untermenü: „Deutsch“ mit dem gewohnten Kürzel, darunter jede weitere Sprache. SENDESCHLUSS ist als erstes Spiel vollständig übersetzt, 345 Texte, die deutsche Fassung baut genau wie vorher. Dabei fiel ein festes Wort auf: Das „mit“ in „Benutze X mit Y“ stand auch im englischen Modul auf Deutsch da. Es ist jetzt ein Engine-Text, und SENDESCHLUSS sagt „with“.
-
PAL und NTSC: Das Modul stellt sich selbst um
Ein C64 aus den USA, aus Kanada oder Japan zeigt 60 Bilder in der Sekunde statt 50 und läuft mit einem etwas schnelleren Takt. Ein FABULA-Spiel lief dort bisher ein Fünftel zu schnell – Musik, Gehen, Lesezeit, Pausen, Wecker –, und jede Note klang 3,8 Prozent zu hoch.
Jetzt erkennt das Modul beim Einschalten, in welchem Gerät es steckt, und gleicht auf NTSC beides aus: gleiches Tempo wie auf PAL, richtige Noten, Klänge in ihrer Geschwindigkeit. Einstellen muss man nichts. Nicht ausgeglichen werden die Farben, die der NTSC-Chip etwas anders zeigt, und ein übernommenes fremdes SID: Es spielt im richtigen Tempo, aber 3,8 Prozent zu hoch. Jedes Spiel braucht dafür einmal ein neu gebautes Modul. Ausprobieren lässt es sich in VICE mit dem Modell auf NTSC oder auf dem Ultimate 64 über den „System Mode“.
-
Was man bei sich trägt, kommentiert die Spielfigur
Einen Text aus dem Skript eines Dings sagt die Spielfigur – so steht es im Handbuch, und so war es auch, solange das Ding im Raum lag. Trug man es bei sich, kam derselbe Satz als Erzählung: in der Farbe der Erzählung und ohne dass sich ein Mund bewegte. In SENDESCHLUSS traf das etwa „Schau an“ auf den Zettel in der Tasche.
Jetzt spricht auch dort die Spielfigur. Wo ein Skript mit „Spricht“ jemand anderen nennt, gilt das weiter. Betroffen sind nur Spiele, deren getragene Dinge eigene Sätze haben; alle anderen bauen wie vorher.
-
Das Handbuch zum Ausdrucken
Das Handbuch liegt jetzt auch als gesetztes PDF neben der Werkstatt, auf Deutsch und auf Englisch. Es hat eine Titelseite und ein Inhaltsverzeichnis mit Seitenzahlen, jedes Kapitel beginnt auf einer neuen Seite, oben steht das Kapitel, unten die Seitenzahl. Tabellen und Skriptbeispiele reißen nicht mitten im Umbruch auseinander, und im PDF-Programm springen Lesezeichen und Inhaltsverzeichnis per Klick an die Stelle. Im Handbuchfenster öffnet „Drucken / PDF …“ dieses PDF im PDF-Programm des Rechners. Der Wunsch kam aus dem Forum64.
Beim Abgleich des Handbuchs mit Engine und Werkstatt fielen Stellen auf, an denen die Werkstatt etwas anderes sagte oder tat, als das Spiel dann macht. Ein Gespräch hat höchstens sechs Zeilen, und zwar insgesamt, auch mit Bedingungen – der Hinweis riet bisher, weitere über Flags zu staffeln, was der Bau abweist; jetzt meldet es die Prüfung vorher. Animationszellen in der achten Zeichenzeile brauchen einen Zwilling für die Naht zur unteren Raumhälfte und zählen doppelt. Jede weitere Spielfigur kostet den Spielstand ein paar Räume, bei zwei Figuren 56 statt 59. Was nach dem Verschmälern eines Raums jenseits des rechten Randes liegt, meldet jetzt die Prüfung. Und unabhängig davon: Die eigene Ankunft einer Tür sprang bei jeder Änderung am Ding auf den Startpunkt des Zielraums zurück, schon ein Buchstabe in „Schau an“ genügte. Jetzt bleibt sie stehen, bis man das Ziel der Tür ändert.
-
Wer weiter vorn steht, verdeckt jetzt die Spielfigur
Ging die Spielfigur hinter einer Nebenfigur vorbei – etwa am Zaun entlang, hinter jemandem, der davor steht –, lag sie trotzdem vor ihr. Der C64 legt das Sprite mit der kleineren Nummer nach vorn, und die Spielfigur bekam immer die kleineren Nummern. Der Hinweis kam aus dem Forum64.
Jetzt bekommt eine Nebenfigur, deren Füße tiefer im Bild stehen als die der Spielfigur, die kleineren Nummern und liegt damit vorn; bei gleicher Höhe bleibt die Spielfigur vorn wie bisher. Das gilt, solange alle Figuren zusammen mit dem Zeiger in die acht Sprites passen – die Spielfigur und eine große Nebenfigur oder zwei kleine. Stehen mehr Figuren im Raum, teilt die Engine die Sprites zeilenweise auf, und dort bleibt es beim alten Vorrang, sonst könnten Figuren Teile verlieren. Spiele ohne Nebenfiguren bauen wie vorher.
-
Ausschneiden im Skript schneidet Befehle aus, nicht das Ding
Im Reiter „Skript“ eines Dings wollte man die Befehle eines Verbs mit Strg+X ausschneiden, um sie an ein anderes Ding zu hängen – und weg war das ganze Ding. Die Befehlsliste fing die Tasten ab, aber nur, solange sie selbst den Fokus hatte. Stand er in der Liste der Verben darüber, auf einer Auswahl oder einem Knopf, ging die Taste an „Bearbeiten → Ausschneiden“, und das schneidet das gewählte Ding aus. Ein Klick ins Menü tat das sogar, wenn die Befehlsliste den Fokus hatte.
Jetzt gelten Strg+X, Strg+C und Strg+V (auf dem Mac mit der Befehlstaste) in den Reitern „Skript“ und „Gespräch“ immer Befehlen, nie dem Ding, über die Tasten wie über das Menü: in der Befehlsliste den gewählten Befehlen, in der Liste der Verben allen Befehlen des gewählten Verbs, im Gespräch der Antwort des gewählten Satzes. So ziehen die Befehle eines Verbs um: Verb anklicken, Strg+X, am anderen Ding ein Verb anklicken, Strg+V. Ausschneiden und Einfügen sind außerdem ein eigener Schritt, den Strg+Z sofort zurücknimmt; war das Ausschneiden bisher der erste Schritt seit dem Öffnen, blieb Strg+Z einen Augenblick stumm.
-
Dateien ins Fenster ziehen
„Bild importieren“, „Aus Bogen …“, „Musikstück übernehmen“ und das Klänge-Fenster nehmen eine Datei jetzt auch an, wenn man sie aus dem Finder oder dem Explorer hineinzieht. Der Öffnen-Dialog bleibt zu – praktisch, wenn die Datei ohnehin offen daliegt, und bei einer Videoaufnahme zeigt er so nicht Seitenleiste und Ordner des eigenen Rechners. Angenommen wird nur, was das Fenster auch lesen kann: ein Bild ins Bildfenster, eine .sng oder .swm in den Musikimport, eine WAV ins Klänge-Fenster. Beim Klang wird der Dateiname zum Namen, wie beim Einlesen über den Dialog: Aus „Tor.wav“ wird „Tor“.
Dazu zwei Änderungen am Drumherum. Der Punkt, zu dem die Figur läuft, bevor sie an einem Ding etwas tut, heißt jetzt Wegpunkt statt Gehpunkt – im Werkzeug (weiter Taste G), in der Prüfung und im Handbuch; „Gehpunkt“ klang beim Erklären holprig, an den Projekten ändert sich nichts. Und das kleine Beispiel Musikwege liegt vorerst nicht mehr bei. Unter den Beispielen stehen jetzt Promenade, Proberaum und Meteor; die Wege zur Musik – eigener Musikeditor, GoatTracker, SID-Wizard, fremdes SID – beschreibt weiter das Handbuch im Kapitel über Musik.
-
Kein Zeichensalat beim Klang, kein gelbes Muster nach dem Abspann
Spielte ein Skript einen Klang ab oder wechselte die Musik, während der Raum zu sehen war, stand für einen Augenblick Zeichensalat auf dem Schirm: der Raum in der Schrift der Leiste oder die Leiste im Zeichensatz des Raums. Bei jedem Klang und jedem Musikwechsel einmal – ein Skript mit zwei Klängen und einem Wechsel flackerte dreimal. Klang und Musik werden vor dem Abspielen aus dem Modul geholt, und während dieser Kopie standen die Interrupts still, die den Schirm zwischen Raum und Leiste umschalten. Jetzt laufen sie weiter. Das Bild bleibt ruhig, und nebenbei stockt die Musik beim Raumwechsel nicht mehr.
Der zweite Fehler kam ganz am Ende. Lief der Abspann durch und folgte im Skript nichts mehr, schaltete die Engine zurück auf den Raum – im Bildschirmspeicher standen aber noch die Leerzeichen des Abspanns. Heraus kam ein gelbes Muster über dem ganzen Raum, die Figuren obendrauf, und das blieb so; betroffen war jedes Spiel, das mit dem Abspann endet, auch das Beispiel Proberaum. Jetzt bleibt der Schirm danach schwarz, ohne Figuren, und kein Klick wirkt mehr: Das Spiel ist zu Ende. Bringt das Skript noch ein Schlussbild oder einen Raumwechsel, übernimmt es den Schirm ohne Aufblitzen und an der richtigen Stelle – das Schlussbild von SENDESCHLUSS stand bisher vier Punkte zu tief. Jedes Spiel bekommt dafür beim nächsten Bauen einen neuen Kern; Räume und Bilder bleiben Byte für Byte gleich.
-
Was man im Gespräch bekommt, sagt ein Satz
Gab eine Gesprächsantwort der Spielfigur etwas, zeichnete die Engine sofort die Inventarleiste – mitten über die Sätze des Gesprächs, bis die Antwort vorbei war. Jetzt bleibt die Leiste während des Gesprächs zu und kommt mit dem Ding zurück, sobald es endet. Was man bekommen hat, sagt ein Satz in der Farbe der Erzählung, den der Bau hinter das Einstecken setzt, etwa „Archivschl. erhalten.“; danach spricht wieder, wer vorher sprach. Der Wortlaut ist ein Engine-Text, und Spiele ohne solche Antwort bauen Byte für Byte wie vorher.
Dazu eine stille Lücke. Die Engine hat je Gesprächszeile nur eine Sperre. Ist „einmal“ angehakt, belegt sie diese mit einem eigenen Flag, und ein zusätzliches „nicht wenn“ wurde beim Bau stillschweigend weggelassen. Aufgefallen ist es an einem Schlüssel, den man bei zwei Figuren holen kann: Beide Zeilen trugen „einmal“ und „nicht wenn Schlüssel da“, und man bekam ihn zweimal. Die Prüfung meldet die Kombination jetzt, mit Raum, Ding und Zeile. Setzt die Antwort das Flag ohnehin, genügt „nicht wenn“ – die Zeile verschwindet dann von selbst.
-
Hinter die Nebenfiguren sehen
Die Leinwand zeigt jede Nebenfigur dort, wo sie im Spiel steht, und dahinter malte man bisher blind. Ein falscher Punkt hinter einer Figur war nicht zu finden, und die rote Marke der Farbregel lag ebenfalls unter der Figur: Die Fußleiste nannte eine Zelle, zu sehen war nichts.
Jetzt blendet „Ansicht → Nebenfiguren im Raumbild“ (Strg+Umschalt+N) die Figuren auf der Leinwand aus, und man sieht und malt, was hinter ihnen liegt. Im Spiel ändert das nichts, und beim nächsten Start sind sie wieder da. Die roten Zellen der Farbregel liegen außerdem jetzt über den Figuren statt darunter.
-
Ein Kreis zum Malen, und T schreibt wieder
Neben dem Rechteck gibt es jetzt den Kreis (Taste K): Man zieht ein Rechteck, und ein Kreis oder eine Ellipse füllt es aus, gefüllt in der gewählten Farbe. Mit Umschalt wird die Form rund. Das Rechteck bleibt dabei auf dem Schirm quadratisch und ist damit doppelt so viele Punkte hoch wie breit, weil ein Punkt doppelt so breit ist wie hoch. Mit Alt, auf dem Mac Wahl, bleibt nur der Rand stehen, einen Punkt dünn. Beim Ziehen sieht man schon, was entsteht, und das Einrasten auf Zellen gilt wie beim Rechteck.
Dazu zwei Fehler beim Malen. Die Taste T tat gar nichts: Sie war zweimal belegt, für das Schreibwerkzeug und für „durchsichtig“ in einer Ebene, und zwei Aktionen auf derselben Taste führt Qt überhaupt nicht aus. T wählt jetzt das Schreiben, Umschalt+T die Farbe durchsichtig. Und Füllen in einer noch leeren, durchsichtigen Ebene eines Dings brachte die Werkstatt zum Stehen: Die Füllung lief über den Rand der Ebene in den ganzen Raum, konnte dort nichts übermalen und wurde nie fertig, während der Speicher wuchs, bis sich das Programm nicht einmal mehr beenden ließ. Jetzt bleibt sie in der Ebene, jeder Punkt kommt nur einmal dran, und das Füllen ist dabei viel schneller geworden.
-
Kopieren und Einfügen, auch von Projekt zu Projekt
„Bearbeiten“ hat jetzt Ausschneiden, Kopieren und Einfügen (Strg+X, Strg+C, Strg+V, auf dem Mac mit der Befehlstaste), dazu kommt ein Rechtsklick auf die Liste der Räume, Bilder oder Dinge. Kopiert wird, was gewählt ist – ein Bild, ein Ding oder ein Raum –, und eingefügt wird es, wohin es gehört: ein Bild hinter das gewählte Bild, ein Raum hinter den gewählten Raum, ein Ding in den gewählten Raum, mit Skripten, Gespräch, Figur und gemalter Ebene. Die Ablage ist die des Rechners, deshalb geht es auch von einem Projekt ins andere. Ist ein Name dort schon vergeben, zählt er weiter („telefon1“ wird „telefon2“); was ein Raum oder Ding aus einem anderen Projekt an Verweisen mitbringt und dort fehlt, meldet die Prüfung. Neu ist auch der Knopf „Bild verdoppeln“, für eine Reihe fast gleicher Zwischenbilder.
Im Skripteditor lassen sich mehrere Befehle wählen und ebenso kopieren, ausschneiden und einfügen – in ein anderes Skript, ein anderes Ding, ein Gespräch, ein anderes Projekt; ein Wenn kommt mit allem, was darin steht. Eine Raumkopie zeigt jetzt auf ihre eigenen Dinge: Ein „Zeigen“ der Truhe im kopierten Raum ließ bisher die Truhe im Original erscheinen, nicht „Truhe 2“ in der Kopie. Auch beim Umbenennen ziehen die Verweise jetzt vollständig mit. Drei Befehle – „Spricht“, „Wenn er … trägt“ und „Gespräch führen“ – fehlten in der Liste, zeigten danach auf einen Namen, den es nicht mehr gab, und der Bau hielt an. Die Liste steht jetzt nicht mehr von Hand da, sondern ergibt sich aus den Befehlen selbst; ein künftiger Befehl, der ein Ding nennt, ist gleich dabei.
-
Speicher voll: Der Bau sagt, was dort liegt
Lief beim Bauen einer der drei Speicherbereiche über, stand in der Meldung bisher nur eine Adresse – und für den Bereich bei $8000 sogar „Der Abspanntext passt nicht mehr“, auch wenn ganz anderes ihn füllte, meist die Skripte der Dinge, die man bei sich tragen kann. Jetzt nennt die Meldung den Bereich so wie die Projektübersicht, sagt, was dort liegt und was hilft, auf Deutsch und auf Englisch.
Das Handbuch sagt außerdem, wie viele Räume ins Modul passen. Ein Raum belegt zwei Bänke, jedes Bild, jedes Musikstück und jeder Klang eine. Mit Bildern und Musik sind es etwa 45 Räume – lange bevor die 59 erreicht sind, die der Spielstand fasst.
-
Pause mit der Leertaste
Wie bei Lucasfilm: einmal Leertaste, und alles steht. Mitten im Raum erscheint ein schwarzer Kasten mit Rahmen und „PAUSE“, die Figuren bleiben zu sehen, die Musik spielt weiter. Noch einmal Leertaste, und es geht weiter. Eine Maus oder ein Joystick in Port 1 lösen die Pause nicht aus.
Die Pause ist eine Einstellung des Projekts und bei neuen Projekten an; ältere öffnen sich ohne sie und bauen Byte für Byte wie vorher. Das Wort im Kasten lässt sich als Engine-Text ändern.
-
Mehrere Spielfiguren: jede behält ihre Sprechfarbe
Bisher sprach die Figur, die man gerade spielt, immer weiß. Wer zu einer zweiten Spielfigur wechselte, sah sie plötzlich in einer anderen Farbe reden als eben noch als Nebenfigur. Jetzt behält jede ihre Farbe, wie bei Lucasfilm: Die erste Spielfigur spricht weiter weiß, jede weitere in der Sprechfarbe ihrer Figur. Spiele mit nur einer Spielfigur bauen Byte für Byte wie vorher.
Neu ist auch der Befehl „Gespräch führen“. Ein Skript für „Rede mit“ gewinnt immer vor dem Gespräch eines Dings. Wer „Rede mit“ nur im Einzelfall anders haben wollte – etwa nur, solange man eine bestimmte Spielfigur spielt –, verlor damit das ganze Gespräch. Jetzt kann das Skript erst fragen und dann mit „Gespräch führen“ doch die Liste zeigen. Die Prüfung meldet, wenn das genannte Ding gar keine Zeilen hat.
-
Was weg ist, bleibt weg – auch nach einem Zwischenbild
Wurde ein Bild abgeräumt – mit „Bild aus“ oder einem Klick auf ein ganzseitiges Bild –, zeichnete die Engine den Raum neu und holte dabei den Stand der Dinge, wie er beim letzten Verlassen des Raums war. Was ein Skript seit dem Betreten weggenommen, gezeigt, geändert oder eingesteckt hatte, war danach wieder wie vorher: Eine Figur stand wieder im Raum, ein eingestecktes Ding lag wieder da und steckte zugleich in der Tasche.
Gefunden wurde es an einer Figur, die das Raumskript beim Betreten wegnimmt und die nach einem Zwischenbild am Morgen trotzdem wieder im Zimmer stand. Betroffen war jedes Spiel mit Zwischenbildern, auch SENDESCHLUSS: Wer in der Regie den Zettel einsteckt und dann das Band abspielt, fand ihn danach wieder im Raum. Jetzt wird der Stand vor dem Neuzeichnen gesichert. Spiele ohne Zwischenbilder oder ohne solche Skripte bauen Byte für Byte wie vorher.
-
Die Prüfung meldet weniger Falsches
In einem größeren Spiel, das gerade entsteht, standen 46 Meldungen der Prüfung. 14 davon waren falsch, sechs doppelt – und in dem Rauschen ging eine echte unter. Vier Regeln sind genauer geworden. „Soll in die Tasche, hat aber keine Ebene“ gilt nur noch für Dinge, die man selbst aufhebt; was jemand überreicht oder was aus einer Kiste kommt, soll gar nicht im Raum liegen. Als „Hotspot verdeckt“ zählt nur noch, was nie weggeht; ein Ding davor, das ein Skript wegnehmen kann, verdeckt nicht für immer. Dass eine Figur ohne Gangbilder gleitet, wird einmal je Figur gemeldet statt bei jedem Laufbefehl. Und zwei Fassungen einer Figur auf genau demselben Platz zählen bei „mehr als vier Nebenfiguren“ nur einmal. Die Fälle, für die die Regeln gemacht wurden, fallen weiter auf; in SENDESCHLUSS und den Beispielen ist keine einzige Meldung weggefallen.
Eine Regel ist dazugekommen: Nimmt die Antwort einer Gesprächszeile ihr eigenes Gegenüber mit „Weg“ aus dem Raum, muss die Zeile auch „beendet“ tragen, sonst malt die Engine die Liste danach wieder hin, und die Spielfigur redet mit der leeren Stelle weiter. Dazu zwei Fehler der Werkstatt. Rückgängig vergaß sechs Dinge am Projekt – Bedienleiste, SID-Stimme für Geräusche, Titelskript, Klänge, Flags auf Vorrat und übernommene SID-Stücke –, obwohl seit dem 30. August eine Selbstprüfung bereitlag, die genau so etwas findet; sie wurde nur nie aufgerufen und läuft jetzt in den automatischen Tests mit. Und „In VICE ab diesem Raum“ blieb an einem festen Titelbild hängen, das sonst erst der eigentliche Startraum abräumt; ein Probelauf hängt jetzt ein „Bild aus“ hinter das Startskript.
-
Wen spielt man gerade?
Hat ein Spiel mehrere Spielfiguren, steht eine davon oft auch als Nebenfigur herum und wartet, während man die andere spielt. Spielt man dann gerade diese Figur, stehen beide im Raum, und man kann mit sich selbst reden – beim Testen stand so eine Figur zweimal da. Die Engine kann das nicht von selbst merken: Spielfigur und Nebenfigur sind für sie zwei Figuren mit eigenen Bildern, und das ist Absicht, denn eine wartende Figur braucht weniger Blöcke als eine laufende.
Deshalb gibt es jetzt die Bedingung „Wenn man … spielt“. Damit fragt das Raumskript, wen man gerade spielt, und nimmt die wartende Fassung weg – am besten am Ende des Raumskripts, sonst holt ein späteres „Zeigen“ sie zurück. Die Bedingung gibt es nur in Spielen mit mehreren Spielfiguren; sonst lehnt der Bau sie ab, statt etwas zu bauen, das nie zutrifft. Dazu kommt die 116. Regel der Prüfung: Steht in einem Raum eine Nebenfigur, die so heißt wie eine Spielfigur, und fragt das Raumskript nicht danach, sagt sie es, mit Raum und Namen.
-
Sätze, die lange genug stehen – und einen Sprecher haben
Während ein Skript läuft, ist allein die Pause hinter einem Satz das Zeitmaß für diesen Satz; die eingebauten gut drei Sekunden laufen erst ab, wenn das Skript zu Ende ist. So steht es seit jeher in der Engine. Eine zu kurze Pause lässt einen Satz also vorbeiblitzen, und beim Bauen fiel es niemandem auf. Neu in den Einstellungen des Projekts ist deshalb „Sätze stehen, solange man zum Lesen braucht“. Ist das Häkchen gesetzt, hebt der Bau eine zu kurze Pause an, auf drei Bildläufe je Zeichen und mindestens 150. Ein voll ausgenutzter Satz von 76 Zeichen steht damit gut viereinhalb Sekunden.
Angefasst wird nur die Zahl, nie das Skript: Eine längere Pause bleibt, wie sie ist, ein Klick kürzt weiterhin jede ab, und ein Satz am Ende eines Skripts bleibt ohnehin stehen. Neue Projekte bekommen das Häkchen, ältere bauen Byte für Byte wie vorher; in einem geprüften Spiel wurden so 50 Pausen länger, zusammen gut 44 Sekunden. Ist das Häkchen aus, meldet die Prüfung jede Pause, die kürzer ist als die Lesezeit, mit Ist- und Soll-Wert.
Eine zweite Einstellung gilt Sprechern ohne Figur. Spricht ein Ding, das keine Figur trägt – jemand, der ins Raumbild gemalt ist –, stand sein Satz bisher in der Farbe der Erzählung und sah aus, als sage ihn niemand. Unter „Sprecher ohne Figur“ lässt sich ihnen eine eigene Farbe geben; die Vorgabe „wie die Erzählung“ baut wie vorher. Einen Mund bewegen solche Dinge trotzdem nicht.
-
Die Spielfigur wechseln, mit einem Klick
Hat ein Spiel mehrere Spielfiguren, wechselte bisher nur die Taste W. Jetzt steht rechts oben in der Bedienleiste ein Symbol – zwei Köpfe mit einem Doppelpfeil –, und ein Klick darauf wechselt zur nächsten Figur, ein Rechtsklick zur vorigen. Platz kostet es nicht: Die Satzzeile ist 38 Zeichen breit, die Leiste 40, dort waren zwei Spalten frei. Es steht in beiden Bedienleisten, der mit Wörtern und der mit Symbolen. Wer ein anderes Symbol möchte, malt die Zeichen 120 bis 123 selbst; sie stechen das mitgelieferte.
Die Farbe sagt, ob es gerade geht: Hellgrün heißt „ein Klick wechselt jetzt“, Dunkelgrau „gerade nicht“. Während einer Zwischensequenz, eines Bildes oder eines Gesprächs ist das Symbol ganz weg – dort gehört die Ecke dem Bild –, und der Wechsel ist so lange gesperrt, auch mit der Taste. Ein Skript wechselt weiterhin jederzeit. Taste und Symbol hängen an derselben Einstellung; ist sie aus, fällt beides aus dem Modul. Spiele mit nur einer Spielfigur bauen Byte für Byte wie vorher.
-
Die Geschichte sagt, ab wann gewechselt werden darf
Beim Testen fiel auf, dass der Wechsel von der ersten Minute an offen stand: Schon in der ersten Zwischensequenz ließ sich zur zweiten Figur umschalten, und die stand dann in einem Raum, den die Geschichte noch nicht erreicht hatte. Jetzt gibt es dafür einen Befehl, „Spieler darf wechseln“ mit ja und nein. Beim Spielstart darf der Spieler – ein Spiel, das den Befehl nie benutzt, verhält sich wie vorher. Ist gesperrt, tun Taste und Symbol nichts; „Spielfigur wechseln“ im Skript wirkt weiter. Der Stand liegt im Spielstand, ein Spielstand aus einer älteren Fassung wird deshalb abgelehnt.
Dazu kommt eine Regel mehr in der Prüfung vor dem Bauen: Wer den Befehl benutzt, den Wechsel für den Spieler aber ganz abgeschaltet hat, bekommt einen Hinweis – der Befehl wäre dort ohne Wirkung. Damit sind es 113 Regeln.
-
Eine ganze Figur aus einem Bild
Bisher kam eine Figur Bild für Bild in die Werkstatt, und bei acht bis zwölf Bildern sah sie in jedem ein wenig anders aus. „Aus Bogen …“ nimmt stattdessen einen Figurenbogen: die Figur in allen Posen in einer Reihe – Durchgang, Schritt, Durchgang, Gegenschritt, stehend von der Seite, von vorn, von hinten, Aktion, bei zwölf Posen dazu die Schritte von vorn und von hinten. Die Werkstatt trennt die Posen an den Lücken, zeigt jede so, wie der C64 sie zeigen wird, und schlägt für jede einen Bildplatz vor; stimmt einer nicht, stellt man ihn unter der Pose um.
Gerechnet wird gemeinsam, nicht Bild für Bild: ein Maßstab, eine Fußlinie, und der Kopf steht in allen Posen an derselben Stelle – so pumpt die Figur beim Gehen nicht, und der Kopf wackelt nicht. Die Figur füllt die ganze Höhe; ist sie für zwölf Punkte Breite zu breit gezeichnet, wird sie waagerecht gestaucht, bei allen Posen gleich. Die Höhe – 42 oder 63 Punkte – wählt man im Fenster und sieht sofort, was sie an Blöcken kostet. Fast gleiche Farbbänder werden angeglichen, sonst sprengt eine große Figur den Vorrat: 35 Blöcke wurden so zu 27.
-
Das Handbuch mit Inhalt und Trefferliste
Bei 43 Fundstellen zu einem Wort und nur der Eingabetaste zum Weiterschalten sucht man ewig. Das Handbuch im Programm hat jetzt links zwei Reiter: „Inhalt“ mit allen Kapiteln und Abschnitten zum Anklicken, markiert an der Stelle, wo man gerade liest – und „Treffer“, der sich schon beim Tippen füllt: die Fundstellen nach Abschnitten gruppiert, mit Anzahl und einem Stück Text drumherum, das Suchwort fett.
Im Text sind alle Treffer gelb hinterlegt, der gerade angesteuerte orange; oben stehen Knöpfe für vor und zurück und die Zählung „7 / 43“. Die Eingabetaste springt weiter, mit Umschalt zurück, F3 ebenso; Pfeil runter führt aus dem Suchfeld in die Liste, Escape leert die Suche. „Ganzes Wort“ lässt Treffer mitten in anderen Wörtern weg – im englischen Handbuch fand die Suche nach „sid“ sonst auch side und inside. Suche und Leseposition bleiben stehen, bis die Werkstatt geschlossen wird.
-
Dialoge, die auf den Bildschirm passen
Aus dem Test kam ein Bild von einem Laptop: Die Spiel-Einstellungen waren höher als der Bildschirm, OK und Abbrechen lagen unter dem Rand – egal, wie man das Fenster zog. Das Musikfenster war mindestens 1742 Punkte breit, weil seine obere Leiste 26 Teile in einer Reihe trug. Jetzt rollen die Spiel-Einstellungen, OK und Abbrechen bleiben immer unten zu sehen; das Musikfenster hat seine Leiste auf zwei Reihen, und die Reiter Instrumente und Filter rollen – mindestens 952 Punkte breit statt 1742. Geprüft auf 1920 × 1200, 1366 × 768, 1280 × 720 und unter Windows auf 1024 × 768.
Umgekehrt gilt seitdem auch: Kein Dialog geht mehr größer auf als der Bildschirm, und jeder wächst beim Öffnen so weit, dass sein Inhalt ganz hineinpasst. Bisher stand die Größe fest im Programm, und bei größerer Schrift reichte sie nicht immer – die Werkstatt-Einstellungen gingen 158 Punkte hoch auf, ihr Inhalt braucht 188, der Hilfetext war unten abgeschnitten. Das gilt auch für eine gemerkte Größe, die inzwischen zu klein ist, weil ein Dialog ein Feld dazubekommen hat. Wer einen Dialog größer gezogen hat, behält ihn so.
-
Fehler aus dem Testen
Unter Windows stürzte die Werkstatt ab, sobald das Musikfenster aufging – ohne Meldung, bei jedem Projekt, weil jedes neue Filterprogramme mitbringt und die Auswahl dafür einige davon ausgraut. Für jeden ausgegrauten Eintrag entstand ein Objekt, das nach dem Leeren der Auswahl weiterlebte; Windows legte kurz darauf ein Ereignis an dieselbe Stelle im Speicher, und die Werkstatt hielt es für den alten Eintrag. Auf dem Mac liegt der Speicher anders, dort trat es nicht auf. Jetzt wird ausgegraut, ohne dass solche Objekte entstehen.
Dazu kleinere Funde. Ein Klick auf ein Verb löst nichts mehr am vorigen Ding aus: Das am 11. September eingebaute Merken des zuletzt angefassten Dings ist wieder heraus, weil es keines der Vorbilder so hält – nach einer Handlung steht wieder „Gehe zu“ da. „Nein“ auf die Rückfrage beim Entfernen eines Musikstücks entfernte es trotzdem. Ein neues Projekt hieß immer noch SENDESCHLUSS. Und die Prüfung vergleicht den Hotspot einer Nebenfigur jetzt mit ihrer gemalten Höhe statt mit einer festen Zahl.
-
Projekte in der Cloud werden lokal gebaut
Ein Bau schreibt bei jedem Lauf Dutzende Dateien neu, die niemand braucht, und ein Cloud-Dienst muss jede davon hochladen. An einem Tag hat genau das einen Mac einen halben Tag lang am Hochladen gehindert.
Liegt ein Projekt in einem Cloud-Ordner – iCloud Drive, Schreibtisch oder Dokumente in iCloud, OneDrive, Dropbox, Google Drive –, baut die Werkstatt deshalb nicht mehr daneben, sondern in einem lokalen Zwischenspeicher. Neben das Projekt kommt nur das fertige Modul, und auch das nur, wenn es sich geändert hat; die Fußleiste sagt, wo gebaut wurde. Wer seine Projekte auf der lokalen Platte hat, merkt von der Änderung nichts – dort bleibt der Bauordner, wo er war.
-
Musik von außen: drei Wege ins Spiel
Neben GoatTracker-Stücken nimmt das Fenster zum Übernehmen jetzt auch SID-Wizard-Stücke (.swm). Gewandelt wird mit SWMconvert, dem Werkzeug des SID-Wizard-Autors selbst; es liegt neben der Werkstatt, und seine Lizenz erlaubt das ausdrücklich. Ein eigener Leser wäre zwei Tage Arbeit gewesen und hätte die Feinheiten schlechter getroffen als der Wandler aus derselben Hand wie das Format. Wer mit SID Factory II arbeitet, exportiert dort ein fertiges .sid und packt es an das obere Ende des Speichers – wie das geht, steht jetzt im Handbuch.
Und ein fremdes .sid lässt sich als Musik übernehmen. Eine .sid ist kein Datensatz, sondern 6502-Code mit eigenem Abspieler, und der lädt fast immer dorthin, wo bei FABULA der Kern steht. Die Werkstatt rechnet ihn um und weist nach, dass er danach dieselben SID-Register schreibt: Beide Fassungen laufen in einem 6502 aus Python, und die Schreibvorgänge werden Byte für Byte verglichen, inzwischen über fünf Minuten Spielzeit. Was die Probe nicht besteht, kommt nicht ins Projekt, und das Fenster sagt, warum. Der Preis: höchstens 8186 Bytes je Stück, keine eigene Musik im selben Spiel, und ein Geräusch unterbricht es.
-
Ein Beispiel, das die Wege zur Musik zeigt
Unter den Beispielprojekten liegt ein neues kleines: „Musikwege“. Ron – die Figur aus WebFritzis Demo, mit Erlaubnis – erklärt darin, auf welchen Wegen Musik in ein Spiel kommt und was jeder Weg kostet. Sein Arbeitszimmer ist der eigene Weg: Computer, Bücherregal, Buch und Fenster sagen der Reihe nach, was der Musikeditor kann, wie viel Platz ein Stück braucht und warum ein fremder Abspieler ein Gast ist, der das ganze Fenster will.
Im Flur – er ist breiter als das Bild, man geht nach rechts – stehen drei Türen: GoatTracker, SID-Wizard und fremdes SID. Die ersten beiden gehen auf und erzählen ihren Weg; beim GoatTracker-Weg wechselt dabei das Stück, damit man hört, wovon die Rede ist. Die dritte Tür bleibt zu – genau das ist die Lektion: ein fremdes SID und eigene Musik gibt es nicht im selben Spiel. Das Projekt ist zum Auseinandernehmen gedacht: zwei Räume, zwei Stücke, nichts, was man nicht in einer halben Stunde nachbaut.
-
Vier große Figuren, wieder fünfzig Bilder in der Sekunde
Standen vier große Figuren zugleich im Bild – die Spielfigur und drei Nebenfiguren zu 63 Punkten –, lief die Hauptschleife nur noch mit 25 Bildern je Sekunde. Zu sehen war das nicht am Ruckeln, sondern an der Zeit: Jede Pause, jeder Wecker und der Nachlauf der Sprachausgabe dauerten doppelt so lang, und in einer Zwischensequenz liefen Text und Stimme auseinander.
Gefunden wurde die Stelle durch Messen, nicht durch Raten: ein Zähler in der Schleife gegen den Bildzähler, dann Abschnitt für Abschnitt weggelassen. Es war die Verteilung der Sprites auf die Bänder – bei dreizehn Bändern neunzig Durchläufe je Bild, und jeder Vergleich rechnete dieselben Bandenden wieder aus. Jetzt werden die Enden einmal je Band vorgerechnet, und die Verteilung überhaupt nur dann neu gerechnet, wenn sich Zahl oder Zeilen der Bänder geändert haben – beim Stehen nie, beim Gehen alle paar Bilder. Nachgemessen in derselben Lage: 1,00 statt 0,50 Durchläufe je Bild.
-
Achtunddreißig Zeichen, schon im Editor
Die beiden Antwortfelder am Ding – „Schau an“ und die Standardantwort – sind jetzt genauso breit wie die Leiste im Spiel: zwei Zeilen zu 38 Zeichen, feste Schrittweite, Umbruch an derselben Stelle. Was nicht mehr passt, wird nicht angenommen, der Rahmen leuchtet kurz auf.
Vorher waren die Felder beliebig groß, und ein zu langer Satz fiel erst beim Bauen auf („Text braucht 4 Zeilen“). Das war spät und an der falschen Stelle: Die Regel gilt für jeden Text, der in der Leiste steht. Was in einem älteren Projekt schon zu lang ist, bleibt stehen und lässt sich kürzen, nur nicht verlängern – und die Prüfung sagt es jetzt, mit Raum, Ding und Zeichenzahl.
-
Was beim Arbeiten auffiel
Kleinigkeiten, die erst auffallen, wenn man wirklich mit der Werkstatt arbeitet. Flags lassen sich jetzt auf Vorrat anlegen, ohne dass sie schon irgendwo benutzt werden. Das Klangfenster zeigt, wie laut ein Klang geworden ist. Nach einem Bau kommt kein Kasten mehr, nur weil ein Aktionsbild ungenutzt ist – das steht jetzt in der Prüfung. Und ein Stück, das aufhört, beginnt beim nächsten Mal von vorn, statt stumm zu bleiben.
Dazu die Änderungsliste selbst: Sie trägt jetzt oben eine Übersicht mit Datum, das Neueste zuerst, und darunter zu jeder Zeile den Abschnitt mit demselben Wortlaut. Bei über neunzig Kilobyte Text war das nötig, um überhaupt noch zu sehen, was seit dem eigenen Paket dazugekommen ist.
-
Erst die eigene Zeile, dann die Antwort
Im Gespräch sagt die Spielfigur die gewählte Zeile jetzt zuerst selbst, in Weiß und mit bewegtem Mund, und erst danach antwortet das Gegenüber. Bisher kam die Antwort sofort, und die Wahl in der Liste blieb stumm. Die Zeile steht je nach Länge ein bis drei Sekunden, ein Klick schaltet weiter. Anführungszeichen am Anfang und am Ende fallen beim Sagen weg: Wer Gesprochenes in der Liste so kennzeichnet, behält es dort.
Nicht jede Zeile ist ein Satz. „Den Hörer abnehmen.“ oder „Auflegen.“ tut die Figur, sie sagt es nicht; dafür gibt es im Gesprächseditor das Häkchen „Handlung“. Eingeschaltet wird das Ganze in den Einstellungen, bei neuen Projekten ist es an. Ältere Projekte öffnen sich mit dem Schalter aus und bauen Byte für Byte wie vorher, SENDESCHLUSS spielt sich also unverändert.
-
Den Mund selbst einzeichnen
Wo der Mund einer Figur beim Sprechen aufgeht, hat bisher der Bau gesucht: in der untersten Zeile des Gesichts, waagerecht in der Mitte. Im Profil saß er damit oft zu weit hinten, und wo schon ein Mundstrich gemalt war, öffnete sich nur ein einzelner Punkt daneben. Jede Nachbesserung der Suche fand bei der nächsten Figur die nächste Lücke.
Jetzt zeichnet man ihn im Figurenfenster selbst ein. Mit „Mund“ malt man die Punkte, die beim Sprechen erscheinen, in eine eigene Schicht über dem Bild, einmal von der Seite und einmal von vorn; nach links spiegelt der Bau. Solange nichts gemalt ist, zeigt das Fenster gestrichelt, wo die Suche ihn hinsetzen würde, und die Vorschau spricht mit. Ein gemalter Mund darf zwei Bytes berühren, also über eine Bytegrenze reichen oder zwei Zeilen hoch sein. Den Teil der Engine für das zweite Byte bekommt nur ein Spiel, das ihn braucht.
-
Wer nach links schaut, zeigt auch nach links
Eine Figur ohne eigenes Stehbild stand nach links gewandt mit dem Gesicht nach rechts da: die Spielfigur, sobald sie etwas links von sich ansah oder nach links gehend anhielt, und jede Nebenfigur, die nach links schaut. Beim Sprechen ging der Mund dann an der Stelle für links auf, im Bild nach rechts also am Hinterkopf.
Der Fehler kam mit den Blocktabellen vom 16. September. Ein Bild, das eine Figur nicht hat, fiel dort immer auf das Laufbild nach rechts zurück, auch das Stehbild nach links. Jetzt fällt, was nach links schaut, auf das Laufbild nach links zurück, wie vor dem Umbau. Neue Blöcke kostet das nicht, nur andere Nummern in der Tabelle.
-
Die eine Ausnahme vom Freeze: der Musikteil
Der Musikteil ist seit dem Freeze deutlich gewachsen, als einziger Teil. Anlass war der GoatTracker-Import (Eintrag darunter): Er zeigte, wie eng Player und Musikfenster gebaut waren. Passen mehrere Stücke nicht mehr gemeinsam in einen Block, bekommt jetzt jedes seinen eigenen mit nur dem, was es spielt. Spiele mit übernommener Musik legen ihr Spielwerk in vier Kilobyte unter dem I/O-Bereich, die bisher niemand benutzt hat, und lesen die Stücke dort dichter: gepackte Muster, Warten in der Wavetable, Hüllkurve, Vibrato und Wellenform als Befehle. Ein Beispielstück braucht 1431 statt 4470 Bytes. Stücke, deren Schleife nur auf leere Takte zeigt, werden am Ende still, statt leise weiterzuklingen.
Im Musikfenster lässt sich jetzt markieren, kopieren, ausschneiden und einfügen, auch in ein anderes Stück. Dazu kommen Transponieren um Halbton und Oktave, Zeilen und Takte einfügen und löschen, Spuren leeren, kopieren und tauschen, und Rückgängig Schritt für Schritt. Das Fenster führt bis 255 Takte statt 64. An den Instrumenten lässt sich jetzt auch einstellen, was bisher nur der Import setzen konnte: den Gate-Timer, den harten Neuanschlag nur mit Gate und ein Filterprogramm, das jede Note startet. Stücke, die schon zusammen passten, bauen Byte für Byte wie vorher.
-
GoatTracker-Stücke klingen jetzt wie das Original
Ein übernommenes GoatTracker-Stück war nach den ersten Takten fast stumm. Im Emulator gemessen hielt das Original seinen Pegel, die Übernahme fiel binnen Sekunden auf nahezu null. Der Import hatte aus GoatTrackers Wavetable das Gate-Bit mitgenommen, und der FABULA-Player, der das Gate selbst schaltet, konnte es nie mehr schließen: Keine Stimme schlug nach der ersten Note neu an. Vier weitere Fehler derselben Art kamen dazu. Leere Wavetable-Einträge wurden zu Stille, der Gate-Timer landete verkehrt herum, die Filterart schaltete Stimme 3 ab, und Filterprogramme starteten nie.
Danach ging es um mehr als „spielt wieder“: Die Übernahme sollte so nah wie möglich ans Original, ohne spürbare Einbußen. Dafür wurde der GoatTracker selbst zum Gegenhören gebaut, und verglichen wurde Bild für Bild am SID. Der Player lernte, nur in Spielen mit übernommener Musik, das Tempo je Stimme, Portamento mit 16 Bit, Vibrato wie im Original, feste Noten und Befehle in der Wavetable, den Gate-Timer je Instrument, das Funktempo und Gate-Wechsel schon zwei Bilder vor ihrer Zeile. Ein Stück weicht jetzt in 6 von 9600 Bildern ab, und alle vierzehn Beispielstücke des GoatTrackers passen. Vor der Übernahme nennt das Fenster jeden Überlauf und bietet an, ungespielte Instrumente gleich mit zu entfernen.
-
Was beim Arbeiten auffiel
Seit dem Freeze wird mit der Werkstatt gearbeitet statt an ihr, und dabei zeigt sich, was im Weg steht. Die Projektübersicht (Strg+I) zeigt das ganze Spiel auf einen Blick: Räume und Wege, eine Reihenfolge, in der die Rätselkette aufgeht, und wie voll Speicher und Vorräte sind. Unter „Projekt → Zuletzt geöffnet“ stehen die letzten fünf Projekte. Objekte lassen sich in der Liste umordnen, die Skriptbefehle stehen nach Themen in Untermenüs, und unter einer Ebene lässt sich der Raum ansehen.
Ein Bild kann jetzt gezielt in ein einzelnes Objekt importiert werden: in das Raumbild innerhalb des Hotspots oder in die Ebene des Dings, auch mit durchsichtiger Vorlage und einer Akzentfarbe für Logos und Schrift. Die Symbolleiste hat eine feste Reihenfolge bekommen: Gehen, Schauen, Reden, Nehmen, Benutzen. Öffnen und Schließen gehören dort zu Benutzen, eine Tür geht also mit dem ersten Klick auf.
-
Fehler aus dem Testen
Was beim Durchspielen auffiel, ist behoben. Ein Klick unter einem Vollbild kürzt jetzt die laufende Pause ab wie überall sonst; vorher stand der Raum darunter noch ein paar Sekunden offen. Wer im Startraum „Stille“ einstellte und kein Titelbild hatte, bekam einen zerlegten Raum und Zeichenmüll in der Leiste, weil beim Start ein Musikblock angemeldet blieb, den niemand abholte. Und an einem Ding, das nur anders aussieht, etwa einer geöffneten Tür, lief die Handlung, ohne dass die Figur hinging.
Eine Tür mit zweitem Aussehen ließ sich bisher einstecken, weil es die Ebene dafür nur zusammen mit „Aufhebbar“ gab; jetzt gibt es dafür den Haken „Bleibt liegen“. Und ein neu gezogener Hotspot verschob die Zeichnung darin, worauf die Prüfung beim nächsten Bau Farbfehler meldete, obwohl nichts umgemalt war. Die Zeichnung bleibt jetzt, wo sie ist.
-
Eingefroren: der Stand für die erste Ausgabe
Am 17. September ist der Funktionsumfang der ersten Ausgabe eingefroren worden. Seitdem wird getestet, an echten Spielen und auf echter Hardware. Was dabei auffällt, wird behoben, und wo die Bedienung im Weg steht, wird sie besser. Neue Funktionen kommen erst nach dem Erscheinen.
Die Einträge darüber zeigen, was das in der Praxis heißt: Fast alles davon sind Fehler und Bedienung, gefunden beim Arbeiten mit der Werkstatt. Einen großen Brocken hat der GoatTracker-Import ausgemacht, der jetzt so klingt wie das Original. Die einzige Ausnahme vom Freeze ist der Musikteil, der dabei deutlich gewachsen ist.
-
Sprachausgabe über den FunMP3-Player
Für den Userport gibt es ein Zusatzgerät, das MP3- und WAV-Dateien von einer microSD-Karte abspielt: den FunMP3-Player. FABULA spricht ihn jetzt mit zwei Skriptbefehlen an. „MP3 abspielen“ nimmt die Nummer der Datei auf der Karte und wahlweise „endlos wiederholen“, „MP3 anhalten“ beendet sie. Damit kann ein Spiel sprechen oder Musik spielen, die der SID nicht kann. Ohne das Gerät tun beide Befehle nichts, und ein Spiel, das sie nicht benutzt, fasst den Userport gar nicht an.
Das Gerät wiederholt jede Datei von sich aus. Soll eine Sprachzeile nur einmal laufen, sagt die Engine ihm deshalb nach 0,3 Sekunden, dass es nicht wiederholen soll. Diesen Abstand hat ein Spiel vorgemacht, das auf dem echten Gerät läuft. Gezählt wird im Interrupt, damit auch eine übersprungene Szene aus einem Satz keine Endlosschleife macht. Zum Ausprobieren gibt die Werkstatt dem Emulator das Gerät und den Ordner mit den Dateien mit, sofern dieses VICE es nachbilden kann, und die Prüfung meldet fehlende Dateien. Erprobt ist das im Emulator, ein echtes Gerät stand noch nicht zur Verfügung. Nebenbei behoben: Würfeln war im Titelskript verboten, obwohl das Handbuch es dort erlaubt.
-
Die Bedienleiste mit Symbolen
Ein Vorschlag aus dem Forum: statt neun Wörtern in drei Zeilen eine Reihe Symbole. Daraus ist eine Einstellung geworden. Die alte Leiste bleibt die Vorgabe, und bestehende Spiele bauen Byte für Byte wie vorher. In der Symbolleiste wird eine Zeile frei, deshalb zeigt das Inventar neun Dinge auf einmal statt sechs. Der Mauszeiger trägt das Symbol des gewählten Verbs in dessen Farbe, und die rechte Maustaste schaltet die Verben durch.
Die Symbole lassen sich in der Werkstatt selbst malen: 16 mal 16 Punkte je Verb, beschriftet mit den Verben des eigenen Spiels. „Vorgabe zurückholen“ bringt die mitgelieferte Zeichnung wieder. Mitgeliefert sind fünf Symbole und nicht vier, denn die rechte Taste hat hier eine andere Aufgabe: Ohne „Schau an“ in der Leiste hätte das Spiel das Untersuchen ganz verloren. Wer mit dem Joystick spielt, also ohne rechte Taste, klickt die Leiste einfach an.
-
Zeichensätze laden und sichern
Im Zeichensatz-Editor lassen sich Sätze jetzt laden und sichern, als gewöhnliche 2-KB-Datei, auch mit Ladeadresse davor. Übernommen wird nur, was vom Zeichensatz des C64 abweicht, und auf Wunsch nur die Zeichen, die ein Text überhaupt treffen kann. Bei einem Satz aus dem Forum waren das 72 statt 173 Zeichen, 649 statt 1558 Bytes.
Dieser Satz war eigens für FABULA gezeichnet, mit echten Umlauten und einem ß, und die gingen zunächst verloren: Der Import übersprang diese sieben Plätze grundsätzlich. Jetzt kommen sie mit, sobald dort etwas anderes steht als im C64-Satz oder in den Umlauten, die FABULA selbst mitbringt. Außerdem liegen eigene Zeichen jetzt im Modul und nicht mehr im festen Speicher neben dem Programm. Dort, wo es eng ist, kosten sie damit nichts mehr. Ein Spiel ohne eigene Zeichen bleibt, wie es war.
-
Musik aus dem GoatTracker
GoatTracker-Stücke lassen sich jetzt übernehmen, mit Instrumenten, Wavetables, Puls- und Filterprogrammen. Tonportamento, Cutoff, Lautstärke und Tempo werden abgebildet. Vibrato, Hüllkurve und Wellenform sind in FABULA Eigenschaften des Instruments, daraus werden Varianten, und angelegt wird nur, was wirklich gespielt wird. Was keine Entsprechung hat, nennt das Fenster vor der Übernahme.
Es sagt auch vorher, ob das Stück passt. Muster, Instrumente und Tabellen teilen sich alle Stücke eines Projekts, ein Import lässt also die vorhandenen mitwachsen. Passt es nicht, bleibt „Übernehmen“ gesperrt, und der Bericht nennt den Grund. Meist sind es ungespielte Instrumente, die in jedem Stück Platz kosten. Eine SID-Datei lässt sich nicht übernehmen: Sie ist kein Datenformat, sondern ein Programm mit eigenem Abspieler.
-
Figuren brauchen weniger Platz
Bisher rechnete die Engine jeden Spriteblock einer Figur aus Richtung und Bildnummer aus. Dafür musste jedes Bild vollständig vorliegen, und der Kopf einer Figur lag achtmal im Speicher, auch wenn er sich nie änderte. Jetzt hat jede Figur eine eigene Tabelle, und gleiche Blöcke liegen nur einmal. Eine 63 Pixel hohe Figur mit vier Laufbildern, Stehbild und zwei Schritten in die Tiefe passt jetzt, und vier gleiche Nebenfiguren in anderen Farben kosten vier Blöcke statt sechzehn.
Zwei Regeln fallen damit weg: Eine Figur muss nicht mehr ganz in einen Vorrat passen, und mehrere Spielfiguren müssen nicht mehr gleich gebaut sein. Die Anzeige im Figurenfenster und die Prüfung rechnen genauso wie der Bau.
-
Kein Spielstandmenü beim Einschalten
Auf einem Ultimate 64 startete ein Spiel mitten im Spielstandmenü. Die Engine hat zum Fernprüfen einen kleinen Haken im Kassettenpuffer: Steht dort etwas, öffnet sie das Menü. Beim Start löschte sie zwei ihrer drei Fernsteuerbytes, dieses eine nicht. Im Emulator ist der Speicher beim Einschalten leer, deshalb fiel es dort nie auf. Ein echter C64 hält dort, was das RAM gerade hält.
Nachgestellt auf demselben Gerät: Das Byte von Hand gesetzt, und das alte Modul öffnete das Menü, das neue nicht. Jetzt löscht der Start auch dieses Byte.
-
Englische Oberfläche, deutsches Projekt
Mit englischer Oberfläche ließ sich ein deutsch geschriebenes Projekt nicht mehr bauen, und umgekehrt. Zwei Werte stehen als übersetzter Text in der Projektdatei: der Platzhalter für die Spielfigur beim Befehl „Es spricht“ und das Musikstück „Stille“. Verglichen wurde nur mit der eingestellten Sprache, und passte das nicht, brach der Bau ab. Jetzt zählen alle Sprachfassungen, und beide Sprachen bauen nachweislich dasselbe Modul.
-
Der Nachton ist jetzt ganz weg
Der erste Fix gegen den hellen Ton nach dem Schritt hat ihn nur verkürzt, übrig blieb ein kurzes Piepen. Der SID übernimmt ein schnelleres Ausklingen erst nach bis zu 33 Millisekunden, die Musik schaltete ihren Ton aber schon nach 20 Millisekunden wieder auf die Stimme. Jetzt hält ein Geräusch die Stimme nach seinem Ende noch 60 Millisekunden still, bevor die Musik sie zurückbekommt. Das gilt für jedes Geräusch.
-
Kein heller Ton mehr nach dem Schritt
Nach jedem Schrittgeräusch klang ein kleiner heller Ton nach. Ein Geräusch borgt sich eine Stimme der Musik und gibt sie danach zurück. Der Schritt endete aber nach 80 Millisekunden mitten in seiner Hüllkurve, und der Rest klang mit dem Ausklang der Musik weiter: gut 300 Millisekunden lang, auf der Tonhöhe, die die Musik auf dieser Stimme zuletzt hatte. Gefunden hat das ein Mitschnitt der SID-Register im Emulator. Er hat auch die erste Vermutung widerlegt, die Note werde neu angeschlagen.
Jetzt gibt das Geräusch die Stimme ohne Ausklang zurück, und die nächste Note der Musik stellt ihren eigenen ein. Der Ton ist nach wenigen Millisekunden weg. Der naheliegende Weg, die Stimme einfach stumm zu schalten, hätte gehaltene Noten abgeschnitten. Das gilt für jedes Geräusch, zu hören war es vor allem bei den Schritten.
-
Zwölf Dinge in der Tasche
Die Figur trägt jetzt bis zu zwölf Dinge statt acht, sechs sind je Seite zu sehen. Geblättert wird mit Pfeilen an den Enden der Trennlinie: rechts zur zweiten Seite, links zurück. Die Pfeile stehen nur da, wenn es mehr als sechs Dinge sind. Eine Fassung mit drei Zeilen ohne Trennlinie, neun Dinge auf einmal, war schon gebaut und im Emulator geprüft. Sie wurde verworfen, denn zwischen Tasche und Verben soll eine Grenze stehen.
Den Platz dafür hat der knappste Teil des Programms abgegeben: Namen und Schautexte der getragenen Dinge liegen jetzt woanders, dort sind rund 800 Bytes mehr frei. Der Spielstand hat damit eine neue Fassung. Ältere lehnt die Engine ab, statt sie falsch zu lesen.
-
Auf den Betrachter zu und von ihm weg
Ein Wunsch aus dem Forum: Figuren sollen auch in die Tiefe laufen können, sonst ist ein langer Gang, der in den Bildschirm hineinführt, nicht zu machen. Bisher waren vorn und hinten nur Stehbilder, und vor dem ersten Schritt drehte sich jede Figur zur Seite. Jetzt läuft eine Spielfigur auf den Betrachter zu und von ihm weg. Sie braucht dafür ihre Stehbilder von vorn und hinten und dazu ein oder zwei Schrittbilder je Ansicht. Der Gang ist Stehbild, Schritt 1, Stehbild, Schritt 2.
Die Figur dreht sich nach vorn oder hinten, sobald sie nur noch senkrecht geht und mindestens zehn Punkte vor sich hat. Sonst drehte sie der kurze Rest eines schrägen Weges vor jedem Ding zum Betrachter. Am Ziel bleibt sie so stehen. Ohne Schrittbilder bleibt alles wie bisher, und Nebenfiguren, die ein Skript gehen lässt, laufen weiter seitwärts. Nebenbei gefunden: Beim Wechsel der Spielfigur schrieb die Kopie ihrer Sprites über ihren Platz hinaus. Was dort lag, etwa ein Stehbild von der Seite, wurde überschrieben. Auch das ist behoben.
-
Vorn und hinten im Figurenfenster
Unter den Bildknöpfen steht eine zweite Reihe: Bild 8 und 9 sind Schritte von vorn, 10 und 11 von hinten. Schritt 1 von vorn und von hinten reicht, Schritt 2 macht den Gang runder. Die Vorschau läuft aus der gewählten Ansicht, die Blassanzeige legt das passende Stehbild darunter, und eine rote Zeile sagt, wenn gemalte Schritte nicht zählen. Neu daneben ist Spiegeln: Es dreht das gewählte Bild links-rechts, denn Schritt 2 von vorn ist meist Schritt 1 gespiegelt.
Auch eine Nebenfigur, die nur steht, bekommt jetzt ihre Ansichten von vorn und hinten. Die beiden Knöpfe waren bei ihr grau, obwohl Engine und Prüfung sie kennen. Die Raumansicht zeigt eine solche Figur jetzt auch so und nicht mehr von der Seite. Außerdem öffnen die Fenster der Werkstatt dort, wo sie zuletzt standen, und in der Größe, auf die man sie gezogen hat, auch nach einem Neustart.
-
Der Mund sitzt, wo er hingehört
Wer nach links schaute, bewegte beim Sprechen den Hinterkopf. Nach links zeigt die Engine gespiegelte Sprites, setzte den Mund aber an die Stelle, an der er im Bild nach rechts sitzt. Im Spiegelbild liegt diese Stelle in den Haaren. Das galt für Spielfigur und Nebenfiguren, in jedem Spiel, seit es den sprechenden Mund gibt. Jetzt spiegelt der Bau die Mundstelle mit.
Von vorn sprach eine Figur bisher an der Stelle aus dem Profil, also neben der Gesichtsmitte. Jetzt liest der Bau den Mund aus der Vorderansicht. Ist dort ein kurzer Mundstrich gemalt, öffnet sich der Mund eine Zeile darunter. Vorher fand die Suche an seiner Stelle die Nasenspitze. Schon am Vortag hatte die Suche nach dem Gesicht dazugelernt: Sie findet auch Haut in der zweiten gemeinsamen Spritefarbe, und bei Haar in der eigenen Farbe sucht sie das Gesicht dort, wo ein Auge sitzt. Vorher bewegten solche Figuren beim Sprechen zwei Punkte in der Frisur.
-
Man sieht, wer spricht
Bisher stand jeder gesprochene Satz weiß, und man sah nicht, ob die Spielfigur, eine Nebenfigur oder der Erzähler redete. Jetzt spricht die Spielfigur weiß, jede Nebenfigur in ihrer Sprechfarbe und die Erzählung in einer eigenen Farbe. Die Sprechfarbe steht im Figurenfenster, Vorgabe „automatisch“: eine lesbare Farbe je Figur. Die Farbe der Erzählung steht in den Einstellungen, Vorgabe Hellgrau.
Alte Projektdateien bleiben dabei Byte für Byte, was sie waren. Der knappste Teil des Programms ist sogar elf Bytes kleiner geworden, weil das Färben jetzt außerhalb von ihm geschieht.
-
Im Abspann stehen keine Figuren mehr
Beim ersten Abspann eines Spiels, das gerade entsteht, liefen die Namen über ein schwarzes Bild, und mittendrin standen die Figuren des letzten Raumes. Der Abspann schaltete die Sprites zwar in jedem Bild aus. Seit dem Sprite-Multiplexer vom 13. September schaltete der Rasterinterrupt sie aber aus seinem letzten Plan gleich wieder ein. Jetzt nimmt er im Abspann denselben Weg wie unter einem ganzseitigen Bild: keine Wechsel, alle Sprites aus. Das kostet drei Bytes.
Nachgemessen im Emulator an einem echten Abspann: ohne die Korrektur waren in 10 von 279 Messungen Sprites an, mit ihr in keiner. Die erste Probe hatte übrigens gar keinen echten Abspann gestartet und nur zufällig lauter Nullen gesehen. Aufgefallen ist das erst beim ehrlichen zweiten Anlauf.
-
Musik aus dem Fast-RAM, ohne Aussetzer
Beim Probespielen auf der Vampire V4SA riss die Musik im Vorspann bei jedem Bild ab, und danach dauerte es Sekunden, bis sie wieder einsetzte. Die Ursache lag in der Ladepause: Solange gelesen wird, gibt die Engine dem Betriebssystem die Hardware zurück, und dabei schaltete sie auch Paulas Tonkanäle ab. Wieder an gingen sie erst mit der nächsten Note. Bei einer Aufnahme in Abschnitten von 7,68 Sekunden kann das bis zu acht Sekunden dauern. Jetzt laufen die Tonkanäle durch jede Pause hindurch.
Dazu kam die Frage, warum eigentlich alles im Chip-RAM liegt. Bisher lag dort die ganze Musik, 723 KB für 69 Sekunden. Eine Aufnahme in Abschnitten braucht das nicht: Sie liegt jetzt vollständig im Fast-RAM, und im Chip-RAM stehen nur zwei Puffer zu je 80 KB. Paula spielt den einen, der andere ist schon eingereiht und wird beim nächsten Durchlauf nahtlos übernommen. Danach füllt die Engine den frei gewordenen Puffer mit dem nächsten Abschnitt. Die Musik liegt dabei auf zwei Kanälen in der Mitte, und zwei bleiben für Geräusche frei. Erkannt wird so ein Stück am Modul selbst, einen Schalter in der Werkstatt braucht es nicht. Ein letztes Stocken bei den Zwischensequenzen kam vom Hauptschalter aller DMA-Kanäle, den die Pause kurz mit ausschaltete. Der bleibt jetzt an.
-
Ein Satz steht so lange, wie man zum Lesen braucht
Auf der V4SA liefen die Texte zu schnell ab. Nachgemessen stand im Skript nach fast jedem Satz eine Pause von gut einer Sekunde. Die Engine hätte den Satz länger gezeigt, aber dann kam schon der nächste. Das ist kein Fehler eines einzelnen Skripts, sondern die bequemste Art, eins zu schreiben, und es würde in jedem Spiel wieder passieren.
Deshalb gilt jetzt die Regel, die FABULA auf dem C64 gefunden hat: höchstens acht Sekunden für einen voll ausgenutzten Satz von 76 Zeichen, kürzere anteilig, nie unter 1,8 Sekunden. Der Bau verlängert eine zu kurze Pause nach einem Satz von selbst, und die Engine lässt den Text genauso lange stehen. Weil die Werkstatt über denselben Bau geht, gilt das für jedes Spiel, ohne dass jemand eine Zahl anfasst. Ein Klick kürzt weiterhin jede Pause ab.
-
Die gestrichelte Linie in der Raummitte
Auf Höhe der Raummitte zog sich manchmal eine gestrichelte Linie quer durch den Raum. In einem vollen Raum stand sie in jedem Bild. Dort schaltet der Rasterinterrupt auf den zweiten Zeichensatz um, und er kam in manchen Bildern zu spät. Genau in diesen Takten holt der VIC die Daten der Sprites, die die Zeile kreuzen, und hält dafür die CPU an. Je mehr Figuren auf dieser Höhe stehen, desto länger dauert das. Ein fester Zeitpunkt hilft nicht, nachgemessen an sechs Werten: Was im leeren Raum schon zu früh schreibt, kommt im vollen noch zu spät.
Die Lösung ist deshalb kein Takt, sondern der Inhalt. Der Bau legt unter jedes Zeichen der Zeichenzeile 7 im zweiten Satz eines mit derselben untersten Punktzeile. Dann sieht die Zeile, in der umgeschaltet wird, mit beiden Sätzen gleich aus, und der genaue Zeitpunkt ist gleichgültig. Nachgemessen im Emulator und auf dem Ultimate 64: im vollen Raum vorher in allen 16 Bildern die Linie, jetzt in keinem. Das kostet in der unteren Raumhälfte eine Handvoll bis gut zwanzig Zeichen. Der Import zählt sie schon mit, und läuft ein Raum über, nennt der Bau Raum und Zahl. Beim selben Suchen behoben: In Räumen, die breiter als der Bildschirm sind, schrieben Animationen ihr Zeichen zu weit links hin. Das Licht einer Laterne leuchtete mitten in einer Hauswand.
-
Pünktlich, auch wenn viele Figuren im Raum stehen
In einem Raum mit vielen Figuren kam die Umschaltung auf den zweiten Zeichensatz einige Zeilen zu spät. Die Folge war ein Streifen im falschen Zeichensatz auf Höhe der Raummitte, unter Überlast auch ein gestreifter Boden und eine Leiste voller Zeichenmüll. Gemessen mit Haltepunkten im Emulator kam die Mitte in Zeile 117 bis 124 statt 113, auch in einer Aufstellung, zu der die Prüfung schwieg. Der Grund: Ein Sprite-Wechsel rechnete seine Register Bit für Bit nach und kostete in dichten Zeilen vier bis fünf Rasterzeilen. Trotzdem durfte er bis in die feste Stufe hineinlaufen.
Jetzt ist jeder Wechsel vorausgerechnet und kostet die Hälfte, und keiner läuft mehr in eine Stufe hinein. In jeder Messung kam sie pünktlich. Ein Band, das kurz nach einer solchen Stufe beginnt, bekommt dafür kein Sprite, dessen Wechsel erst hinter ihr käme. Die Prüfung rechnet die Zeit eines Wechsels jetzt mit und warnt, wenn die Spielfigur selbst ein Band verliert, getrennt mit und ohne Zeiger. Gegengeprüft wurde das an sieben Aufstellungen: Wo sie ein fehlendes Band voraussagte, fehlte genau dieses, und sonst keines.
-
Drei Nebenfiguren nebeneinander
Die Sprites werden jetzt nach Zeile vergeben, nicht mehr in der Reihenfolge, in der sich die Figuren anmelden. Kopf- und Beinband einer Figur zu 63 Pixeln teilen sich ein Sprite, und Figuren, die in der Höhe gestaffelt stehen, sind vollständig zu sehen. Vorher fehlten ihnen Bänder. Neben einer Spielfigur zu 63 Pixeln stehen jetzt drei Nebenfiguren gleicher Größe nebeneinander, wo die dritte vorher ohne Kopf und Rumpf war. Nur wenn der Zeiger auf ihrer Höhe steht, verliert sie ihr Beinband.
Dabei kamen zwei Fehler im Rasterinterrupt ans Licht. Lag ein Sprite-Wechsel knapp vor der Raummitte, fielen alle weiteren Wechsel dieses Bildes aus. Und ein Wechsel, dessen Zeile schon erreicht war, wurde bis zur Leiste verschoben und kam damit für jede Figur zu spät. Beides ist behoben. Die neue Vergabe kostet im knappsten Teil des Programms kein Byte. Die Prüfung rechnet sie genau nach und sagt, ob Bänder fehlen oder nur dann, wenn der Zeiger daneben steht.
-
Nebenfiguren wohnen in ihrem Raum
Der Spritevorrat von 47 Blöcken musste bisher alle Figuren eines Spiels tragen. Bei einer Spielfigur zu 63 Pixeln blieben drei Nebenfiguren gleicher Größe übrig, mit Aktionsbild nur zwei. Ein Spiel, das gerade entsteht, braucht sieben. Die Lösung kopiert nichts: Im Block jedes Raumes stand zwischen den Farben und dem zweiten Zeichensatz bisher nur Leere, und der VIC kann Sprites dort direkt lesen. Dort liegen jetzt die Nebenfiguren dieses Raumes: 35 Spriteblöcke bei 40 Spalten, 30 bei 50, 24 bei 63. Das reicht in einem Raum mit 40 Spalten für fünf stehende Figuren zu 63 Pixeln oder acht zu 42, in beliebig vielen Räumen. Im Vorrat bleiben nur der Zeiger und die Spielfiguren.
Eine Figur, die gezeichnet ist, aber noch nirgends vorkommt, kostet keinen Platz mehr. Vorher brach der Bau dann mit „Kein Platz mehr“ ab. Bestehende Projekte sehen gleich aus, im Emulator Bild für Bild gegen den alten Stand verglichen. Platz gab es noch an einer zweiten Stelle: Die festen Sätze der Engine liegen nicht mehr bei den Spieldaten, sondern im freien Speicher hinter dem Abspann. Dazu gehören „Das kann ich nicht mitnehmen.“, die Tempoansagen und die Meldungen des Spielstandmenüs. Das sind rund 500 Bytes mehr für Räume, Dinge und Flags, und dort wurde es bei zwei Dutzend Räumen eng.
-
Die Standardfigur geht im Profil
Im Forum fiel auf, dass die Figur auch beim Gehen nur von vorn zu sehen war. Das stimmte, und es lag nicht an der Engine, sondern an der Zeichnung. Im alten Laufzyklus stand nur der Kopf seitlich. Rumpf, beide Arme und die sich kreuzenden Beine blieben von vorn gemalt, wie bei jemandem, der auf die Kamera zugeht. Jetzt hat die Figur einen schmalen Rumpf, einen Arm, Beine im Schritt und eine Schuhspitze, die nach vorn zeigt.
Der Arm geht mit dem Schritt nach vorn, erst halb, dann ganz, dann wieder halb, und hängt im Stand, wie bei der Figur Ron. Eine erste Fassung ließ ihn gegen das Bein schwingen und dabei hinter den Rücken gehen. Beim Menschen stimmt das, im Sprite sah es falsch herum aus: Beide Beine haben dieselbe Farbe, und welches das nahe ist, erkennt niemand. Die neue Figur gilt für jedes neue Projekt und für die Beispiele, ein eigenes Projekt behält seine Figur. Neu ist dazu das Beispiel Promenade, ein leerer Laufsteg mit vier Pfosten als Maßstab. Es ist dafür da, eine Figur gehen zu sehen.
-
Die Taste W lässt sich abschalten
In einem Spiel mit mehreren Spielfiguren schaltet W durch alle. Eine Geschichte, in der eine zweite Figur nur in bestimmten Passagen gespielt wird und sonst woanders ist, konnte das nicht sperren. Jetzt gibt es in den Einstellungen den Schalter Der Spieler schaltet mit W um. Ist er aus, wechselt nur ein Skript die Figur, und der Tastenzweig fällt beim Bau ganz aus dem Modul. Das sind 40 Bytes weniger im knappsten Teil des Programms. Ist W aus und wechselt kein Skript die Figur, meldet sich die Prüfung, denn dann wäre die zweite Figur nie zu spielen.
-
Die Werkzeuge ziehen nach
Seit dem 13. September hat ein Raum zwei Zeichensätze zu je 256 Zeichen. Der Bildimport zählte aber weiter den ganzen Raum gegen 256 und vereinfachte Bilder, die die Engine unverändert hätte zeigen können. Jetzt zählt und vereinfacht er je Raumhälfte, und das Ergebnis nennt oben und unten getrennt. Nachgemessen an 26 Vorlagen: Bei zwölf mussten bisher Zellen zusammengelegt werden, bis zu 220, jetzt bei keiner. Titel- und Zwischenbilder haben weiter einen Zeichensatz.
Dabei gefunden: Der Import legte für Animationen nie Zeichen zurück, weil er ihre Größe unter einem Namen suchte, den eine Animation gar nicht hat. Jetzt rechnet er ein Zeichen je Animationszelle. Außerdem schnitt das Figurenfenster Figuren zu 63 Pixeln nach 42 Zeilen ab, weil das Malfeld die Größe behielt, die es beim Öffnen hatte. Gespeichert war die Figur immer vollständig, und jetzt wächst das Malfeld mit.
-
Ein Stehbild von der Seite, gelernt an Ron
Die Engine kann eine Figur wirklich seitlich gehen lassen, es kommt nur auf die Zeichnung an. Um das zu zeigen, ist Ron in FABULA eingezogen, die Figur, die WebFritzi aus dem Forum64 für einen eigenen Entwurf gezeichnet hat. Übernommen wurde er unverändert: drei Sprites übereinander, vier Laufbilder und ein eigenes Stehbild. WebFritzi hat erlaubt, Ron weiter als Demo zu verwenden. Die Engine hat daraus dauerhaft gelernt, denn eine Figur kann jetzt ein achtes Bild haben: wie sie von der Seite dasteht. Bisher zeigte sie im Stillstand ihr erstes Laufbild. Das musste zugleich Schritt und Ruhe sein, oder die Figur stand mit einem Fuß in der Luft. Mit dem Stehbild darf der Laufzyklus vier echte Schritte haben. Gemalt wird es nach rechts, nach links spiegelt es der Bau, und auch Nebenfiguren stehen darin.
Ron hat dabei einen Fehler aufgedeckt. Seit dem 13. September las die Engine die Farbe nach dem ersten Band an einer verrutschten Stelle. Rons Beine wurden hellgrau, und in einem anderen Spiel trug eine Figur die Hose einer anderen. Gemalt und gespeichert war alles richtig, nur das Spiel zeigte es falsch. Der automatische Vergleich der gebauten Dateien konnte das nicht sehen.
-
Der Auftakt des ersten Raumes kam nie
Ein Spiel betritt beim Start seinen ersten Raum — und startet gleich danach sein Startskript. Die Engine hat aber nur einen Platz für ein laufendes Skript, und so überschrieb das eine das andere: Wer ein Intro hatte, verlor still den Auftakt seines ersten Raumes. Zu sehen war nichts, es fehlte nur etwas. Jetzt wird das Raumskript vorgemerkt und läuft, wenn das Startskript zu Ende ist — in dem Raum, in dem man dann steht.
-
Ton zum Titelbild
Der Titelschirm stand bisher nur da. Jetzt darf ein kleines Skript mitlaufen, solange er zu sehen ist — für einen Klang, ein Geräusch, ein Musikstück. Ein Klick beendet es und das Spiel fängt an. Mehr als Ton geht dort bewusst nicht: der erste Raum ist zu dieser Zeit noch gar nicht geladen, und was einen Raum braucht, hält die Prüfung auf, bevor gebaut wird.
-
Wer spricht, bewegt den Mund
Sagt eine Figur etwas, springen zwei Punkte in ihrem Gesicht im Takt von der Hautfarbe auf die Umrissfarbe und zurück — sechsmal in der Sekunde, solange der Satz dauert. Es kostet kein gezeichnetes Sprechbild und keinen zweiten Spriteblock: die Engine ändert ein einziges Byte im Kopfband und nimmt es im nächsten Bild zuerst wieder zurück. Wo der Mund sitzt, liest der Bauweg aus dem Stehbild; wer kein Gesicht hat — ein Mond, eine Gestalt unter der Kapuze —, bekommt keinen.
Von selbst spricht die Spielfigur, wenn sie antwortet, und die Nebenfigur, mit der man redet; ein Raumskript erzählt und bewegt keinen Mund. Für alles andere gibt es einen Befehl: Es spricht. Damit liest sich eine Zwischensequenz wie ein Drehbuch — vor jedem Satz steht, wer ihn sagt.
-
Kein Blinzeln mehr beim Hinlegen
Etwas in einem breiten Raum wieder hinzulegen kostete bisher einen ganzen Raumwechsel: acht Kilobyte aus dem Modul, und währenddessen war das Bild aus — ein Blinzeln mitten im Erzählmoment. Jetzt werden nur die Zellen geholt, die das Ding bedeckt, ein paar Dutzend Bytes. Nachgemessen im Emulator: vorher stand das Bild in 17 von 7 214 Abfragen still, jetzt in keiner einzigen von 7 894.
-
Ein Vorspann wie 1987
Maniac Mansion fängt mit einem Meteor an, der auf ein Haus fällt. Die Frage war, ob die Engine so etwas kann — also ist es nachgebaut worden: der Meteor zieht über den Hügel, der Blitz schlägt ein, der Mond geht hinter dem Hügel auf und das Haus baut sich Stück für Stück auf, während die Kamera mitfährt. Dafür sind drei Dinge dazugekommen: ein Skriptbefehl Kamera, der das Fenster eines breiten Raumes an eine Stelle fährt und dort lässt; Nebenfiguren, die hinter dem Hintergrund stehen können — ein Mond hinter dem Hügel, jemand hinter dem Tresen; und eine laufende Nebenfigur, die ein „Zeigen“ übersteht, statt an ihren Anfang zurückzuspringen. Das Beispielprojekt liegt jedem Paket bei.
-
Vier Nebenfiguren, und keiner hat mehr ein festes Sprite
Bisher gehörte Sprite 0 dem Zeiger, 1 bis 3 der Spielfigur, der Rest den Nebenfiguren — fest, ob gebraucht oder nicht. In einer Zwischensequenz belegte der Zeiger sein Sprite trotzdem (und stand sichtbar im Bild), eine Figur mit zwei Bändern hielt ihr drittes, und drei Nebenfiguren nebeneinander gingen nicht.
Jetzt meldet jeder je Bild an, was er braucht, und die Engine verteilt danach — die Reihenfolge der Anmeldung ist der Vorrang. Was über acht hinausgeht, wird multiplext: ein Sprite, dessen Figur oben fertig gezeichnet ist, bekommt weiter unten eine zweite. Das hilft Figuren in verschiedener Höhe; nebeneinander in derselben Zeile bleiben es acht, daran ändert kein Trick etwas. Die Prüfung rechnet das jetzt nach und sagt es.
-
Zweimal 256 Zeichen je Raum
Ein Raum bestand aus 256 verschiedenen Zeichen — für Hintergrund, aufhebbare Dinge und Animationen zusammen. Wer ein Foto importierte oder einen breiten Raum baute, lief dagegen. Jetzt sind es 256 für die obere Bildhälfte und 256 für die untere; der Rasterinterrupt schaltet mitten im Bild um. Alte Projekte sehen Punkt für Punkt aus wie vorher, nachgemessen.
-
Ein Einschlag, der wirklich kracht
Neben den acht eingebauten Geräuschen kann ein Spiel jetzt Samples abspielen: ein Schlag, ein Schrei, ein Donner, bis gut zwei Sekunden. Sie kommen aus einer WAV-Datei in die Werkstatt, und was der C64 daraus macht — sechzehn Stufen, 7 882 Werte je Sekunde — zeigt das Fenster als Kurve. Vorgehört wird nicht am Rechner, sondern im Emulator oder auf echter Hardware, mit demselben Abspielteil, den auch das Spiel benutzt: am Rechner klänge die Aufnahme, nicht der SID.
-
Was man sieht, steht auch drin
Ein Auswahlfeld im Skripteditor zeigte etwas an, das nicht gespeichert war: bei „Raumwechsel" stand im Feld Raum sichtbar der erste Raum — gewählt war aber keiner. Gemerkt hat man es erst, als der Bau abbrach mit „Skript nennt Raum '', den es nicht gibt". Eine feste Auswahlliste kann nichts anzeigen, was nicht in ihr steht; ihr den leeren Wert zu geben, tat schlicht nichts. Jetzt steht drin, was zu sehen ist, und alte Befehle heilen, sobald man sie anklickt.
-
Der Bau sagt jetzt, wo
Seine Meldungen nannten, was fehlt, nicht wo — und bei einem leeren Namen blieb davon nichts übrig, woran man sich hätte orientieren können. Jetzt steht Raum, Ding und Verb davor: start2/Lichtschalter 2 / Drücke: Skript nennt Objekt 'TV', das es in diesem Raum nicht gibt.
Und er fängt gar nicht erst an, wenn die Prüfung eine Lücke findet — ein Skript, das auf einen Namen zeigt, den es nicht gibt. Daraus lässt sich kein Bytecode machen. Die Prüfung wusste das die ganze Zeit; nur durfte sie es bisher erst nach einem gelungenen Bau sagen, und bei einem misslungenen sah man sie nie. Gewöhnliche Hinweise halten den Bau weiterhin nicht auf.
-
Ein Proberaum zum Nachschlagen
Das neue Beispielprojekt zeigt in zwei Räumen jede Fähigkeit der Engine, und die Figur erklärt sie beim Ansehen. Wer wissen will, wie ein Zähler, ein Gespräch oder eine lebende Zelle gebaut wird, sieht dort nach statt im Handbuch. Es liegt in jedem Paket bei.
-
Die Sackgassenprüfung
Lucasfilms Hausregel hieß „keine Sackgassen, kein Tod" — und war eine Regel, eingehalten von Hand. Jetzt wird sie gemessen: die Prüfung meldet, wenn ein Ding verbraucht wird, obwohl eine andere Stelle es noch braucht. Dass die zweite Tür verschlossen bleibt, kann Absicht sein — die Prüfung sagt nur, dass es eine Reihenfolge gibt, nach der es nicht mehr weitergeht.
Dazu eine zweite: ein Ding, das in die Tasche soll und gar keine eigene Ebene hat. Es wäre im Raum unsichtbar. Beim ersten Lauf hat sie prompt einen echten Fall in TIEFENRUF gefunden.
-
Mehrere Spielfiguren
Wie in Maniac Mansion: ein Spiel darf mehrere Spielfiguren haben, jede mit eigenem Ort und eigener Tasche. Die Welt teilen sie sich — wer unten den Strom abschaltet, macht oben das Licht aus. Umgeschaltet wird mit W oder im Skript.
Der Platz dafür kam aus dem Modul: drei volle Figuren wären 48 Spriteblöcke, der VIC hat 47. Also teilen sich alle Spielfiguren einen Platz, und beim Umschalten werden ihre Bilder nachgeladen — denselben Weg gehen Räume, Bilder und Musik ohnehin.
-
Die Figur greift
Jede Figur hat jetzt ein siebtes Bild: sie greift, bückt sich, hebt die Lampe. Ein Skript zeigt es, und es hält, bis sie losgeht. Vorher ging eine Tür auf, ohne dass jemand die Hand ausstreckte.
-
Zähler, und eine Frage nach der Tasche
Flags sind an oder aus — „dreimal am Rad drehen" kostete drei davon, ein Vorrat, der kleiner wird, ging gar nicht. Jetzt gibt es acht Zähler von 0 bis 255, mit den sechs Vergleichen. An den Enden halten sie an, statt umzulaufen: ein leerer Vorrat, der weiter abgäbe, stünde sonst plötzlich auf 255.
Und ein Skript kann endlich fragen, ob die Figur etwas trägt. Bisher musste man beim Aufheben ein Flag mitsetzen und daran denken — genau daraus entstehen die Flags, die gesetzt und nie abgefragt werden.
-
Zwischensequenzen lassen sich überspringen
RUN/STOP überspringt eine Szene. Übersprungen heißt nicht abgebrochen: das Skript läuft vollständig weiter, nur ohne Wartezeit, und zu Fuß geht die Figur achtmal so schnell. Alles, was die Szene setzt und weglegt, geschieht — sonst stünde man danach in einer Welt, in der sie nicht stattgefunden hat.
-
Musik und Geräusche zugleich
Ein Geräusch borgt sich eine SID-Stimme für seine Dauer und gibt sie zurück — das konnte die Engine immer schon, nur ließ sich nicht einstellen, welche. Jetzt je Spiel und je Raum. Die geborgte Stimme verliert ihre laufende Note: auf der Melodie reißt das ein Loch, auf dem Schlagzeug fällt es niemandem auf.
-
Die großen Umlaute stehen wieder auf der Linie
Ä, Ö und Ü baute die Engine bisher aus A, O und U: den Buchstaben eine Zeile tiefer, zwei Punkte darüber. Lesbar — aber sie standen damit tiefer als jeder andere Großbuchstabe und stießen unten an die nächste Zeile. Jetzt sind die drei gezeichnet und sitzen auf derselben Grundlinie wie alles andere, so wie das ß, das sich noch nie ableiten ließ. Der Preis dafür ist echt: wer sein eigenes A malt, bekommt kein passendes Ä mehr geschenkt. Bei den kleinen ä, ö, ü bleibt es beim Ableiten, dort stimmt es.
-
Der Stift radiert auch ohne rechte Maustaste
Im Zeichensatz-Editor ließen sich Pixel malen, aber nicht wieder wegnehmen: die rechte Maustaste war der einzige Radierer, und das stand nirgends im Fenster. Jetzt entscheidet der erste Punkt eines Striches, was er tut — liegt dort schon ein Pixel, radiert der ganze Strich, sonst malt er. Im Figuren- und im Zeigereditor passt ein solcher Umschalter nicht, dort gibt es vier Werte statt an und aus; dafür sagen sie jetzt, dass der Wert „durchsichtig“ der Radiergummi ist.
-
Die Werkstatt weiß, welche Fassung sie ist
Fassung und Baustand stehen jetzt im Fenstertitel und unter „Über“ — vorher gab es keine Nummer, auf die man sich in einem Fehlerbericht berufen konnte. Solange eine Fassung eine Vorabfassung ist, sagt sie das an vier Stellen deutlich, damit keine Testfassung als fertige im Umlauf ist. Und in der Menüleiste steht endlich FABULA statt „Python“.
-
Bündige Texte und ein Inventar in drei Spalten
Die Satzzeile stand um ein Zeichen versetzt zu den Verben darunter; jetzt fluchtet sie. Das Inventar steht in drei Spalten unter den Verben, sechs Dinge sind gleichzeitig zu sehen, und anklickbar ist die ganze Spalte statt nur der Name. Dabei kamen zwei alte Fehler ans Licht, die niemand gemeldet hatte: beim Bildwechsel blitzte die Bedienleiste kurz in der Farbe des Raums auf, und eine Zeile über der Leiste blieb in dieser Farbe stehen. Beides ist weg, auf echter Hardware nachgemessen und nicht nur im Emulator.
-
Verben auf das Inventar
„Schau an Ansichtskarte“ hob beim Testen auf der V4SA nur die Karte hervor, sonst geschah nichts. Ein Klick ins Inventar nahm das Stück in die Hand, gleich mit welchem Verb. Die Skripte der Gegenstände waren da, aber nicht zu erreichen. Jetzt verhält es sich wie in Monkey Island 2 und Indiana Jones 4. Hat ein Gegenstand für das Verb ein eigenes Skript oder braucht das Verb nur ein Ding, wird es sofort ausgeführt. Bei „Benutze“ oder „Gib“ kommt er in die Hand und wartet auf das zweite Ding. Dasselbe Stück noch einmal angeklickt legt es wieder weg, und die rechte Maustaste heißt auf einem Gegenstand „Schau an“.
Im selben Test ließ sich ein Kofferraum öffnen, ohne dass man es sah. Dafür fehlten der Engine zwei Dinge. Ein zugeklappter Zustand wurde beim erneuten Betreten nicht wieder gemalt. Und ein Ding, das zurück ins Bild kam, brachte sein ursprüngliches Bild mit, samt allem, was längst eingesteckt war. Jetzt werden beim Wiedererscheinen die Ebenen der anderen Dinge, die weg oder verändert sind, in ihrer Reihenfolge nachgemalt. Das gilt für jedes Ding, das über einem anderen liegt.
-
Wie groß eine Figur ist, sagt das Bild
An der Ortseinfahrt war die Spielfigur größer als das Stadttor. Wie groß eine Figur vorn und hinten im Raum wird, stand bis dahin als eine Angabe für alle Räume in der Engine: 70 Punkte vorn, 58 hinten. Ein Raum aus der Nähe braucht aber große Figuren und eine Totale kleine. Wie groß ein Mensch im Bild ist, ist eine Eigenschaft des Bildes.
Jetzt hat jeder Raum seine eigene Tiefe: vordere und hintere Bodenzeile, jeweils mit der Figurhöhe dort, dazwischen teilt die Engine. In der Werkstatt stehen dafür zwei Maßfiguren im Bild, denn ob ein Mensch durchs Tor passt, sieht man nur an einem Menschen. Der Blitter skaliert nicht, also wählt die Engine unter fertigen Größenstufen der Figur, und ein weit weg gemalter Raum braucht kleinere Stufen. Ältere Spieldateien bleiben gültig. Ein Raum ohne eigene Tiefe sieht aus wie vorher: im Emulator vor und nach der Änderung fotografiert, kein einziger Punkt anders.
-
Der Guru beim Beenden
Das Spiel lief auf der V4SA, warf beim Beenden aber jedes Mal einen Guru. Im Emulator ließ sich das nachstellen: Absturz, Neustart, und das Spiel begann von vorn. Der Fehler stand seit dem zweiten Meilenstein im Quelltext. Ein Aufruf, der zur intuition.library gehört, ging an die graphics.library. Unter derselben Nummer liegt dort eine Funktion, die eine Speicherstruktur anlegt, und die schrieb sie beim Beenden über die untersten 40 Bytes des Speichers. Dort stehen der Zeiger auf die exec.library und die Ausnahmevektoren, und danach führte jeder Griff dorthin ins Leere.
So lange unentdeckt blieb das, weil ausgerechnet die Fassung mit Protokoll, mit der gesucht wurde, im betreffenden Register zufällig einen gültigen Zeiger hatte. Sie schrieb ihre 40 Bytes an eine Stelle, die niemand mehr brauchte, und lief sauber durch. Jetzt geht der Aufruf an die richtige Bibliothek, alle übrigen Bibliotheksaufrufe der Engine sind gegengeprüft, und auf der V4SA ist das Beenden sauber.
-
Dinge in der Tasche
Getragene Dinge haben jetzt eigene Skripte. Man kann mit ihnen reden, sie für sich benutzen und zwei von ihnen miteinander kombinieren — passt die Verbindung, verschwinden beide aus dem Inventar, und es bleibt das neue Ding. Ein Skript darf dafür ein Ding aus einem ganz anderen Raum einstecken; so kann ein Spiel der Figur auch schon beim Start etwas in die Tasche legen. Geprüft im Emulator und mit SENDESCHLUSS vom Titel bis zum Ende.
-
Platz geschaffen
Die Engine war an zwei Stellen fast voll: unter der Grafik blieben in einem Spiel noch 60 Bytes, bei den Spieldaten in einem anderen 28. Zwei Umzüge haben das gelöst, ohne eine Zeile Spielcode umzuschreiben — der Abspanntext liegt jetzt im freien Speicher hinter dem Zustand der Räume, die Notentabelle bei den Spieldaten. Danach sind unter der Grafik wieder über 500 Bytes frei und bei den Spieldaten bis zu 1000. Geprüft, indem SENDESCHLUSS vom Titel bis zum Ende durchgespielt wurde.
-
Die rechte Maustaste bekommt eine Aufgabe
Noch zwei Wünsche aus dem Forum. Ein Rechtsklick auf ein Ding führt sofort ein Verb aus — Vorgabe „Schau an“, in den Einstellungen wählbar oder abschaltbar. Und das gemerkte Ding ist jetzt zu sehen: zeigt der Zeiger auf nichts, steht es in der Satzzeile; zeigt er auf ein anderes Ding, steht dieses da, wie bei den späteren Vorbildern.
-
Die Figuren drehen sich zu den Dingen
Bisher kannten die Figuren nur die Seitenansicht. Jetzt haben sie auch ein Bild von vorn und eines von hinten, und die Spielfigur wendet sich dem zu, womit sie etwas tut — an der Wanduhr sieht man ihren Rücken, so wie bei Zak McKracken. Nebenfiguren können genauso nach vorn oder hinten schauen, und für Zwischensequenzen gibt es einen Skriptbefehl, der die Spielfigur zum Betrachter dreht. Die Richtung rechnet die Werkstatt aus der Lage des Dings; wo sie danebenliegt, legt man sie am Ding selbst fest.
-
Weniger klicken, weniger Verben
Zwei Wünsche aus dem Forum. Das zuletzt angefasste Ding bleibt gewählt: wer den Becher angeschaut hat und dann auf „Nimm“ klickt, muss ihn nicht noch einmal anklicken. Und ein Spiel darf mit weniger als neun Verben auskommen — ein Feld in den Einstellungen leer lassen, und die übrigen rücken in der Leiste zusammen. Skripte eines weggelassenen Verbs gehen dabei nicht verloren; sie gelten wieder, sobald es zurückkommt.
-
Kein Aufblitzen mehr beim Start
Zwischen Titelbild und Vorspann blitzte bisher kurz auf, was dort nicht hingehört: die Bedienleiste, der erste Raum, ein „Gehe zu“ in der Satzzeile. Beginnt ein Spiel mit einem Bild oder einer Szene, bleibt der Schirm jetzt ruhig, bis sie da ist. Nachgemessen Bild für Bild im Emulator, vorher und nachher.
-
Inventarbilder werden gezeichnet, nicht ausgeschnitten
Bisher schnitt der Bau das Bild für das Inventar aus dem Raumbild, 32 × 24 Punkte um die Mitte des Hotspots. Heraus kam ein Stück Hintergrund mit einem Ding darin, zum Beispiel ein Schlüssel auf einem Kofferraumdeckel statt einfach eines Schlüssels.
Jetzt hat jedes Ding sein eigenes Inventarbild, 32 × 24 Punkte mit durchsichtigem Grund. In der Werkstatt steht es mit Vorschau am Ding, und dazu gibt es einen kleinen Maler: zehnfach vergrößert, sechzehn Farben und eine Auswahl für andere, Stift und Füllen, mit der rechten Taste wird radiert. Es ist bewusst kein zweiter großer Maleditor: Der große malt Räume, der kleine Gegenstände, und jeder ist so groß wie das, was er malt. Der Bau rechnet alle Inventarbilder gemeinsam auf die zehn Farben der Leiste um. Ein Ding ohne eigenes Bild wird wie früher ausgeschnitten.
-
Zwei Sprachen in einer Spieldatei
Alles, was im Spiel Worte zeigt, holt sie über eine Nummer aus einer Textablage: Verben, Dingnamen, Sätze, Gesprächszeilen, Abspann und die Texte der Engine. Eine zweite Sprache ist deshalb eine zweite Ablage mit denselben Nummern, und Umschalten heißt, drei Zeiger umzusetzen. Der Rest der Engine muss davon nichts wissen. Bis zu drei weitere Sprachen passen in eine Spieldatei. Was keine Übersetzung hat, bleibt deutsch, und der Bau zählt es. Die Prüfung misst die Übersetzung an denselben Grenzen wie das Original.
Im Spiel erscheint dann im Menü ein fünfter Eintrag, der die jeweils andere Sprache nennt: „English“ auf Deutsch, „Deutsch“ auf Englisch. In der Werkstatt zeigt ein Fenster jeden sichtbaren Text neben seiner Übersetzung und zählt, wie viele noch fehlen. WILLKOMMEN ZURÜCK hat so 921 von 931 Texten auf Englisch bekommen, die übrigen zehn sind Namen.
-
Durchgespielt auf echter Hardware
Am Abend des 9. September kam ein automatischer Durchlauf zum ersten Mal durch das ganze SENDESCHLUSS. Dabei stieß er auf einen Absturz, den noch niemand gesehen hatte, weil noch niemand so weit gekommen war. Die Hauptschleife holt sich am Anfang eines Bildes den hinteren Zeichenpuffer und malt am Ende hinein. Wechselte dazwischen der Raum in einen anders breiten, wurden neue Puffer angelegt und die alten freigegeben, und der Rest des Bildes malte in Speicher, der schon wieder frei war. Sichtbar wurde das erst beim nächsten Speicherzugriff des Systems, als Guru oder als schwarz stehender Rechner. Nach der Korrektur lief das Spiel von der ersten bis zur letzten Szene durch.
Am 10. September wurde SENDESCHLUSS dann auf der Vampire V4SA von Hand durchgespielt. Der erste Satz der Rückmeldung: keine Abstürze. Dazu kamen Hinweise, aus denen Regeln wurden. Nach dem Schluss gab es keinen Ausgang aus dem Spiel. Auf dem C64 ist der Ausschalter der übliche Weg, auf dem Amiga nicht. Jetzt gilt: Steht ein Bild, das kein Klick abräumt, und läuft kein Skript mehr, sind Menü und Mauszeiger wieder da. Außerdem steht „mit …“ in der Satzzeile nur noch hinter Verben, die im jeweiligen Spiel wirklich ein zweites Ding kennen. Das wird an den Skripten abgelesen, nicht an einer Liste, die jemand pflegen müsste.
-
Zeiger, Schrift, Figuren und Musik
Ein Abgleich mit dem C64-Editor, Befehl für Befehl und Menü für Menü, ergab zweierlei. Die Engine kann alles, was die C64-Engine kann, und drei Befehle mehr. Der Werkstatt aber fehlten vier Werkzeuge, und die Engine hatte ihre eigenen Sätze fest im Programm, sodass ein englisches Spiel ein deutsches Menü gehabt hätte. Das war der ernsteste Punkt und kam deshalb zuerst. Die vierzehn Texte der Engine, vom Satz beim Einstecken bis zu den Wörtern des Menüs, gehören jetzt dem Spiel, und jedes Spiel kann sie ersetzen.
Dann kamen die Werkzeuge. Der Mauszeiger lag nicht einmal in einer Datei, sondern im Programm. Jetzt steht er in der Spieldatei und hat einen eigenen Maler. Der Zeichensatzmaler zeigt unter dem Raster eine Probezeile, weil ein Zeichen allein nichts sagt: Erst neben seinen Nachbarn sieht man, ob es zu eng steht. Der Figurenmaler malt nicht in die fertige Figurdatei, sondern in die Einzelbilder, aus denen sie gebaut wird, sonst wäre beim nächsten Bau alles wieder weg. Für Musik gibt es keinen eigenen Editor, sondern einen Import für MOD und XM. Was ein XM mehr kann als ein ProTracker-Modul, wird gemeldet und nicht erfunden.
-
Der Absturz nach dem Beenden
Auf der V4SA fror der Rechner nach dem Beenden über das Menü ein oder zeigte eine Software Failure. Im Emulator war derselbe Weg sauber. Ein Protokoll sollte zeigen, wie weit das Beenden kommt, aber es kam keine Datei an, nicht einmal ein Bildschirmfoto, das lange vorher entstanden war. Also wurde zuerst geprüft, ob das Programm auf dieser Maschine überhaupt schreiben kann. Erst als eine Marke ankam, geschrieben bevor die Engine die Hardware übernimmt, war das Fehlen der zweiten Datei eine Auskunft. Eine Messung, die nichts liefert, muss zuerst sich selbst prüfen.
Die Ursache war eine fehlende Zeile. Die Engine läuft minutenlang mit gesperrten Interrupts, während Paula ihre Tonkanäle weiterspielt, und deren Meldungen sammeln sich an. In dem Augenblick, in dem das Betriebssystem seine Interrupts zurückbekam, feuerten sie alle auf einmal, und zwar in die Handler des Audio-Treibers, der von diesen Kanälen nichts wusste. Jetzt werden die angesammelten Meldungen vorher gelöscht. Drei weitere Läufe auf der V4SA, ohne jede Messung und nur mit dieser Zeile: kein Guru.
-
Koala-Bilder und Figuren importieren
Die Werkstatt liest jetzt Koala-Dateien, das Austauschformat vieler C64-Malprogramme. Nichts wird skaliert und keine Farbe geraten — nur wo Koala in einer Zelle mehr Farben erlaubt als FABULA, muss eine weichen. Für Räume gibt es dazu einen Zuschnitt, der nicht verkleinert, sondern ausschneidet. Und Figuren muss man nicht mehr Punkt für Punkt malen: ein Bild importieren, die Werkstatt schlägt die Farben vor und zeigt neben jeder, wie viel sie tatsächlich färbt.
-
Der Gesprächseditor
Ein Gesprächssatz ließ sich in der Werkstatt gar nicht anlegen. Die Angaben eines Dings zählten nur, wie viele Sätze es hat. Wer ein Spiel mit Gesprächen bauen wollte, musste sie anderswo schreiben. Dabei war alles darunter fertig: Bau, Engine und Prüfung kannten Gespräche längst. Es fehlte die Oberfläche, und das war die größte Lücke gegenüber dem C64-Editor.
Jetzt gibt es rechts eine vierte Karte neben Angaben, Skripte und Belebt. Ein eigenes Fenster wäre der falsche Ort, denn ein Gespräch gehört zu einem Ding wie sein Hotspot. Oben stehen die Sätze, darunter „nur wenn“, „solange nicht“, „nur einmal sagbar“ und „beendet das Gespräch“, und dann die Antwort. Die Antwort ist dieselbe Skriptansicht wie auf der Karte daneben. Ein zweiter, kleinerer Antworteditor hätte irgendwann weniger gekonnt als der große, und niemand hätte gewusst, warum. Am selben Tag wurde die Tür zu einem Feld wie auf dem C64, und „Benutze X mit Y“ lässt sich jetzt direkt anlegen.
-
Ein Test, der das Spiel wirklich durchspielt
Die Rätselprüfung sagt, dass sich ein Spiel lösen lässt. Ob die Sätze unterwegs zusammenpassen, sagt sie nicht. Dafür gibt es jetzt ein Prüfstück, das SENDESCHLUSS vom Titel bis zum Ende mit echten Klicks spielt und vor jedem Klick liest, was in der Satzzeile steht — wie ein Mensch. Einen Menschen ersetzt es trotzdem nicht: ob sich ein Satz wie eine Sackgasse anfühlt, merkt nur, wer davorsitzt.
-
Ein Paket je System
FABULA lässt sich jetzt als fertiges Paket bauen: für den Mac eine eigenständige App, für Apple Silicon und für Intel, für Windows ein Ordner, der ohne Installation startet. Das mitgelieferte SENDESCHLUSS wird auf allen drei Systemen zum selben Modul, Byte für Byte.
-
Was das Forum gefunden hat
Ein Ding, das man allein benutzen kann, reagiert jetzt schon beim ersten Klick auf „Benutze“ — vorher wartete das Spiel immer auf ein zweites. Gibt es für dasselbe Ding auch eine Kombination, wartet es weiter, sonst käme niemand mehr zur Lösung. Und das Handbuch hat ein neues Kapitel „Geht das?“: sieben typische Wünsche, jeder mit dem kürzesten Skript, das ihn erfüllt, dazu ein Abschnitt darüber, was nicht geht.
-
SENDESCHLUSS zieht um
Die ehrlichste Frage an Engine und Werkstatt ist nicht, ob eine Probe läuft, sondern ob ein fertiges Spiel läuft. Also wurde SENDESCHLUSS vom C64 herübergeholt: acht Räume, 58 Dinge, 385 Skriptbefehle. Alle 19 Befehlsarten, die es benutzt, gibt es auf beiden Seiten, und die Prüfung lief ohne eine Meldung durch. Was fehlte, ergab eine Liste von fünf Punkten, und die wurde am selben Abend abgearbeitet.
Breite Räume rollen jetzt weich, Punkt für Punkt. Raum und Leiste liegen dafür in einer einzigen Bitmap untereinander, damit am Übergang nichts mehr umgeschaltet werden muss. Ob eine Figur hinter einem Geländer verschwindet, entscheidet eine Maske Punkt für Punkt und keine Farbregel, denn in einem gerasterten Bild mit 192 Farben liefert eine Farbregel ein Sieb statt eines Zauns. Figuren, Musik und alle acht Geräusche wurden aus den C64-Daten gerechnet. Was der SID je Bild verändert und Paula nicht kann, etwa Filter und Pulsbreitenmodulation, fällt weg. Die Räume bekamen einen Amiga-Anstrich: Aus denselben Bildern werden statt sieben rund 190 Farben, mit farbigen Schatten, Volumen und Lichtschein, ohne dass etwas dazuerfunden wird.
-
Die erste echte Maschine
Bis hierher war der Emulator der einzige Richter. Seit dem 6. September läuft FABULA auch auf einer Vampire V4 Standalone. Sie ist nicht die Zielmaschine: Ein 68080 mit einem Gigabyte Speicher sagt über Ladezeiten auf einem A1200 nichts. Aber sie beantwortet die andere Frage, ob es überhaupt läuft.
Das Laden lief auf Anhieb, samt Entpacken und stimmenden Prüfsummen. Die Engine dagegen blieb stehen. Der Rasterzähler meldete höchstens Zeile 262, die Maschine lief also in NTSC. Die ganze Anzeige ist aber auf PAL gebaut. Auf jedem NTSC-Amiga wäre dasselbe passiert, nur stand der Emulator auf PAL und konnte es nie zeigen. Jetzt stellt die Engine beim Start auf PAL um und beim Beenden wieder zurück, was vorher galt. Das wird am Rasterzähler gemessen, denn das zuständige Register lässt sich nicht lesen. Zwei Warteschleifen, die sich auf einer unerwarteten Maschine endlos gedreht hätten, haben eine Notbremse bekommen. Danach lief das Spiel dreißig Minuten ohne Unterbrechung, von Hand gespielt.
-
Die Werkstatt entsteht
Die Werkstatt ist ein Programm für moderne Rechner, geschrieben in Python mit Qt. Der Amiga bekommt das fertige Spiel, nicht das Werkzeug. Eine zweite Werkstatt auf dem Amiga hieße, dass dieselbe Logik zweimal existiert, für immer: Jeder neue Befehl und jede Prüfregel müsste in beide. Damit die Tür trotzdem offen bleibt, ist die Projektdatei ein schlichtes Blockformat, das auch ein anderes Werkzeug lesen könnte. Die Probe dafür: Aus der gespeicherten Projektdatei entsteht Byte für Byte dieselbe Spieldatei wie aus dem ursprünglichen Quelltext.
Am selben Tag kamen Raumansicht, Skripteditor und Maleditor dazu. Die Raumansicht zeigt nicht das PNG, sondern das umgerechnete Raumbild, denn wer Hotspots auf ein Bild zieht, das es so im Spiel nicht gibt, liegt daneben. Der Maleditor malt auf Farbnummern und nicht auf RGB, weil ein Editor, der beim Speichern umrechnet, dem Zeichner die Farben ändert. Zum Schluss wurde die Werkstatt an sich selbst geprüft, mit einem Spiel, das von null an gebaut wurde. Sie fand eine Sackgasse: Ein frisch angelegtes Ding hatte keine Skripte, und die Liste zeigte nur vorhandene. Mit einem neuen Ding kam man also keinen Schritt weiter. Jetzt stehen dort alle Verben, die leeren mit „(noch leer)“. Bis zum Nachmittag folgten belebte Stellen, ein Rückgängig-Stapel für alles, Handbuch und Tastenliste im Fenster und eine englische Oberfläche.
-
Die ganze Engine läuft unter WHDLoad
TheA500 Mini, MiSTer und die üblichen Sammlungen erwarten ein WHDLoad-Paket. FABULA hat dafür einen eigenen Slave bekommen, in Assembler, weil WHDLoad einen einzigen, vollständig verschiebbaren Programmblock verlangt. Dahinter läuft dieselbe Engine, nur ohne Betriebssystem und ohne C-Bibliothek gebaut: Dateien kommen über WHDLoad, Speicher über einen eigenen kleinen Verwalter. Raum, Figur, Leiste, Skripte, Inventar und der Raumwechsel mit Nachladen, Entpacken und Prüfsumme laufen alle. Ausgeliefert wird eine Schublade mit beiden Fassungen und einer einzigen Spieldatei.
Am nächsten Morgen fiel auf, was noch nicht passte: Unter WHDLoad blieb der Schirm beim Raumwechsel zwölf Sekunden schwarz. Der erste Verdacht war das Chip-RAM, und der brachte acht Prozent. Der eigentliche Grund war der Befehlscache. WHDLoad schaltet ihn auf einem Rechner ohne MMU ab, damit alte Spiele laufen, die ihren eigenen Code verändern, und ein 68020 ohne Cache holt jeden Befehl einzeln aus dem Speicher. Der Slave schaltet jetzt den Befehlscache ein, den Datencache aber nicht, und bittet um Fast-RAM. Aus zwölf Sekunden wurden knapp drei.
-
Ein Bit, 54 Prozent weniger Zeit
Am ersten Tag stand die Werkzeugkette im Projekt, und das erste AGA-Bild erschien auf dem Schirm: 320 × 256 Punkte in acht Bitplanes, jede Zeile in einer eigenen Farbe. Kurz darauf folgten ein echtes Raumbild mit 256 eigenen Farben, zwei Zeichenpuffer und eine Figur, die der Blitter maskiert und punktgenau setzt. Bis Mitternacht kamen Laufflächen, Wegsuche, Gehzyklus und Größe nach Tiefe dazu, dann die Bedienleiste unter dem Raum und ein Inventar mit Bildern wie in Monkey Island 2.
Gemessen wurde von Anfang an, auf einem emulierten A1200 ohne Fast-RAM. Drei Figuren je Bild wegzuräumen und neu zu malen kostete 178 von 313 Rasterzeilen. Mit einem eigenen Palettenbereich, der den Figuren fünf statt acht Bitplanes lässt, waren es 129. Dann kam ein einziges Bit, das dem Blitter Vorrang vor der CPU am Chip-Bus gibt. Ohne dieses Bit nahm die Schleife, die auf den Blitter wartet, ihm genau die Zyklen weg, auf die sie wartete. Mit dem Bit waren es 59 Zeilen, also 54 Prozent weniger Zeit.
-
Das Handbuch auf Englisch
Das ganze Handbuch gibt es jetzt auch auf Englisch. Übersetzt wurde nicht Wort für Wort, sondern gegen die englische Oberfläche: jeder Befehl und jedes Feld heißt im Handbuch so, wie es auf dem Bildschirm steht.
-
SENDESCHLUSS ist da
Das Spiel zur Engine gibt es ab heute kostenlos zum Herunterladen — als EasyFlash-Modul für den echten C64, den Ultimate 64 oder den Emulator. Acht Räume, gut eine halbe Stunde. Die Engine, mit der es gebaut ist, folgt später.
-
Die Werkstatt ist ein richtiges Programm geworden
FABULA startet jetzt wie jede andere Mac-Anwendung — mit eigenem Namen im Menü und eigenem Symbol, statt aus einem Terminalfenster heraus. Für die Arbeit ändert das nichts, für das Gefühl beim Benutzen alles.
-
SENDESCHLUSS ist einmal komplett durchgespielt
Das kleine Beispielspiel ist zum Vorzeigespiel ausgebaut worden: ein Radiostudio, ein Keller, ein Dach, ein Anruf, der wirklich klingelt, und ein Ende, das nur findet, wer vorher unten war. Beim Durchspielen kamen fünf Unstimmigkeiten heraus — alle behoben. Ein Spiel, das man von vorn bis hinten spielen kann, ist der beste Prüfstein für eine Engine.
-
Die Maus zittert nicht mehr
Im Emulator zuckte der Mauszeiger. Der erste Verdacht fiel auf den Emulator — falsch, wie sich zeigte. Gemessen wird jetzt am Bildanfang, und der Zeiger steht ruhig. Der Fehler und die vorschnelle Erklärung stehen beide im Handbuch.
-
Viele kleine Ärgernisse in der Werkstatt
Ein Rückgängig löschte ein ganzes Skript. Ein Knopf tat nichts. Beim Zeichnen sah man nicht, was man malt. Ohne Maus kam man nicht über das Intro hinaus. Solche Dinge fallen erst beim wirklichen Arbeiten auf — und sie sind der Grund, warum vor der Veröffentlichung noch einmal gründlich gespielt wird.
-
Kein Java mehr nötig
FABULA übersetzt seinen C64-Code jetzt mit einem selbst geschriebenen Werkzeug. Vorher brauchte es dafür Java und ein fremdes Programm — beides muss niemand mehr installieren, der später mit FABULA arbeitet. Dass der Tausch nichts verändert hat, ist bewiesen: Die fertigen Spiele sind Byte für Byte dieselben wie vorher.