HowTo rC3 world maps
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 und wir versuchen das Tutorial zu ergänzen.
Metainformationen
Disclaimer
Dieses Tutorial ist ein work in progress und wird immer mal wieder erweitert, es lohnt sich daher mehrfach hier vorbeizuschauen.
Updates
- 2020-12-08: Animationen hinzugefügt.
- 2020-12-11: Assembly Anmeldung hinzugefügt, Lobbykarten hinzugefügt, Layer hervorheben.
- 2020-12-15: Sound, BBB, Kartengröße hinzugefügt.
- 2020-12-16: Das world@ Postfach ist umgezogen, falls ihr heute eine Mail geschrieben, aber noch keine Antwort erhalten habt, schreibt bitte einfach nochmal. :)
- 2020-12-16: Neues URL Schema, Testinstanz nun unter: https://test.visit.at.wa-test.rc3.cccv.de/_/global/<your_map_url_here> (passt ggf eure CORS Header an!)
- 2020-12-17: Audio: Externe URLs werden nicht mehr unterstüzt. WICHTIG: Falls ihr Streams einbinden wollt, müsst ihr uns kontaktieren!
- 2020-12-20: Vorlage ergänzt.
- 2020-12-22: World-Exit ergänzt.
- 2020-12-22: Cross-Assembly Links ergänzt.
- 2020-12-25: Liste der exitUrls ergänzt.
Known Bugs
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
- das gleiche Tileset (mit dem gleichen Namen) mehrfach einbetten führt zu Darstellungsfehlern in WorkAdventure
- Tilesets > 4096px Kantenlänge scheinen in manchen Browsern Probleme zu machen.
Schnell-Überblick
Limitierungen
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.
Die Map-Größe kann davon unabhängig relativ flexibel dimensioniert werden. Karten im Bereich von 128x128 Tiles laufen ziemlich gut, Karten im Bereich von 1000x1000 gehen mit einer relevanten Ladezeit einher. Wir raten eher zu mehreren kleineren Karten anstelle einer riesigen.
Ausgehenden Links wird ein Dereferrer vorgeschaltet.
Starter-Kit
Falls ihr nicht wisst wo/wie ihr anfangen sollt haben wir inzwischen auch ein Starter-Kit für euch das ihr einfach forken könnt.
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.
Layer und Attribute
Damit ein Tile weitergehende Eigenschaften als sein Aussehen hat, müssen entsprechende Attribute zugeordnet werden. Dies erfolgt über Layer: Das Layer trägt Attribute, und speichert für welche Felder sie gelten sollen.
Wie kommts später in die world?
Um Karten in der Welt einbringen zu können, müsst ihr ein Assembly anmelden und euch anschließend kurz unter Angabe eures Assemblynamens unter world@rc3.world melden.
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.
Wir werden eure Karten regelmäßig aus eurem git Repo aktualisieren und die aktuellsten Karten ausspielen. Damit Spieler:innen die neue Version sehen, müssen sie die Seite aber neu laden.
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, 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.
Kartengestatung
Tiles
Tiles finden
- Tiles gibt es massig im Internet, häufig zu Tilesets (mehrere Tiles zu einem Thema) zusammengefasst.
- Seiten auf denen ihr schöne Tiles finden könnt sind zum Beispiel:
- 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.
- Shared Tiles Repo
Tiles gestalten / "pixeln"
Tiles können auch selbst gestaltet bzw. vorhandene verändert werden, was häufig auch "pixeln" genannt wird. Hierzu empfiehlt sich der Editor krita, 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.
- Pixel-Art Workshop von blinry: media.ccc.de/v/34C3-jugend-hackt-1016-pixel_art_workshop
Wände / Kollisionen
Um Tiles als undurchgängig zu markieren, müsst ihr diese im Tileeditor öffnen und die custom property collides
(bool true) für das jeweilige Tile (nicht mit Layern verwechseln!) setzen. Vergesst nicht euer Tileset anschließend zu speichern! Tiled bietet zwar auch die Möglichkeit collision shapes für einzelne Tiles festzulegen, diese werden von der Software allerdings ignoriert.