infra:workadventure:maps

Dies ist eine alte Version des Dokuments!


Howto Workadventure Maps

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 128×128 Tiles laufen ziemlich gut, Karten im Bereich von 1000×1000 gehen mit einer relevanten Ladezeit einher. Wir raten eher zu mehreren kleineren Karten anstelle einer riesigen.

Falls ihr nicht wisst wo/wie ihr anfangen sollt gibt es verschiedene Starter-Kits das ihr einfach forken könnt:

Grundlegend bestehen die Karten aus sogenannten Tiles oder Sprites. Historisch gibt es wohl Unterschiede zwischen den Begriffen, wir werden sie hier aber synonym verwenden. Tiles können Transparenz beinhalten und liegen im png-Format vor.

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.

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!

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.

  • ListenpunktAchtet auch hierbei darauf, dass die Tiles 32×32 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.
  • ListenpunktFalls 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.
  • ListenpunktPixel-Art Workshop von blinry: http://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.

Tiles einbinden

Tilesets müssen in Tiled in die Map eingebunden werden, ein Verweis auf externe Tilesets im TSX Format ist nicht möglich. (Das heißt nicht, dass die Bilddateien mit eingebunden sind. PNG-Dateien müssen ebenfalls auf den Server geladen werden.)

Karten können mittels des Editors Tiled erstellt werden. Ähnlich wie in diversen Zeichenprogrammen können Karten aus mehreren Layern bestehen, die beim Rendern übereinander gelegt werden. Layer können transparent gestaltet werden.

Neue Karte in Tiled anlegen

Achtet beim Erstellen einer neuen Karte auf folgende Einstellungen:

  • Karte muss orthogonal sein.
  • Tilessize sollte 32×32 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 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.

  • infra/workadventure/maps.1622195230.txt.gz
  • Zuletzt geändert: 2021/05/28 09:47
  • von noby