Kurse für Tuxracer 0.61 erstellen
Bei diesem Tutorial geht es um Kurse für die Open-Source-Version von 0.61 von Tuxracer. Es ist die Version, die unter Linux den meisten Distributionen beiliegt. Damit das Programm läuft, muss auf jeden Fall die 3D-Unterstützung eingerichtet sein.
Ein kurzes (und gutes) Tutorial von Karsten Eiser finden Sie bei
Pro-Linux unter der Adresse
http://www.pl-berichte.de/spiele/tuxracerkurse.html
Ich möchte Karstens Tutorial kein besseres entgegenstellen, sondern mich besonders an jene "Racer" wenden, die noch etwas mehr Informationen brauchen, um zurechtzukommen.
Inhaltsverzeichnis:
1. Woraus besteht ein Kurs?2. Was benötigt man?
3. Vorbereitung: Arbeitsumgebung einrichten
4. Gimp einrichten
5. Den Kurs erstellen
6. Die Datei course.tcl
7. Wie groß soll der Kurs sein?
8. Einige Tipps zum Erstellen von Kursen
9. Den Kurs veröffentlichen
Einleitung: Warum eigene Kurse?
Man könnte die Frage noch erweitern und hinzufügen: Und warum ausgerechnet zur spartanisch ausgestatteten Version 0.61? Die Antwort könnte so ausfallen: Damit auch die anderen was davon haben, und die Version 0.61 ist Open Source, mit der Sie beliebig herumbasteln dürfen und können.
Das stimmt, aber die Antwort greift weiter: Es macht einfach Spaß, und gerade weil die 0.61 so spartanisch mit Bodentexturen und Objekten ausgestattet ist, stellt die Erstellung schöner Kurse eine echte Herausforderung dar. Aber es geht, man muss sich einfach mal heranwagen und ein wenig Durchhaltevermögen zeigen. Je mehr man an den Kursen herumbastelt, desto mehr Freude bereitet es.
1. Woraus besteht ein Kurs?
Da jeder Kurs in einem eigenen Verzeichnis untergebracht ist, brauchen wir uns nur den Inhalt eines solchen Verzeichnisses anzuschauen:
course.tcl
elev.rgb
preview.rgb
terrain.rgb
trees.rgb
Am wichtigsten sind folgende RGB-Grafik-Dateien, die mit Gimp bearbeitet werden können und alle Detailinformation über den Kurs enthalten:
- elev.rgb enhält die Höhenangaben
- terrain.rgb enthält die Bodenbeschaffenheit (Texturen)
- trees.rgb enthält die Objekte wie Bäume usw.
Dass diese Daten in einem Grafikformat erfasst werden, erleichtert die Sache sehr, denn man muss sich nicht mit umständlichen Parametern abgeben, sondern kann den Kurs bequem "zurechtmalen".
Wichtig ist ferner die Textdatei course.tcl; hierin sind einige globale Angaben zum Kurs gespeichert. Nicht so wichtig ist preview.rgb; diese Bitmap enthält ein kleines Vorschaubildchen, das letztlich die Sache nur abrundet.
2. Was benötigt man?
Technisch gesehen ist das herzlich wenig: außer dem Bildbearbeitungsprogramm Gimp und einem Texteditor für die Bearbeitung der course.tcl wird nichts gebraucht. Da praktisch alle Distributionen diese Tools mitbringen, kann man sofort loslegen.
Wenn der Kurs allerdings gelingen soll, benötigt man zusätzlich eine gehörige Portion Geduld und Phantasie. Zuerst muss der Kurs in der Vorstellung entstehen, und man muss auch lernen, wie die verschiedenen Gestaltungsmöglichkeiten sich auf den optischen Eindruck und die "Fahreigenschaften" auswirken.
3. Vorbereitung: Arbeitsumgebung einrichten
3.1 Als root:
Die selbsterstellten Kurse stehen in der Regel in dem Verzeichnis /usr/share/tuxracer/courses/contrib. Wenn Sie dort hineinschauen, merken Sie, dass bereits per Default einige Benutzerkurse installiert wurden. Die sind nur lästig, denn Sie müssen sich bei jedem Teststart hindurchklicken, um zu Ihrem eigenen Kurs zu gelangen. Also machen Sie am besten ein Backup dieses Verzeichnisses und räumen es leer.
Für die ersten Versuche empfiehlt es sich, einen existierenden Kurs zu nehmen und ihn zu ändern. Vorschlag: Kopieren Sie aus dem übergeordneten Verzeichnis einen beliebigen Kurs (z.B. Bunny Hill) in das contrib-Verzeichnis und benennen ihn um, etwa in "meinkurs". Da Tuxracer nicht den Verzeichnisnamen anzeigt, sondern die Bezeichnung, die in course.tcl steht, gehen Sie noch mit einem Texteditor dort hinein und ändern tux_course_name ebenfalls in "meinkurs".
tux_course_name
"meinkurs"
Schließlich müssen Sie noch dafür sorgen, dass Sie als Benutzer Zugriff auf den Kurs haben. Am besten machen Sie sich zum Besitzer des contrib-Verzeichnisses sowie aller darin liegenden Unterverzeichnisse:
chown -R benutzer /usr/share/tuxracer/courses/contrib
3.2 als Benutzer:
Damit Sie sich nicht ständig in das contrib-Verzeichnis vorarbeiten müssen, sollten Sie in Ihrem Homeverzeichnis ein spezielles Arbeitsverzeichnis anlegen, z.B. ~/tuxracer (nicht zu verwechseln mit ~/.tuxracer, dem automatisch angelegten Verzeichnis für die lokalen Einstellungen).
Mit einem symbolischen Link verschaffen Sie sich von hier aus Zugriff auf "meinkurs":
ln -s /usr/share/tuxracer/courses/contrib
\
/home/...benutzer.../tuxracer/contrib
Zusätzlich können Sie unter ~/tuxracer weitere Verzeichnisse anlegen. Bei mir sieht das so aus:
work # Verzeichnis mit Kursen, die sich in Arbeit befinden
ready # Verzeichnis mit fertigen Kursen
templates # Verzeichnis mit Vorlagen für neue Kurse
4. Gimp einrichten
Das gesamte Verfahren ist auf Gimp zugeschnitten, so dass Sie erst gar nicht erst in Erwägung ziehen sollten, ein anderes Programm zu benutzen.. Sie werden aber schnell merken, dass Gimp für diesen Zweck das optimale Werkzeug ist.
4.1 Skripte zum Laden und Speichern
Zuerst benötigen Sie ein Instrument, um die 3 RGB-Dateien in einem Rutsch laden und speichern zu können. Dazu laden Sie die folgenden Skripte herunter und kopieren sie in Ihr privates Gimp-Verzeichnis: /home/user/.gimp-1.2/scripts/.
tuxracer-create-level.scm
tuxracer-load-level.scm
tuxracer-save-as-rgbs.scm
Wozu die Skripte dienen, ist den Bezeichnungen unschwer zu entnehmen. Ich möchte aber gleich erwähnen, dass das 1. Skript zum Erzeugen neuer Kurse bei mir nicht einwandfrei funktioniert. Deshalb lege ich die neuen Kurse manuell an oder kopiere einfach einen bestehenden Kurs (bzw. ein Template) und bearbeite ihn. Mehr dazu unten.
Für einen guten Kurs müssen Sie in der Regel mehrere Arbeitssitzungen einplanen. Damit Sie nach dem Start von Gimp den "Arbeitskurs" direkt präsentiert bekommen, sollten Sie im 2. und 3. Skript den entsprechenden Pfad einstellen. Die Zeile finden Sie jeweils ganz unten:
SF-FILENAME "Directory:" "/home/...user.../tuxracer/contrib/meinkurs")
Zum Laden des Kurses gehen Sie in das Hauptmenü:
Xtns - Script-Fu - TuxRacer - Load Level
Zum Speichern klicken Sie mit der rechten Maustaste auf das Bild, dann:
Script-Fu - Tuxracer - Save Image as RGBs
4.2 Farbpalette
Ein letzter Schritt ist noch erforderlich, bevor Sie loslegen können. Das Bearbeiten der Kurse erfolgt mit Farben, die Sie unbedingt in einer Palette zusammenstellen sollten. Es gab mal eine Farbpalette, die man direkt in Gimp einbinden konnte, aber m.W. steht sie zur Zeit nicht mehr zur Verfügung. Es ist also Handarbeit angesagt.
Ich beziehe mich auf Gimp-1.2. Starten Sie Gimp und öffnen Sie das Fenster "Farbpalette". Unter "Auswahl" wählen Sie "bearbeiten", dann "neu". Der neuen Palette geben Sie den Namen "Tuxracer". Im linken Teil wählen Sie noch einmal "neu", und es wird Ihnen ein schwarzer Balken präsentiert, der aber in Wirklichkeit aus kleinen Farbquadraten besteht, die alle noch auf schwarz eingestellt sind. Ein Rechtsklick auf eine Stelle des Balkens öffnet den Dialog, mit welchem Sie die Farbe einstellen können. Das alles ist wenig intuitiv, aber Sie machen es ja nur einmal.
Vorweg: Am einfachsten ist es, wenn Sie die Farben über die RGB-Werte einstellen. Welche Farben werden nun gebraucht?
Für die Höhengestaltung in elev.rgb benötigen Sie eine Palette von Grauwerten, angefangen von schwarz (0,0,0) bis hin zu weiß (255,255,255). Ich habe eine 30er-Abstufung gewählt, also (30,30,30), (60,60,60) usw. Nach meiner Erfahrung reicht das für die Höhenmodellierung.
Für die Bodenbeschaffenheit benötigen Sie 3 Farben: schwarz für Eis, weiß für Schnee und ein mittleres Grau (105,105,105) für Gestein
Schließlich die Objekte: Von der leider nicht mehr verfügbaren Palette existieren wenigstens noch Abbildungen. Sie können die Farben aus nebenstehendem Bild mit der Pipette abgreifen, sicherheitshalber nenne ich aber auch die RGB-Werte:
Start - 130,129,3
Ziel - 255,255,0
Reset - 253,127,253
Hering - 3,179,254
Nadelbaum - 255,255,255
toter Baum - 254,93,2
Gebüsch - 0,255,50
Flagge - 196,41,45
Links sehen Sie die Tuxracer-Palette, wie ich sie eingerichtet habe.
5. Den Kurs erstellen
5.1 Ganz wichtig: Die Ebenenverwaltung in Gimp
Eine Ebene sehen, ist das eine; darin zeichnen das andere. Zeichnen können Sie nur in der blau markierten Ebene, auch wenn sie gerade nicht sichtbar ist! Sie werden noch erkennen, dass diese Option von großem praktischem Nutzen ist, auch wenn sie am Anfang einige Irritationen verursacht.
5.2 Grau, weiß, schwarz - die Ausgangsposition
Wenn Sie meiner Empfehlung gefolgt sind und einen fertigen Kurs in Ihr Arbeitsverzeichnis kopiert haben, dann können Sie mal versuchen, ihn zu ändern. Wenn Sie aber einen neuen Kurs aufbauen wollen, sollten Sie die drei Ebenen erst mal gleichmäßig einfärben. Für die Höhenebene (elev) empfiehlt sich irgendein Grau. Dann können Sie anschließend sowohl in die Tiefe als auch in die Höhe gehen.
Die Terrainebene wird zweckmäßigerweise weiß gefärbt. Dann haben Sie eine durchgehende Schneedecke. Ja, und die Grundfarbe für die Objekte (trees) ist schwarz. Zum monochromen Füllen bietet sich das Markieren mit dem Zauberstab (größte Toleranz einstellen) und das anschließende Füllen mit dem Füllwerkzeug an.
Mit dieser Farbgebung haben Sie den eintönigsten Kurs erstellt, der denkbar ist. Starten Sie ruhig mal Tuxracer, nachdem Sie das Bild mittels Script-Fu gespeichert haben. Sie können Gimp geöffnet halten, denn Sie wollen ja gleich weitermachen.
Anstatt einen vorhandenen Kurs zu modifizieren oder als Basis für einen neuen Kurs zu nehmen, können Sie selbstverständlich auch einen Kurs "from the scratch" einrichten. Dazu starten Sie Gimp, legen eine neues Bild an (z.B. 100 x 500 Pixel), färben es grau und speichern es als elev.rgb in Ihr Tuxracer-Arbeitsverzeichnis ("meinkurs"). Dann färben Sie das Bild weiß und speichern es als terrain.rgb ab. Nach Einfärbung mit schwarz speichern Sie es ein drittes Mal als trees.rgb. Schon haben Sie die benötigten 3 RGB-Dateien gleicher Größe.
Über die Größenverhältnisse siehe Punkt 7 unten.
5.3 Die Höhenmodellierung
Die Höhen werden durch Grauwerte dargestellt. Schwarz ist die tiefste Lage, weiß die höchste. Um die Gebirge, Täler, Schluchten, Felsen usw. darzustellen, können Sie alle Malwerkzeuge benutzen. Für weichere Erhebungen und Senken nehmen Sie den Pinsel, für schroffe Höhenunterschiede den scharf zeichnenden Bleistift. Sie können auch, um die Höhenunterschiede zwischen Fahrrinne und Böschung zu erhalten, mit dem Aufheller oder Abdunkler arbeiten, normalerweise weich. Dann geht's rauf und runter. Mit dem Verlaufswerkzeug können Sie gleichmäßige Anstiege oder Abfahrten erreichen.
Im Gegensatz zu den beiden anderen Ebenen können Sie hier am Anfang ruhig etwas wild und unplanmäßig verfahren, also Zufallsgebirge erzeugen. Es ist manchmal richtig spannend, anschließend einen gangbaren Weg zu finden und diesen "befahrbar" zu machen. Dazu müssen Sie natürlich oft Tuxracer starten und auf Erkundung gehen.
5.4 Die Bodenbeschaffenheit
Benutzen Sie zum Zeichnen des Terrains grundsätzlich einen scharf zeichnenden Bleistift, sonst enstehen am Rand Grautöne, die nicht interpretiert werden können. Also nur schwarz, weiß und das eine Gesteinsgrau!
Damit Sie wissen, wohin das Eis kommt, machen Sie die Höhenebene sichtbar und aktivieren Sie die Terrainebene. Sie zeichnen so zwar unsichtbar, aber die Dinge müssen ja zusammenpassen. Ein kleiner Kontrollblick zwischendurch auf die Terrainebene kann nicht schaden. (Ich habe schon ganze Eispisten versehentlich in rot gemalt.)
5.5 Die Objekte
Alle Objekte werden mit dem spitzesten Bleistift gezeichnet (1 Pixel)! Wenn Sie natürlich ganze Wälder haben möchen, können Sie auch flächig arbeiten, auf jeden Fall aber hart. Denken Sie ferner daran, dass zu viele Bäume einen langsameren Rechner in die Knie zwingen können.
Wie bei der Bodenbeschaffenheit machen Sie die Höhenebene sichtbar, damit die Objekte an die richtige Stelle kommen. Genaues Zeichnen ist angesagt!
Die Heringe verteilen Sie zweckmäßigerweise als letztes in der Landschaft.
6. Die Datei course.tcl
Als letzen Schritt editieren Sie die Datei course.tcl. Wenn Sie für Ihre ersten Versuche einen vorhandenen Kurs nach "meinkurs" kopiert haben, brauchen Sie die Datei nur noch anzupassen. Nachstehend ein kommentiertes Beispiel für die course.tcl zu einem meiner Kurse:
tux_course_name "Frozen Lakes" | Diese Bezeichnung wird angezeigt, wenn man unter "practice" einen Kurs auswählt. |
tux_course_author "Reinhard Niehoff <rei.nie@erinacom.de>" | Man sollte Gelegenheit für Rückfragen, Kritik usw. geben. |
tux_course_dim 100 2000 95 1980 | Hier werden die Abmessungen des Kurses festgelegt. Näheres siehe unten im Abschnitt 7 |
tux_start_pt 50 3.0 | Der Startpunkt muss zur Position der Startmarkierung in trees.rgb passen |
tux_angle 25 | Das ist der Neigungswinkel. Je höher dieser Wert, desto steiler geht's bergab, desto schneller ist der Kurs. Übliche Werte liegen zwischen 15 und 30. |
tux_elev_scale 12 | Damit werden die Höhen skaliert. Je größer dieser Wert ist, desto stärker wirken sich die Unterschiede zwischen den Graustufen in elev.rgb aus. Um Hochgebirge zu erzeugen, müssen Sie diesen Wert um einiges erhöhen (z.B. 50) |
tux_base_height_value 255 | Den Einfluss dieses Parameters habe ich noch nicht herausgefunden. |
tux_elev
elev.rgb tux_terrain terrain.rgb tux_course_init |
Bei diesen Angaben brauchen Sie nichts zu ändern. |
7. Wie groß soll der Kurs sein?
Zunächst: Die Größe des Kurses und damit die Dauer des Rennens wird hauptsächlich in der course.tcl in der Zeile tux_course_dim festgelegt. Diese Eintragung enthält 4 Parameter. So bedeutet 100 2000 95 1980 z.B.: Die Breite des Geländes beträgt 100 m, die Länge 2000 m. Die befahrbare Breite beträgt 95 m, die befahrbare Länge 1980 m.
Die letzten beiden Angaben sind sinnvoll, um den Pinguin nicht zu dicht an den Abgrund steuern zu können. Da passiert zwar nichts Dramatisches, aber es wirkt sehr unrealistisch, wenn Tux auf einmal weder Eis noch Schnee noch Gestein unter seinem Bauch hat
Was hat nun die Pixelgröße der RGB-Dateien damit zu tun? Es leuchtet ein, dass beide irgendwie zueinander in Beziehung stehen. Wenn Sie die Pixelzahl in Relation zur Kursgröße sehr klein nehmen, wirkt das Gelände sehr grob aufgelöst, aber das Rennen lädt ziemlich schnell. Umgekehrt, bei sehr großer Pixelzahl, bekommen Sie ein Gelände mit feinen Abstufungen, aber das Rennen erfordert viel Ressourcen, und außerdem sind die Bilddateien zum Bearbeiten ziemlich unhandlich. Ein vernünftiger Kompromiss ist also angesagt.
Gute Erfahrungen habe ich mit folgenden Werten gemacht, wobei ich mich auf einen "Zwei-Minuten-Kur" beziehe: Die Rennstrecke wird - wie oben angegeben - auf 100 x 2000 ausgelegt, die zugehörigen RGB-Dateien haben eine Größe von 100 x 1000 Pixeln. Ein entsprechender "Ein-Minuten-Kurs" würde jeweils die halbe Länge beanspruchen. Doch wie gesagt, das sind nur Erfahrungswerte; machen Sie ruhig Ihre eigenen Erfahrungen.
8. Einige Tipps zur Erstellung von Kursen
- Beim Rennen kommt das Licht von rechts (wenn Sie nicht spiegelverkehrt fahren). Das hat zur Folge, dass Erhebungen auf der linken Seite kaum Zeichnung haben. Durch "Vereisung" der Ränder und Böschungen schaffen Sie mehr Deutlichkeit. Bei scharfkantigen Anstiegen reicht mitunter ein Strich von 1 Pixel Breite.
- Durch häufiges Befahren kommt es (in der Wirklichkeit) zu stellenweiser Vereisung. Die können Sie gut simulieren, indem Sie "Eissprenkel" auf die Piste zeichnen. Außerdem wird der Kurs dadurch etwas schneller. Umgekehrt: Wenn Sie eine schnelle Piste aus Eis modellieren, sollten Sie Schneeränder oder kleine Schneeflächen lassen, damit ein Abbremsen möglich ist. Das gilt selbstverständlich nur, wenn Sie ein gewisses Maß an Realität möchten. Sie können genau so gut die bizarrsten, unwirklichsten Landschaften konstruieren, die ebenfalls ihren Reiz haben.
- Sprünge, schwierig zu durchfahrende Kurven usw. müssen Sie oft testen. Am Anfang des Kurses ist das kein Problem, aber wenn Sie jedesmal fast den gesamten Kurs durchfahren müssen, um eine bsonders knifflige Stelle kurz vor dem Ziel hinzubekommen, dann beginnt es zu nerven. Schaffen Sie sich dazu einfach eine vorübergehende Schnellstrecke am Rand, die Sie vereisen und kurz vor der Stelle, wo Sie hinüber auf die Hauptstrecke wechseln, felsig machen (damit man abbremsen kann).
- Bei Testläufen erkennen Sie oft Stellen, die noch korrigiert werden müssen. Doch wo ist die Stelle? So sehr Sie auch suchen, in der Höhenebene ist sie nicht sicher wiederzufinden. Da helfen provisorisch angebrachte Heringe. Einen an der ersten Kurve, zwei an der nächsten usw. So können Sie den gesamten Kurs etappenweise überarbeiten.
- Flaggen sollen den Weg weisen und nicht versperren. In einer Schlucht wird man auch ohne Flaggen auf Kurs bleiben können (müssen).
- Zu den Heringen: Eine Rennpiste muss nicht unbedingt ein Fischmarkt sein, und ein vollgefressener Tux ist nicht in Form. Ich finde, der Pinguin sollte ruhig etwas leisten, um zu seinen Heringen zu gelangen (Schlenker, Sprünge, gewagte Nebenstrecken usw.)
- In dem Zusammenhang: Das Gesamtergebnis eines Rennen besteht aus Zeit und Anzahl der Heringe. Wenn bei Verzweigungen die schnellste Strecke auch die höchste Heringsausbeute bringt, bleibt kein Anreiz mehr, mal eine andere Strecke zu erkunden.
- Es reizt immer wieder, auch gefährliche Klippen hineinzubringen (Löcher, in die man fällt, Gebirgsschluchten, die sich als Sackgasse herausstellen usw.) Das ist legitim und auch realistisch, nur kann Tux keine Gebirgswacht verständigen, und vor allem kann er nicht zurück fahren. Für solche Fälle können Sie Resetpunkte in Erwägung ziehen, damit das Rennen nicht von vorne beginnen muss.
9. Den Kurs veröffentlichen
Wenn der Kurs dann gelungen ist (oder Sie es jedenfalls glauben), möchten Sie ihn wahrscheinlich veröffentlichen (hier auf meiner Webseite oder woanders). Dazu müssen Sie ihn in ein Tar- bzw. Zip-Archiv packen.
~/.tuxracer/options
die Option set fullscreen false einstellen.
Wenn Sie während des Rennens eine geeignete Szene abgelichtet haben, verkleinern Sie das Bild noch auf etwa 20 % und speichern es als RGB-Datei in Ihrem Kurs-Verzeichnis. Und noch etwas sollten Sie machen: Das Verzeichnis "meinkurs" (oder was Sie gewählt haben) ist nicht zur Weitergabe geeignet. Geben Sie diesem Verzeichnis einen Namen, der auf den Kurs hinweist.
Zum Packen können Sie sehr schön das Tool ark benutzen. Importieren Sie nicht die einzelnen Dateien, sondern das gesamte Verzeichnis; dadurch wird die spätere Installation vereinfacht. Im Prinzip ist es egal, ob Sie sie das Tar- oder Zip-Format wählen, aber ich habe mal gehört, dass es den Tuxracer auch für Windows gibt. Deshalb schlage ich Zip vor, sonst erschrecken Sie die Windows-Benutzer. ;-)
Das war's.
Viel Freude beim Basteln mit Gimp und Tuxracer
Abschließend noch ein Screenshot von meinem Desktop bei der Bearbeitung eines Kurses: