Skip to content
Snippets Groups Projects

Update maps.md

Merged buecherwurm requested to merge buecherwurm-master-patch-65892 into master
1 file
+ 31
31
Compare changes
  • Side-by-side
  • Inline
+ 31
31
@@ -6,7 +6,7 @@ HowTo rC3 world maps
@@ -6,7 +6,7 @@ HowTo rC3 world maps
Auch dieses Jahr wird es zur rC3 wieder eine Art 2D-Adventure, die rC3.world,
Auch dieses Jahr wird es zur rC3 wieder eine Art 2D-Adventure, die rC3.world,
geben. Dieses Tutorial soll erklären, wie Karten und Inhalte zur 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
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
gerne per [Email](mailto:world@rc3.world) und wir versuchen, das Tutorial zu
ergänzen.
ergänzen.
Zum Austausch mit anderen gibt es einen
Zum Austausch mit anderen gibt es einen
@@ -35,7 +35,7 @@ finden:
@@ -35,7 +35,7 @@ finden:
Instanzen skalieren nicht unendlich: zwar kann die Infrastruktur an sich
Instanzen skalieren nicht unendlich: zwar kann die Infrastruktur an sich
inzwischen auch Räume mit deutlich mehr gleichzeitigen Nutzer:innen verkraften,
inzwischen auch Räume mit deutlich mehr gleichzeitigen Nutzer:innen verkraften,
da aber Workadventure weiterhin versuchen wird, alle Avatare gleichzeitig
da aber Workadventure weiterhin versuchen wird, alle Avatare gleichzeitig
anzuzeigen überlastet ihr damit einfach nur Browser und Internetleitungen.
anzuzeigen, überlastet ihr damit einfach nur Browser und Internetleitungen.
Unsere Erfahrung zeigt, dass das Limit irgendwo bei 200 Nutzer:innen liegt.
Unsere Erfahrung zeigt, dass das Limit irgendwo bei 200 Nutzer:innen liegt.
Bitte denkt beim Karten erstellen daran.
Bitte denkt beim Karten erstellen daran.
@@ -47,7 +47,7 @@ gehen" und auch Chancen haben, einander zu finden.
@@ -47,7 +47,7 @@ gehen" und auch Chancen haben, einander zu finden.
Benutzt bitte keine Tilesets, deren Textur größer ist als 4096 auf 4096 Pixel;
Benutzt bitte keine Tilesets, deren Textur größer ist als 4096 auf 4096 Pixel;
sonst kann es je nach Endgerät zu Darstellungsfehlern kommen, falls derart große
sonst kann es je nach Endgerät zu Darstellungsfehlern kommen, falls derart große
Texturen [nicht von WebGL unterstütz werden.](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#understand_system_limits)
Texturen [nicht von WebGL unterstützt werden.](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#understand_system_limits)
Ausgehenden Links wird (wie letztes Jahr auch) wieder ein Dereferrer ("du verlässt
Ausgehenden Links wird (wie letztes Jahr auch) wieder ein Dereferrer ("du verlässt
jetzt das Gelände") vorgeschaltet.
jetzt das Gelände") vorgeschaltet.
@@ -60,15 +60,15 @@ unterstützen. Selbst geschriebene Scripte sind aufgrund des dadurch für uns
@@ -60,15 +60,15 @@ unterstützen. Selbst geschriebene Scripte sind aufgrund des dadurch für uns
enstehenden Review-Aufwands nur auf Anfrage möglich.
enstehenden Review-Aufwands nur auf Anfrage möglich.
### Starter-Kit
### Starter-Kit
Es wird auch dieses Jahr wieder ein Starter Kit geben, dass ihr einfach
Es wird auch dieses Jahr wieder ein Starter Kit geben, das ihr einfach
herunterladen, als Vorlage benutzen, oder forken und in eure eigene Map
herunterladen, als Vorlage benutzen oder forken und in eure eigene Map
umbauen dürft. Dies ist – ebenso wie Tileset-Vorlagen — aktuell noch in
umbauen dürft. Dies ist – ebenso wie Tileset-Vorlagen — aktuell noch in
Arbeit und wird hier verlinkt sobald es fertig gestellt ist, gedultet
Arbeit und wird hier verlinkt, sobald es fertig gestellt ist, gedultet
euch also noch ein wenig.
euch also noch ein wenig.
### Best Practices
### Best Practices
Um den Besuch der Welt möglichst angenehm zu gestalten haben hat sich über
Um den Besuch der Welt möglichst angenehm zu gestalten, hat sich über
vergangene Veranstaltungen
vergangene Veranstaltungen
[eine Liste an Best Practices für die Kartengestaltung](map-best-practices.md)
[eine Liste an Best Practices für die Kartengestaltung](map-best-practices.md)
ergeben. Bitte lest sie euch aufmerksam durch und behaltet sie beim Gestalten
ergeben. Bitte lest sie euch aufmerksam durch und behaltet sie beim Gestalten
@@ -96,11 +96,11 @@ Bitte beachtet, dass eure Karte auch abgelehnt werden kann, falls sie Fehler
@@ -96,11 +96,11 @@ Bitte beachtet, dass eure Karte auch abgelehnt werden kann, falls sie Fehler
enthält (z.B. Ausgänge auf Karten zeigen, die gar nicht existieren) oder sie
enthält (z.B. Ausgänge auf Karten zeigen, die gar nicht existieren) oder sie
einfach im falschen Format ist. In diesem Fall wird euch das im Maschinenraum
einfach im falschen Format ist. In diesem Fall wird euch das im Maschinenraum
angezeigt und entsprechend begründet — falls sich eure Karte also auch nach
angezeigt und entsprechend begründet — falls sich eure Karte also auch nach
mehrmaligem neuladen nicht verändert hat, schaut bitte einmal dort nach.
mehrmaligem Neuladen nicht verändert hat, schaut bitte einmal dort nach.
### Links zwischen einzelnen Karten
### Links zwischen einzelnen Karten
Innerhalb eures Repositories könnt ihr ganz normale, relative Links benutzen —
Innerhalb eures Repositories könnt ihr ganz normale relative Links benutzen —
um von einer Karte `main.json` auf eine zweite Karte `garten/geheimbasis.json`
um von einer Karte `main.json` auf eine zweite Karte `garten/geheimbasis.json`
zu verlinken, tragt also einfach den enstprechenden Pfad ein (andersrum genauso:
zu verlinken, tragt also einfach den enstprechenden Pfad ein (andersrum genauso:
von `garten/geheimbasis.json` zurück nach `main.json` geht es per `../main.json`).
von `garten/geheimbasis.json` zurück nach `main.json` geht es per `../main.json`).
@@ -114,7 +114,7 @@ da diese auf rc3.world dann außerhalb eures Assemblies liegen würden.
@@ -114,7 +114,7 @@ da diese auf rc3.world dann außerhalb eures Assemblies liegen würden.
**Achtung:** Funktioniert anders als letztes Jahr!
**Achtung:** Funktioniert anders als letztes Jahr!
Um von zu anderen Assemblies oder allgemein anderen Orten (z.B. zur Lobby oder
Um zu anderen Assemblies oder allgemein anderen Orten (z.B. zur Lobby oder
Lounge) zu linken gibt es ein spezielles Link-Schema:
Lounge) zu linken gibt es ein spezielles Link-Schema:
`world://<assembly>/<map>.json`
`world://<assembly>/<map>.json`
@@ -138,7 +138,7 @@ gelangt.
@@ -138,7 +138,7 @@ gelangt.
Eure Assembly-Karte sollte natürlich auch einen Ausgang zurück zur Lobby
Eure Assembly-Karte sollte natürlich auch einen Ausgang zurück zur Lobby
enthalten. Als einheitlichen, wiedererkennbaren Ausgang zur Lobby-Karte empfehlen
enthalten. Als einheitlichen, wiedererkennbaren Ausgang zur Lobby-Karte empfehlen
wir euch dafür dieses Tile zu verwenden:
wir euch, dafür dieses Tile zu verwenden:
![](https://tiles.rc3.world/rc3-2021/worldExit.png)
![](https://tiles.rc3.world/rc3-2021/worldExit.png)
@@ -149,7 +149,7 @@ wir euch dafür dieses Tile zu verwenden:
@@ -149,7 +149,7 @@ wir euch dafür dieses Tile zu verwenden:
## Tiles
## Tiles
Grundlegend bestehen die Karten aus sogenannten Tiles oder Sprites (auch wenn es
Grundlegend bestehen die Karten aus sogenannten Tiles oder Sprites (auch wenn es
Unterschiede zwischen den Begriffen gibt werden sie hier im Folgenden synonym
Unterschiede zwischen den Begriffen gibt, werden sie hier im Folgenden synonym
verwendet). Bitte benutzt ausschließlich Tiles der Größe 32x32 Pixel.
verwendet). Bitte benutzt ausschließlich Tiles der Größe 32x32 Pixel.
Tiles können Transparenz beinhalten und liegen im png-Format vor.
Tiles können Transparenz beinhalten und liegen im png-Format vor.
@@ -166,10 +166,10 @@ als Submodule in euer Karten-Repo einbinden: `https://git.cccv.de/rc3/world-tile
@@ -166,10 +166,10 @@ als Submodule in euer Karten-Repo einbinden: `https://git.cccv.de/rc3/world-tile
* [opengameart.org](https://opengameart.org/)
* [opengameart.org](https://opengameart.org/)
* [deviantart.com](https://www.deviantart.com/)
* [deviantart.com](https://www.deviantart.com/)
* Achtet auf die Größe der Tiles!
* Achtet auf die Größe der Tiles!
* Achtet auf die Lizenz der Tilesets
* Achtet auf die Lizenz der Tilesets.
* wir werden nicht aktiv prüfen, unter welcher Lizenz eure Tiles stehen,
* Wir werden nicht aktiv prüfen, unter welcher Lizenz eure Tiles stehen,
allerdings nach dem Prinzip "takedown on notice" auf Verstöße reagieren.
allerdings nach dem Prinzip "takedown on notice" auf Verstöße reagieren.
* tragt die Lizenz eurer Tilesets in die custom property `tilesetCopyright` ein
* Tragt die Lizenz eurer Tilesets in die custom property `tilesetCopyright` ein.
@@ -186,7 +186,7 @@ auch "pixeln" genannt wird. Hierzu empfiehlt sich der Editor
@@ -186,7 +186,7 @@ auch "pixeln" genannt wird. Hierzu empfiehlt sich der Editor
baut Übergänge von einem Material zu Transparenz, das ist vielseitiger nutzbar
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.
und erspart euch, zu jedem anderen Material einen Übergang gestalten zu müssen.
* Auf media.ccc.de könnt ihr euch den [Pixel-Art Workshop von blinry](https://media.ccc.de/v/34C3-jugend-hackt-1016-pixel_art_workshop)
* Auf media.ccc.de könnt ihr euch den [Pixel-Art Workshop von blinry](https://media.ccc.de/v/34C3-jugend-hackt-1016-pixel_art_workshop)
ansehen
ansehen.
## Maps
## Maps
@@ -198,10 +198,10 @@ transparent gestaltet werden.
@@ -198,10 +198,10 @@ transparent gestaltet werden.
### Neue Karte in Tiled anlegen
### Neue Karte in Tiled anlegen
Achtet beim Erstellen einer neuen Karte auf folgende Einstellungen:
Achtet beim Erstellen einer neuen Karte auf folgende Einstellungen:
* die Karte muss orthogonal sein, und Tilesize muss 32x32 Pixel sein
* Die Karte muss orthogonal sein, und Tilesize muss 32x32 Pixel sein.
* Während des Erstellens kann es sinnvoll sein, eine unendliche Karte zu
* Während des Erstellens kann es sinnvoll sein, eine unendliche Karte zu
verwenden, anstatt sich vorab auf eine Größe festzulegen. Dies muss beim
verwenden, anstatt sich vorab auf eine Größe festzulegen. Dies muss beim
finalen Speichern der Karte wieder aber wieder auf eine feste Größe geändert
finalen Speichern der Karte aber wieder auf eine feste Größe geändert
werden!
werden!
### Karte gestalten - Layer
### Karte gestalten - Layer
@@ -211,7 +211,7 @@ werden neue Besucher\*innen dann zufällig auf einer der Tiles dieses Layers
@@ -211,7 +211,7 @@ werden neue Besucher\*innen dann zufällig auf einer der Tiles dieses Layers
starten (am besten schiebt ihr diesen Layer im Stapel ganz nach unten, damit
starten (am besten schiebt ihr diesen Layer im Stapel ganz nach unten, damit
diese Tiles einfach von den anderen überdeckt werden). Außerdem braucht ihr ein
diese Tiles einfach von den anderen überdeckt werden). Außerdem braucht ihr ein
Layer namens `floorLayer`, dessen Typ `objectgroup` sein muss und der definiert,
Layer namens `floorLayer`, dessen Typ `objectgroup` sein muss und der definiert,
auf welchem Layer sich die Avatare bewegen bzw. was vor- oder hinter ihnen
auf welchem Layer sich die Avatare bewegen bzw. was vor oder hinter ihnen
angezeigt werden soll.
angezeigt werden soll.
![](img/layer.png)
![](img/layer.png)
@@ -223,7 +223,7 @@ Für ein leichteres Gestalten hebt euch den aktuellen Layer hervor:
@@ -223,7 +223,7 @@ Für ein leichteres Gestalten hebt euch den aktuellen Layer hervor:
### Wände / Kollisionen
### Wände / Kollisionen
Um Tiles als undurchgängig zu markieren, müsst ihr diese im Tileeditor öffnen
Um Tiles als undurchgängig zu markieren, müsst ihr diese im Tileeditor öffnen
und die custom property `collides` (Boolean `true`) für das jeweilige Tile
und die custom property `collides` (Boolean `true`) für das jeweilige Tile
(nicht dem enthaltendem Layer!) setzen. Vergesst nicht, euer Tileset anschließend
(nicht das enthaltende Layer!) setzen. Vergesst nicht, euer Tileset anschließend
zu speichern! Tiled bietet zwar auch die Möglichkeit "collision shapes" für
zu speichern! Tiled bietet zwar auch die Möglichkeit "collision shapes" für
einzelne Tiles festzulegen, diese werden von workadventure allerdings nicht
einzelne Tiles festzulegen, diese werden von workadventure allerdings nicht
unterstützt und einfach ignoriert.
unterstützt und einfach ignoriert.
@@ -257,7 +257,7 @@ Layer, auf den ihr springen wollt, `bar`, dann wäre die Adresse dafür `foo.jso
@@ -257,7 +257,7 @@ Layer, auf den ihr springen wollt, `bar`, dann wäre die Adresse dafür `foo.jso
#### Ausgänge
#### Ausgänge
Exits zu anderen Maps funktionieren ähnlich: legt einen neuen Layer an, packt
Exits zu anderen Maps funktionieren ähnlich: legt einen neuen Layer an, packt
an die Stellen, an denen ihr Ausgänge haben wollt, beliebige Tiles, und gebt
an die Stellen, an denen ihr Ausgänge haben wollt, beliebige Tiles und gebt
dem Layer die Custom Property `exitUrl` (vom Typ String). Diese setzt ihr
dem Layer die Custom Property `exitUrl` (vom Typ String). Diese setzt ihr
auf die Url der Karte, zu der dieser Ausgang führen soll, also z.B. `foo.json#bar`,
auf die Url der Karte, zu der dieser Ausgang führen soll, also z.B. `foo.json#bar`,
um in der Karte `foo.json` auf einen Startpunkt `bar` zu springen (falls ihr
um in der Karte `foo.json` auf einen Startpunkt `bar` zu springen (falls ihr
@@ -283,18 +283,18 @@ Endgeräte angenehmer.
@@ -283,18 +283,18 @@ Endgeräte angenehmer.
Außerdem könnt ihr mit der Property `openWebsiteTriggerMessage` noch
Außerdem könnt ihr mit der Property `openWebsiteTriggerMessage` noch
eine kurze eigene Nachricht einstellen, die Besucher\*innen angezeigt wird, wenn
eine kurze eigene Nachricht einstellen, die Besucher\*innen angezeigt wird, wenn
sie auf den Bereich der Website laufen (dies überschreibt die Standardnachricht
sie auf den Bereich der Website laufen (dies überschreibt die Standardnachricht
"Press SPACE or touch here to open web site").
"Press SPACE or touch here to open website").
![](img/cp_openwebsite.png)
![](img/cp_openwebsite.png)
Beachtet außerdem, dass Webseiten außerhalb der rC3 auf der rc3.world automatisch
Beachtet außerdem, dass Webseiten außerhalb der rC3 auf der rc3.world automatisch
einen dereferrer vorgehängt bekommen, der Besucher\*innen darauf hinweißt, dass
ein Dereferrer vorgehängt wird, der Besucher\*innen darauf hinweist, dass
sie jetzt "das Gelände verlassen".
sie jetzt "das Gelände verlassen".
### Jitsi einbinden
### Jitsi einbinden
Auf die selbe Art könnt ihr auch Jitsi Räume in eure Karte einbinden. Setzt dazu
Auf dieselbe Art könnt ihr auch Jitsi-Räume in eure Karte einbinden. Setzt dazu
einfach die custom property `jitsiRoom` (Type String) und gebt ihr als Wert den
einfach die custom property `jitsiRoom` (Type String) und gebt ihr als Wert den
Namen den euer Jitsi Raum haben soll.
Namen, den euer Jitsi-Raum haben soll.
![](img/cp_jitsiroom.png)
![](img/cp_jitsiroom.png)
@@ -318,16 +318,16 @@ Namen eures Raums, und `bbbTrigger` bzw. `bbbTriggerMessage`, um den Raum nicht
@@ -318,16 +318,16 @@ Namen eures Raums, und `bbbTrigger` bzw. `bbbTriggerMessage`, um den Raum nicht
unverhofft aufploppen zu lassen.
unverhofft aufploppen zu lassen.
### Stille Bereiche
### Stille Bereiche
Solltet ihr in gewissen Bereichen keine Audio/Video Kommunikation zwischen den
Solltet ihr in gewissen Bereichen keine Audio/Video-Kommunikation zwischen den
Teilnehmern wollen, so könnt ihr hierfür einen eigenen Layer anlegen und diesem
Teilnehmenden wollen, so könnt ihr hierfür einen eigenen Layer anlegen und diesem
die custom property `silent` (bool true) geben. Auf allen Tiles dieses Layers
die custom property `silent` (bool true) geben. Auf allen Tiles dieses Layers
sind danach keine Gespräche mehr üblich. Besonders sinnvoll ist das z.B. in engen
sind danach keine Gespräche mehr möglich. Besonders sinnvoll ist das z.B. in engen
Gängen, in denen man sich nicht ohne weiteres ausweichen kann.
Gängen, in denen man sich nicht ohne weiteres ausweichen kann.
![](img/cp_silent.png)
![](img/cp_silent.png)
### Badgevergabe
### Badgevergabe
Ihr könnt Badges an User vergeben. Legt dazu einen Layer vom Typ `objectgroup`
Ihr könnt Badges an User\*innen vergeben. Legt dazu einen Layer vom Typ `objectgroup`
(wichtig!) an, und platziert dann keine Tiles, sondern Punkte und / oder Rechtecke
(wichtig!) an, und platziert dann keine Tiles, sondern Punkte und / oder Rechtecke
auf diesem Layer. Setzt dann noch die Custom Property `getBadge` (Typ String) auf
auf diesem Layer. Setzt dann noch die Custom Property `getBadge` (Typ String) auf
das Token eurer Badge (an dieses kommt ihr im Maschinenraum, wo ihr auch neue
das Token eurer Badge (an dieses kommt ihr im Maschinenraum, wo ihr auch neue
@@ -403,12 +403,12 @@ speichern.
@@ -403,12 +403,12 @@ speichern.
## Lizenzen
## Lizenzen
Achtet bitte bei euren Tilesets auf deren Lizenzen bzw. Copyright. Diese
Achtet bitte bei euren Tilesets auf deren Lizenzen bzw. Copyright. Diese
müsst (!) ihr via der `tilesetCopyright` Property direkt in eurem Map json für die
müsst (!) ihr via der `tilesetCopyright` Property direkt in eurem Map-json für die
jeweiligen Tilesets setzen.
jeweiligen Tilesets setzen.
Ebenso müsst (!) ihr für eure gesamte Map Lizenz bzw. Copyright in der custom
Ebenso müsst (!) ihr für eure gesamte Map Lizenz bzw. Copyright in der custom
Property `mapCopyright` (Typ String) — gesetzt auf der Map, nicht einem
Property `mapCopyright` (Typ String) — gesetzt auf der Map, nicht einem
einzelnem Layer – angeben.
einzelnen Layer – angeben.
## Verzeichnisstruktur
## Verzeichnisstruktur
Achtet beim Ablegen eurer Karten bitte auf die Verzeichnisstruktur, folgende
Achtet beim Ablegen eurer Karten bitte auf die Verzeichnisstruktur, folgende
Loading