Wie man einen Raum festhält, den man gefunden hat, oder einen, den man bauen will: als Textdatei, Feld für Feld, mit seinen Wänden, Türen, Leuchten und allem, was darin steht. Hier stehen alle Einträge zum Nachschlagen.
Schreib alles auf. Auch das, was sich nicht wiederholen lässt. Vor allem das.
Erste Regel der KartografenEin Level besteht aus einer Datei level.ini und einer Datei für jeden Raum im Ordner rooms, etwa rooms/zimmer.room. Der Dateiname ist der Name des Raums: nur Kleinbuchstaben, Ziffern, - und _.
Beide Arten von Dateien bestehen aus Abschnitten in eckigen Klammern, darunter Einträge name = wert, wie in einer INI-Datei. Eine Zeile, die mit # beginnt, ist ein Kommentar, ebenso alles ab einem # mit Leerzeichen davor und danach; eine Farbe wie #86763c hat kein Leerzeichen dahinter. Längen sind in Metern, Winkel in Grad, Farben hexadezimal wie in CSS.
Das Programm liest zuerst den Raum aus start =, dann jeden Raum, zu dem eine Tür eines schon gelesenen Raums führt. Eine Datei, zu der keine Tür führt, liest es nie.
# Ein kleines Zimmer. [room] name = Zimmer height = 2.6 look = east [map] ####### #.....# #.@.L.1 #.....# ####### [L] light = #ffe7b8 power = 0.9 [1] door = gang 1
Im Abschnitt [level]:
| Eintrag | Bedeutung |
|---|---|
name |
der Name des Levels |
start |
der Raum, in dem man anfängt: start = zimmer liest rooms/zimmer.room
|
bounces |
wie oft Licht von Flächen zurückgeworfen wird (3); 0: nur direktes Licht |
detail |
Punkte der Lightmap je Meter (16): mehr gibt schärfere Schatten und dauert länger |
ambient |
Licht von überall (0) |
vhs |
on: das Bild wie von einer alten Videokassette |
aberration |
on: farbige Säume zum Rand hin, wie durch eine einfache Linse |
In [map] steht der Grundriss, von oben gesehen, oben ist Norden. Jedes Zeichen ist ein Feld, ein Meter im Quadrat. Hier zählt jedes Zeichen, Kommentare gibt es darin nicht.
| Zeichen | Bedeutung |
|---|---|
# |
Wand |
. |
Boden |
@ |
hier fängt man an, nur einmal im ganzen Level |
| Leerzeichen | nichts, außerhalb des Raums |
| ein Buchstabe | eine Leuchte, ein Block, ein Modell, ein Becken, eine Treppe oder ein Podest, beschrieben im Abschnitt mit diesem Buchstaben; statt eines #: eine Wand mit runden Ecken |
| eine Ziffer | eine Tür, beschrieben im Abschnitt mit dieser Ziffer; dieselbe Ziffer mehrmals in einer Reihe, nebeneinander oder untereinander, ist eine breite Tür |
_ |
ein Loch im Boden; darunter liegt ein anderer Raum, beschrieben in [_]
|
^ |
ein Loch in der Decke: Der Raum darüber hat dort sein _
|
Ein Feld mit Boden darf nicht an »nichts« grenzen: Um jeden Raum steht eine Wand. Die Wände zweier Räume dürfen sich überdecken, ihre Böden nicht.
| Eintrag | Bedeutung |
|---|---|
name |
der Name, den die Automap zeigt |
height |
Deckenhöhe über dem Boden (2,7); zwei Zahlen für eine schräge Decke, etwa height = 3, 7
|
slope |
flat, die Richtung, in die die Decke ansteigt (north, east, south, west), oder gable, ein Satteldach, sein First an der längeren Seite |
ramp |
ein schräger Boden: Richtung und um wie viele Meter er ansteigt, etwa ramp = east, 4; negativ: Er fällt. Decke und Leuchten steigen mit |
walls |
wallpaper, marble, wood, tiles, velvet, plain, concrete, brick oder terrazzo, in der Farbe von wallpaper
|
floor |
carpet, marble, wood, tiles, plain, concrete, brick, terrazzo, carpet_tiles, checker oder parquet, in der Farbe von carpet
|
wallpaper, carpet, ceiling
|
die Farben von Wänden, Boden und Decke |
baseboard |
die Sockelleiste: Höhe und Farbe; ohne Angabe 8 cm und dunkler als die Tapete; none: keine. An einem schrägen Boden läuft sie schräg mit |
dado |
die Wände unten anders: Höhe und Farbe, etwa dado = 1, #553a27
|
dado_material |
woraus dieser untere Teil ist, wie bei walls; ohne: wie die Wand |
dado_rail |
eine Leiste auf seiner Kante: Höhe und Farbe |
cornice |
eine schräge Leiste, wo Wand und Decke sich treffen: Höhe und Farbe |
look |
wohin man am @ schaut: eine Himmelsrichtung oder Grad, im Uhrzeigersinn von Norden aus |
ambient |
Licht von überall in diesem Raum (0 bis 1) |
Jeder Buchstabe im Grundriss hat einen Abschnitt mit diesem Buchstaben. Was darin steht, sagt, was er ist.
Sie hängt knapp unter der Decke, mitten über ihrem Feld, unter einer schrägen Decke so schräg wie sie.
| Eintrag | Bedeutung |
|---|---|
light |
ihre Farbe, etwa #fff3cf
|
power |
wie hell (1) |
size |
Breite und Länge, eine Zahl für eine quadratische (0,85); größere werfen weichere Schatten |
flicker |
1: Sie flackert ab und zu |
| Eintrag | Bedeutung |
|---|---|
block |
Breite, Höhe, Tiefe, mitten auf seinem Feld; eine Zahl: das ganze Feld so hoch. Höher als die Decke: Er verschwindet in ihr |
base |
wie hoch er über dem Boden schwebt (0) |
color |
seine Farbe; ohne: wie die Wände seines Raums |
material |
woraus, wie bei walls, dazu cardboard: ein Karton mit Klebeband, Etikett und Pfeilen |
shape |
round: eine runde Säule |
rotation |
in Grad um die senkrechte Achse gedreht, um seine Mitte; nur um diese Achse. Gedreht bleibt er am besten in seinem Feld |
offset |
aus der Mitte des Felds geschoben: x, y, z (x nach Osten, y nach oben, z nach Süden) |
Ein Buchstabe statt eines #, dessen Abschnitt round nennt, ist eine Wand mit runden Ecken.
| Eintrag | Bedeutung |
|---|---|
round |
der Radius in Metern. Treffen an dem Feld zwei Wände des Raums aufeinander (ein # in einer Ecke des Raums), wird die Ecke ein Viertelkreis, Boden und Decke folgen ihm. Ragt die Wand dort in den Raum (das Ende einer Wand, die Ecke eines Pfeilers), wird ihre Kante rund; an einer Wand, die ein Feld dick ist, höchstens 0,5, dann ist ihr Ende ein Halbkreis |
Sockelleiste, Lambris, Stuhlleiste und Gesims laufen um die Rundung herum. Der Radius muss passen: auf beiden Wänden bis zur nächsten Tür oder Ecke, innerhalb des Raums. Passt er nicht, steht oben links, an welchem Feld.
Eine Statue, ein Möbelstück, eine Lampe: eine Datei im Format glTF, als .gltf mit ihren Dateien daneben oder als eine .glb. Modelle unter CC0 gibt es etwa bei Poly Haven, in der Auflösung 1K.
| Eintrag | Bedeutung |
|---|---|
model |
der Pfad zur Datei, etwa models/sofa_03/sofa_03_1k.gltf
|
height |
wie hoch es ist (2) |
rotation |
gedreht, in Grad: eine Zahl um die senkrechte Achse; drei, x, y, z, um alle drei Achsen, erst um y, dann um x, dann um z |
offset |
aus der Mitte des Felds geschoben: x, y, z |
material |
marble: aus Marmor statt in seinen eigenen Farben |
pedestal |
ein Sockel darunter: Breite, Höhe, Tiefe; pedestal_color und pedestal_material wie bei einem Block |
light |
eine Farbe: Das Modell ist eine Lampe. Ihr Licht kommt aus seinen leuchtenden Teilen, nach allen Seiten; power und flicker wie bei einer Leuchte |
beam |
bei einer Lampe mit Schirm: Das Licht fällt nur in einen Kegel nach unten, so viel Grad von der Senkrechten, etwa beam = 75; beam = up, 60: nach oben |
Erst wird ein Modell gedreht, um seine eigene Mitte. Dann steht seine Mitte über der Mitte des Felds und sein tiefster Punkt auf dem Boden oder dem Sockel. Erst danach schiebt offset es weiter, in den Richtungen der Welt, nicht in denen des gedrehten Modells.
Jedes Feld mit dem Buchstaben gehört zum Becken; Felder nebeneinander, gleich tief, mit gleichem Wasser und gleicher Farbe, bilden ein Becken. In ein Becken voll Wasser kann man nicht hineingehen, in ein leeres Becken fällt man. Ein Raum mit einem Becken hat keine Rampe.
| Eintrag | Bedeutung |
|---|---|
pool |
wie tief es unter den Boden reicht, 0,2 bis 20 m |
water |
wie tief unter dem Boden das Wasser steht (0,15); off: leer |
tint |
die Farbe des Wassers: so, wie Weiß hinter 2 m davon aussieht (#86b8b5, blaugrün) |
waves |
wie groß die Wellen sind: 1 ruhig, 2 größer, 0 glatt |
color |
die Fliesen des Beckens |
rim |
ein Rand aus Fliesen: Höhe und Breite, etwa rim = 0.15, 0.3
|
railing |
on: ein Geländer, wo man am Rand stehen kann |
Unter beiden ist kein Platz: Sie sind massiv. Eine Treppe braucht ein Rechteck aus Feldern und davor Platz, um auf die erste Stufe zu treten.
| Eintrag | Bedeutung |
|---|---|
stairs |
eine Treppe: Richtung und Höhe oben, etwa stairs = north, 3, in Stufen von etwa 18 cm. Liegt an ihrem unteren Ende ein Podest, beginnt sie auf dessen Höhe |
raise |
ein Podest: Diese Felder liegen so viel höher; nebeneinander sind sie eins |
railing |
on: ein Geländer, wo es an der Seite mehr als einen halben Meter hinuntergeht, für alle Treppen und Podeste eines Raums in einem Stück |
material, color
|
woraus und in welcher Farbe; ohne: wie Boden und Wände des Raums |
Eine Leuchte, ein Block oder ein Modell kann zugleich zu einem Becken oder einem Podest gehören:
| Eintrag | Bedeutung |
|---|---|
in = W |
das Feld gehört zum Becken der W: eine Säule im Wasser, eine Leuchte darüber |
on = P |
das Feld gehört zum Podest der P: ein Stuhl darauf |
Eine Tür ist ein Feld, das zwei Räumen gehört. Wie hoch und wo ein Raum liegt, folgt aus seinen Türen; es genügt, wenn einer der beiden Räume die Tür beschreibt.
| Eintrag | Bedeutung |
|---|---|
door = gang 2 |
diese Ziffer ist dasselbe Feld wie die 2 in rooms/gang.room
|
door = halle 1, -4 |
eine Tür hoch in der Wand: Der Boden auf der anderen Seite liegt 4 m tiefer; ohne Minus höher |
arch = 2.4 |
oben rund, ein Halbkreis über die ganze Breite, in der Mitte 2,4 m hoch; arch = 2.4, 0.8: nur 0,8 m breit, daneben Wand |
casing = on |
ein Rahmen: innen heller Putz, unten eine Schwelle aus Stein, auf jeder Seite der Wand eine Leiste um die Öffnung, in der Farbe der Sockelleiste des Raums oder, ohne Sockelleiste, hell gestrichen |
Eine Tür ist so tief wie die Wand, ein Feld, und sieht aus wie der Raum, dem dieses Feld gehört; mit casing = on hat sie einen Rahmen.
Ein Loch verbindet zwei Räume übereinander. Im oberen Raum stehen _ im Grundriss und ein Abschnitt [_], im unteren an denselben Feldern ^:
| Eintrag | Bedeutung |
|---|---|
below = keller |
der Raum darunter |
slab |
wie dick der Boden zwischen beiden ist (0,3) |
Räume dürfen übereinander liegen, solange der obere Boden nirgends unter der Decke des unteren liegt.
| Taste | Was passiert |
|---|---|
| W A S D, Pfeile | laufen (mit Shift rennen), drehen |
| M oder Tab | die Automap; darin V: die Räume von oben, U: was von hier aus gezeichnet wird |
| T L B O | Texturen, direktes Licht, zurückgeworfenes Licht, Kontaktschatten |
| G E K | die Punkte der Lightmap, die Kanten, was beim Laufen im Weg ist |
| F H C X | Flackern, Bloom, Videokassette, farbige Säume |
| 3 | ein Bild für eine Rot-Cyan-Brille |
| Shift L, Shift R, P | das Licht neu berechnen, zurück zum Anfang, den Kasten oben links aus- und einblenden |