Skip to content
Snippets Groups Projects
Commit c8e61f3d authored by buecherwurm's avatar buecherwurm
Browse files

small corrections maps.md

parent 8db1ffe1
No related branches found
No related tags found
1 merge request!21small corrections maps.md
......@@ -3,8 +3,8 @@ HowTo rC3 world maps
[english version](maps.en.md)
Zum Congress wird es eine Art 2D-Adventure, die rC3 world geben.
Dieses Tutorial soll erklären, wie Karten und Inhalte zur rC3 world beigesteuert werden können.
Zum Congress wird es eine Art 2D-Adventure, die rC3.world geben.
Dieses Tutorial soll erklären, wie Karten und Inhalte zur rC3.world beigesteuert werden können.
Falls danach noch Fragen offen sind, meldet euch gerne per [Email](mailto:world@rc3.world) und wir versuchen das Tutorial zu ergänzen.
## Disclaimer
......@@ -16,19 +16,19 @@ Dieses Tutorial ist ein work in progress und wird immer mal wieder erweitert, es
* 2020-12-11: Assembly Anmeldung hinzugefügt, Lobbykarten hinzugefügt, Layer hervorheben.
## Known Bugs
Folgende Bugs sind aktuell bekannt, wir versuchen bereits Lösungen dafür zu finden:
Folgende Bugs sind aktuell bekannt, wir versuchen bereits, Lösungen dafür zu finden:
* Ausgänge können nicht auf dem rechten Rand der Karte liegen
* exitUrl führt bei mehreren Exits von einer Karte zur anderen teils zu falschen Startpunkten
* exitSceneUrl tut stattdesssen, obwohl angeblich deprecated
## Limitierungen
Instanzen skalieren nicht unendlich, bitte denkt beim Karten erstellen daran. Unsere Erfahrung zeigt, dass das Limit irgendwo bei 200 Nutzern liegt. Karten für 2k Spieler:innen ergeben also keinen Sinn. Bitte versucht nicht Vortragssäle nachzubauen. Es ergibt schlichtweg keinen Sinn im Spiel zu idlen und währenddessen Talks zu schauen.
Instanzen skalieren nicht unendlich, bitte denkt beim Karten erstellen daran. Unsere Erfahrung zeigt, dass das Limit irgendwo bei 200 Nutzer:innen liegt. Karten für 2k Spieler:innen ergeben also keinen Sinn. Bitte versucht nicht, Vortragssäle nachzubauen. Es ergibt schlichtweg keinen Sinn, im Spiel zu idlen und währenddessen Talks zu schauen.
Ausgehenden Links wird ein Dereferrer vorgeschaltet.
## Tiles / Sprites
Grundlegend bestehen die Karten aus sogenannten Tiles oder Sprites. Historisch gibt es wohl Unterschiede zwischen den Begriffen, wir werden sie hier aber synonym verwenden. Für die rC3 world werden Tiles in der Größe 32x32 empfohlen, Tiles in anderen Größen können zu Problemen führen. Tiles können Transparenz beinhalten und liegen im png Format vor.
Grundlegend bestehen die Karten aus sogenannten Tiles oder Sprites. Historisch gibt es wohl Unterschiede zwischen den Begriffen, wir werden sie hier aber synonym verwenden. Für die rC3.world werden Tiles in der Größe 32x32 empfohlen, Tiles in anderen Größen können zu Problemen führen. Tiles können Transparenz beinhalten und liegen im png-Format vor.
### Tiles finden
* Tiles gibt es massig im Internet, häufig zu Tilesets (mehrere Tiles zu einem Thema) zusammengefasst.
......@@ -38,7 +38,7 @@ Grundlegend bestehen die Karten aus sogenannten Tiles oder Sprites. Historisch g
* [deviantart.com](https://www.deviantart.com/)
* Achtet auf die Größe der Tiles!
* Achtet auf die Lizenz der Tilesets
* wir werden nicht aktiv prüfen unter welcher Lizenz eure Tiles stehen, allerdings nach dem Prinzip "takedown on notice" auf Verstöße reagieren.
* wir werden nicht aktiv prüfen, unter welcher Lizenz eure Tiles stehen, allerdings nach dem Prinzip "takedown on notice" auf Verstöße reagieren.
* [Shared Tiles Repo](https://tiles.rc3.world/)
......@@ -46,7 +46,7 @@ Grundlegend bestehen die Karten aus sogenannten Tiles oder Sprites. Historisch g
Tiles können auch selbst gestaltet bzw. vorhandene verändert werden, was häufig auch "pixeln" genannt wird. Hierzu empfiehlt sich der Editor [krita](https://krita.org/), es geht aber prinzipiell auch mit anderen.
* Achtet auch hierbei darauf, dass die Tiles 32x32 Pixel groß sind. Ihr könnt euch unter view -> show grid ein Raster einblenden und unter settings -> dockers -> grid and guides den Einstellungs-Docker einblenden, in dem ihr die Grid-Größe festlegen könnt.
* Falls ihr Übergänge von Materialien gestalten müsst, nutzt Transparenz und baut Übergänge von einem Material zu Transparenz, das ist vielseitiger nutzbar und erspart euch zu jedem anderen Material einen Übergang gestalten zu müssen.
* Falls ihr Übergänge von Materialien gestalten müsst, nutzt Transparenz und baut Übergänge von einem Material zu Transparenz, das ist vielseitiger nutzbar und erspart euch, zu jedem anderen Material einen Übergang gestalten zu müssen.
* Pixel-Art Workshop von blinry: [media.ccc.de/v/34C3-jugend-hackt-1016-pixel_art_workshop](https://media.ccc.de/v/34C3-jugend-hackt-1016-pixel_art_workshop)
## Tiles einbinden
......@@ -59,12 +59,12 @@ Karten können mittels des Editors [Tiled](https://www.mapeditor.org) erstellt w
### Neue Karte in Tiled anlegen
Achtet beim Erstellen einer neuen Karte auf folgende Einstellungen:
* Karte muss orthogonal sein
* Tilessize sollte 32x32 sein
* Karte muss orthogonal sein.
* Tilessize sollte 32x32 sein.
* Während des Erstellens kann es sinnvoll sein, eine unendliche Karte zu verwenden statt vorab eine Größe festzulegen. Dies muss beim finalen Speichern der Karte wieder auf eine feste Größe geändert werden.
### Karte gestalten
Eine Karte kann aus beliebig vielen übereinander gelegten Tile Layern bestehen. Eure Karte braucht dabei mindestens einen Startlayer, der definiert, wo auf der Karte neue Spielerinnen spawnen. Dieses Layer muss zwingend "_start_" heißen. Außerdem braucht ihr ein Object Layer "_floorLayer_" das definiert, auf welchem Layer sich die Spielfigur bewegt.
Eine Karte kann aus beliebig vielen übereinander gelegten Tile Layern bestehen. Eure Karte braucht dabei mindestens einen Startlayer, der definiert, wo auf der Karte neue Spieler:innen spawnen. Dieses Layer muss zwingend "_start_" heißen. Außerdem braucht ihr ein Object Layer "_floorLayer_" das definiert, auf welchem Layer sich die Spielfigur bewegt.
![](img/layer.png)
......@@ -74,12 +74,12 @@ Für ein leichteres Gestelten hebt euch den aktuellen Layer hervor:
![](img/settings_show_animations.png)
#### Spezielle Layer
Es gibt ein paar spezielle Layer bzw. Zusatzfunktionen für Layer. Diese werden bis auf das start Layer über die custom properties der einzelnen Layer abgebildet.
Es gibt ein paar spezielle Layer bzw. Zusatzfunktionen für Layer. Diese werden bis auf das Start Layer über die custom properties der einzelnen Layer abgebildet.
##### Start Layer
Eure Karte braucht zwingend ein Start Layer mit dem Namen "_start_". Alle Stellen in diesem Layer, die ein Tile (egal welches) enthalten, sind später Startpunkte für neue Spielfiguren. Gibt es mehrere Tiles, wird beim Betreten zufällig eines davon als Startpunkt ausgewählt. Schiebt dieses Layer am besten ganz nach unten in eurem Stack, die Tiles die Startpunkte markieren werden dann einfach von den darüberliegenden verdeckt.
Eure Karte braucht zwingend ein Start Layer mit dem Namen "_start_". Alle Stellen in diesem Layer, die ein Tile (egal welches) enthalten, sind später Startpunkte für neue Spielfiguren. Gibt es mehrere Tiles, wird beim Betreten zufällig eines davon als Startpunkt ausgewählt. Schiebt dieses Layer am besten ganz nach unten in eurem Stack, die Tiles, die Startpunkte markieren, werden dann einfach von den darüberliegenden verdeckt.
Außerdem könnt ihr weitere Start Layer erstellen um weitere Einstiegspunkte zu definieren, zum Beispiel um an bestimmte Stellen auf eurer Karte zu springen. Diese Layer funktionieren ähnlich wie der eigentliche Start Layer (also einfach beliebige Tiles an die Stelle, wo die Spielfigur spawnen soll), können beliebig heißen, brauchen allerdings eine custom property "_startLayer_" (bool true). Der Name dieses Layers ist auch die "Sprungadresse", die ihr zum Betreten über dieses Layer braucht. Wenn eure Karte also _foo.json_ heißt und der Start Layer auf den ihr springen wollt "_bar_", dann wäre die Sprungmarke dafür _foo.json#bar_.
Außerdem könnt ihr weitere Start Layer erstellen, um weitere Einstiegspunkte zu definieren, zum Beispiel um an bestimmte Stellen auf eurer Karte zu springen. Diese Layer funktionieren ähnlich wie der eigentliche Start Layer (also einfach beliebige Tiles an die Stelle, wo die Spielfigur spawnen soll), können beliebig heißen, brauchen allerdings eine custom property "_startLayer_" (bool true). Der Name dieses Layers ist auch die "Sprungadresse", die ihr zum Betreten über dieses Layer braucht. Wenn eure Karte also _foo.json_ heißt und der Start Layer, auf den ihr springen wollt, "_bar_", dann wäre die Sprungmarke dafür _foo.json#bar_.
![](img/cp_startlayer.png)
......@@ -88,7 +88,7 @@ Außerdem könnt ihr weitere Start Layer erstellen um weitere Einstiegspunkte zu
![](img/cp_exiturl.png)
Es wird voraussichtlich Platzhalter für Links zu anderen Assemblies geben, sobald es Neuigkeiten dazu gibt werden wir diese hier nachtragen. [TODO]
Es wird voraussichtlich Platzhalter für Links zu anderen Assemblies geben, sobald es Neuigkeiten dazu gibt, werden wir diese hier nachtragen. [TODO]
##### Webseite einbinden
Ihr könnt Webseiten einbinden, die sich beim Betreten von bestimmten Tiles öffnen. Analog zu Start und Exit Layern legt ihr ein Layer dafür an, setzt Tiles an die entsprechenden Stellen und gebt dem Layer die custom property "_openWebsite_" (string). Verwendet https!
......@@ -118,7 +118,7 @@ Bearbeitet dazu in Tiled das Tileset, wählt das zu animierende Tile (oder ein b
![](img/animation_editor.png)
Dann können alle Tiles, die Bestandteil der Animation sein sollen per drag and drop in die "playlist" gezogen werden und die Anzeigedauer in Millisekunden kann eingestellt werden:
Dann können alle Tiles, die Bestandteil der Animation sein sollen, per drag and drop in die "playlist" gezogen werden und die Anzeigedauer in Millisekunden kann eingestellt werden:
![](img/animation.png)
......@@ -129,7 +129,7 @@ Im Map-Editor sollten die Animationsloops auch schon dargestellt werden, wenn di
Hinweis: Die Engine macht Tile-Updates nur alle 100ms, also werden Animationen mit Framedurations unter 100ms vermutlich nicht gut aussehen oder gar nicht funktionieren.
### Karte speichern / exportieren
Karten müssen als json gespeichert werden, Tilesets sollten vorher eingebunden werden. Die relevanten Dateien sind anschließend eure Karten im json Format und die verwendeten Tilesets als png.
Karten müssen als json gespeichert werden, Tilesets sollten vorher eingebunden werden. Die relevanten Dateien sind anschließend eure Karten im json-Format und die verwendeten Tilesets als png.
Unendliche Karten müsst ihr vor dem Speichern in endliche umwandeln, hierzu einfach in den properties der Karte den Haken bei "infinite" entfernen und speichern.
......@@ -140,7 +140,7 @@ Um Karten in der Welt einbringen zu können, müsst ihr ein [Assembly anmelden](
Eure Karten legt ihr dann bitte in einem git Repo eurer Wahl ab und teilt später in unserem Backend die URL mit, unter der das Repo geklont werden kann. Unsere world-Infrastruktur wird anschließend eine Instanz für euch spawnen, das Karten-Repo pullen und diese dort einbinden.
Wie genau Karten aktualisiert werden können ist noch nicht ganz klar, vermutlich wird jede Instanz ihre Karten alle n Minuten aktualisieren.
Wie genau Karten aktualisiert werden können, ist noch nicht ganz klar, vermutlich wird jede Instanz ihre Karten alle n Minuten aktualisieren.
### Verzeichnisstruktur
Achtet beim Ablegen eurer Karten bitte auf die Verzeichnisstruktur, folgende Dinge solltet ihr konkret beachten:
......@@ -165,15 +165,15 @@ Hier ein Beispiel wie ein Verzeichnis mit Karten exemplarisch aussehen könnte:
```
### Einstiegspunkt / Lobby / Exit
Wir gestalten zentrale Einstiegskarten über die man dann zu euren Assembly Karten gelangt. Meldet euch dafür bitte unter Angabe eures Assemblynamens bei [world@rc3.world](mailto:world@rc3.world) damit wir einen Ausgang zu eurer Karte vorsehen können. Außerdem würden wir euch bitten einen Platz für einen Ausgang zurück zur Lobby freizuhalten. Tiles und die genaue Sprungadresse dafür teilen wir euch dann per Mail mit.
Wir gestalten zentrale Einstiegskarten, über die man dann zu euren Assembly-Karten gelangt. Meldet euch dafür bitte unter Angabe eures Assemblynamens bei [world@rc3.world](mailto:world@rc3.world), damit wir einen Ausgang zu eurer Karte vorsehen können. Außerdem bitten wir euch, einen Platz für einen Ausgang zurück zur Lobby freizuhalten. Tiles und die genaue Sprungadresse dafür teilen wir euch dann per Mail mit.
### Testen
Zum Testen könnt ihr eure Dateien einfach auf einen beliebigen per https erreichbaren Server legen und über die URL auf unserer Testinstanz einbinden. Nehmen wir an eure Karte läge unter _https://example.com/mymaps/foo.json_ so wäre die URL zum Testen *https://play.wa-test.rc3.cccv.de/_/global/example.com/mymaps/foo.json*. Die Möglichkeit externe Karten einzubinden existiert nur zum Testen und wird zum rC3 deaktiviert werden.
Zum Testen könnt ihr eure Dateien einfach auf einen beliebigen per https erreichbaren Server legen und über die URL auf unserer Testinstanz einbinden. Nehmen wir an, eure Karte läge unter _https://example.com/mymaps/foo.json_, so wäre die URL zum Testen *https://play.wa-test.rc3.cccv.de/_/global/example.com/mymaps/foo.json*. Die Möglichkeit externe Karten einzubinden existiert nur zum Testen und wird zum rC3 deaktiviert werden.
Ggf kann es sein, dass ihr passende CORS Header auf dem ausliefernden Webserver setzen müsst.
Ggf. kann es sein, dass ihr passende CORS Header auf dem ausliefernden Webserver setzen müsst.
## Eigene Instanzen
Wir werden sämtliche Instanzen für die rC3 world betreiben, versucht bitte nicht eigene Instanzen dafür aufzusetzen, Sprünge zu Instanzen außerhalb der rC3 world werden nicht möglich sein.
Wir werden sämtliche Instanzen für die rC3.world betreiben, versucht bitte nicht, eigene Instanzen dafür aufzusetzen, Sprünge zu Instanzen außerhalb der rC3.world werden nicht möglich sein.
## Infrastruktur
Die Infrastruktur der rC3 world wird von <a href="https://www.hetzner.com/de/cloud"><img src="img/hetzner-logo.svg" alt="hetzner online" width="100px" /></a> gesponsert.
Die Infrastruktur der rC3.world wird von <a href="https://www.hetzner.com/de/cloud"><img src="img/hetzner-logo.svg" alt="hetzner online" width="100px" /></a> gesponsert.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment