TIC-80, eine Fantasiekonsole
TIC-80 ist eine Fantasiekonsole, um darauf kleine Spiele zu programmieren, zu teilen und natürlich auch zu zocken. Es gibt eingebaute Werkzeuge zum Programmieren, zum Erstellen von Figuren (den Sprites) und Karten und von Tönen und Melodien.
Besonders interessant ist, dass das Programm auch kostenlos für Android über den Google Play Store erhältlich ist und so das Zocken, Komponieren und Programmieren auch auf einem Android-Handy oder Android-Tablet erlaubt. Mit einer angeschlossenen Bluetooth-Tastatur machst du aus deinem Telefon einen vollwertigen, programmierbaren Homecomputer. Hier ist die URL zum Playstore:
Du kannst TIC-80 entweder auf deinem Rechner installieren oder direkt im Browser ausprobieren. Der Autor Vadim Grigoruk verkauft für US$5 eine Pro-Version auf itch.io. Diese wird aber zum Spielen oder Erstellen eigener Spiele nicht benötigt. Vielleicht willst du seine Arbeit aber unterstützen und kaufst dir deshalb die Pro-Version.
Hast du TIC-80 heruntergeladen und auf deinem Rechner installiert, ladest du beim Start des Programms in einer Befehlszeile.
Tippst du dort surf
und die Eingabetaste, bekommst du in einer Liste von Programmen angezeigt. Du kannst diese Liste mit den Pfeiltasten oder auch mit einem Game Controller durchstreifen und dir interessante Spiele, Demos, Musikstücke oder Werkszeuge auf deinen Computer laden, den Quellcode inspizieren und das Programm ausführen.
Für TIC-80 (und andere Fantasiekonsolen wie PICO-8) habe ich mir diese einfachen Controller gekauft:
TIC-80 unterstützt zwei solcher Controller. Das hängt aber natürlich vom Spiel ab.
Unter tic.computer/play kannst du auch alle Spiel erst einmal kostenlos ausprobieren, dir Nutzerkommentare durchlesen, sie selber bewerten und die Spiele dann herunterladen. Sie sind alle kostenlos.
Auch in der Version im Browser kannst du dir den Quellcode eines Spieles ansehen, indem du Esc
drückst, das Spiel verlässt und dann in der Befehlszeile edit
tippst. Hier ist der Quellecode von 8-Bit-Panda:
Diese Programmiersprache ist Lua. Lua ist in der Spielewelt sehr verbreitet und eine gut Anfängersprache. Leider ist sie nicht so verbreitet wie z.B. Python, so dass ich hier kein deutsches Lua-Buch zum Lernen der Sprache empfehlen kann. Es gibt aber ein paar Online-Anleitungen zu dieser Programmiersprache:
- Lua lernen von Henrik Ilgen
- Lua: für Anfänger von Robert Schmitz
- Lean Lua in 15 Minutes. English und wenn du schon etwas programmieren kannst
Neben der Programmiersprache brauchst du zum Schreiben von Programmen für TIC-80 auch noch ein paar Informationen zu der Umgebung selbst. Die findest du unter tic.computer/learn.
Hier erfährst du folgendes über TIC-80:
ANZEIGE | 240x136 Bildpunkte ("Pixel"), 16 Farben in einer Palette |
STEUERUNG | 2 Game-Pads mit 8 Knöpfen oder Bedienung mit der Maus |
FIGUREN | 256 8x8 Figuren ("Sprites") und 256 8x8 Hintergrundkacheln |
KARTE | 240x136 Zellen, 1920x1088 Pixel |
KLÄNGE | 4 Kanäle mit einstellbarer Wellenform |
CODE | 64KB in Lua, Moonscript, JavaScript, Wren oder Fennel |
Die letzte Zeile ist interessant. TIC-80 unterstützt nicht nur Lua, sondern auch anderen Programmiersprachen, u.a. Wren und Javascript. Javascript ist sicher die bekannteste Programmiersprache in dieser Liste. Jeder Web-Browser spricht sie. Javascript hat aber auch ein paar sehr unschöne Eigenschaften, die sie als Anfängersprache eher ungeeignet macht.
Aber hey, ich will dich nicht davon abhalten, TIC-80-Programme in Javascript zu schreiben. Javascript hat definitiv viele Vorteile. Es ist - wie gesagt, zwar eine etwas merkwürdige Sprache, aber sie ist sehr verbreitet (in Web-Browsern, aber z.B. auch zum Steuern von Hardware). Gordon Williams hat Javascript als Espruino herausgebracht, verkauft einige günstige Hardware damit und hat ein schönes Buch mit vielen Experimenten geschrieben, das es sogar in Deutsch in der Bonner Stadtbücherei gibt.
Auf der /learn-Seite erklärt Vadim auch noch die Befehle, die du in der Befehlszeile von TIC-80 ausprobieren kannst:
help | Zeige erlaubte Befehle |
ram | Zeige Aufteilung des Speichers (80kByte) |
exit | Verlasse TIC-80 |
new | Lege ein neues Programm ("Cartrige") an |
load |
Lade eine .tic Cartridge aus einem Ordner |
save |
Speichere eine .tic Cartridge in einen Ordner |
run | Starte das aktuelle Projekte (die Cartridge) |
dir | Liste die lokalen Dateien |
folder | Öffne das Arbeitsverzeichnis in Windows, Linux, oder macOS |
add | Zeige ein Formular zum Hinzufügen einer Datei |
del |
Lösche eine Datei (VORSICHT!) |
get |
Zeige ein Formular zum Herunterladen einer Datei |
export |
Exporte [html, native, sprites, cover, map] Dinge aus TIC-80 |
import |
Importiere [sprites, cover, map] Dinge aus einer .gif-Datei |
cls | Leere den Bildschirm |
demo | Installiere Demo Cartridges (= Spiele usw.) |
config [reset] | Lade die Einstellungen des Systems |
Weitere Details findest du im englischen Handbuch von TIC-80. In diesem Handbuch gibt es eine Seite mit Anleitungen. Ein Autor namens Bear Thorne hat dort eine sehr schöne Beschreibung der allgemeinen Struktur eines Spiels geschrieben. Die solltest du dir auf jeden Fall anschauen.
Um mit dem Programmieren eigener Spiele zu beginnen, lohnt es sich, bestehende Spiele anzusehen. Unter tic.computer/play findest du viele Beispiele. Das Tolle an TIC-80 ist, dass du in all diese Spiele hineinschauen kannst. Wenn du ein wenig schummeln und z.B. deinen Punktestand hochsetzen möchtest, geht das natürlich auch!
Bist du sehr ambitioniert und möchtest direkt einen eigenen Platformer schreiben, möchte ich dir den Artikel von Bruno Oliveira zu seinem Spiel 8-Bit Panda empfehlen. Der Artikel ist zwar auf Englisch. Wenn du aber den Chrome-Browser benutzt (ausnahmsweise - ich vermeide diesen Browser normalerweise), so kannst du mit dessen automatischer Übersetzungsfunktion den Artikel in Deutsch lesen.
Das Übersetzen geht normalerweise automatisch:
Es kann allerdings sein, dass du Übersetzungen für Englisch erst aktivieren musst. klicke dazu auf die drei Punkte oben rechts in deinem Chrome oder Chromium-Browser, dann auf Einstellungen und dort, weit unten unter Erweitert auf Sprachen und aktiviere dort über die drei Punkte hinter "Englisch (vereinigte Staaten)" das Übersetzen dieser Sprache.
Doch kommen wir nun zu Wren, was ich dir ja eigentlich zeigen wollte.
TIC-80 programmieren mit Wren
Wir starten mal wie Borb in seinem Tutorial mit der Start-Cartridge, die TIC-80 mit jedem neuen Programm einrichtet, und übersetzen diese in Wren. Die Dokumentation von Wren findest du online im Handbuch der Sprache.
Hier ist das Default-Spiel in Wren:
(wird fortgesetzt)