diff --git a/docs/img/backoffice_badge_beispiel.png b/docs/img/backoffice_badge_beispiel.png new file mode 100644 index 0000000000000000000000000000000000000000..3a8f3c4bb634e7087a958e358ed4184c0b198019 Binary files /dev/null and b/docs/img/backoffice_badge_beispiel.png differ diff --git a/docs/img/backoffice_badge_example.png b/docs/img/backoffice_badge_example.png new file mode 100644 index 0000000000000000000000000000000000000000..93502a7b529de1e0282f87f206efd54077974f3e Binary files /dev/null and b/docs/img/backoffice_badge_example.png differ diff --git a/docs/img/cp_playaudio.png b/docs/img/cp_playaudio.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e07974faa826e83e65ee7d2e232cbeb18c3a96 Binary files /dev/null and b/docs/img/cp_playaudio.png differ diff --git a/docs/index.md b/docs/index.md index 6300fd270ea471d3e9892d506a012cb9fa22958d..a905cfcc4ec3bb141805c13f0f2ba1baa7fa7498 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,7 +1,7 @@ # HowTo rC3 Diese Seiten sollen einen Überblick über den rC3, die angebotenen Dinge und die Möglichkeiten zum rC3 beizutragen geben. -Aktuell findet ihr hier den [Styleguide](styleguide.md) und das [Maps Tutorial](maps.md). +Aktuell findet ihr hier den [Styleguide](styleguide.md), das [Maps Tutorial](maps.md) und die [Maschinenraum Doku](maschinenraum.md). Die Infrastruktur für die rC3 World wird freundlicherweise von <a href="https://hetzner.com/de/cloud"><img src="img/hetzner-logo.svg" alt="hetzner online" width="60px"></a> zur Verfügung gestellt. diff --git a/docs/maps.en.md b/docs/maps.en.md index 1aaa0f07a8d9dd3c4cf7e985509b78464435577f..951db795efd922539908a630929fe89521239524 100644 --- a/docs/maps.en.md +++ b/docs/maps.en.md @@ -4,6 +4,9 @@ HowTo rC3 world maps This year's remote event will feature a kind of 2D adventure, the rc3 world. This tutorial is intended to show how content and maps can be contributed. If you have any questions after reading this tutorial, or feel like its missing something, please feel free to contact us via [mail](mailto:world@rc3.world), and we'll do our best to extend this tutorial. +## Maintenance +We are curently working on the test server, expect downtimes. + ## Disclaimer This tutorial is "work in progess", hence its worth checking it from time to time since it will be changed and extended continuously. @@ -11,12 +14,26 @@ This tutorial is "work in progess", hence its worth checking it from time to tim * 2020-12-08: Animations added. * 2020-12-11: Assembly registration added, Lobbymaps added, hightlighting current layer. +* 2020-12-15: Sound, BBB, Map size added. +* 2020-12-16: We moved to world@ postbox, if you wrote us an email today and got not answer, please try again. :) +* 2020-12-16: New URL scheme, test instance now at: https://test.visit.at.wa-test.rc3.cccv.de/_/global/<your_map_url_here> (adapt your CORS headers if needed!) +* 2020-12-17: Audio: removed external URLs. **IMPORTANT:** If you want to include streams please contact us! ## Known Bugs Following bugs are known and worked on: * Exits on the outer most right tiles dont work * exitUrl in combination wir multiple exits to the same map leads to confusion in starting points. exitSceneUrl works instead, but ist deprecated. +* Loading a tileset twice (with the same name) results in interesting rendering bugs (e.g. missing tiles in WorkAdventure) + +## Limitations +Instances wont scale indefinetly, please keep that in mind while building maps. From our experience the limit is somewhere around 200 players. Maps for 2k players wont make any sense. Please dont try to build lecture halls. There's no sense in idling in the game while watching talks. + +Regardless of this you can choose the map size relativly fleixble. +Maps in the ballpark of 128x128 tils run quite smooth, maps with 1000x1000 tiles will come with a significant loading time. +We hence recomend using a number of smaller maps rather than a single big one. + +External links will be sent through a dereferrer. ## Tiles / Sprites The maps consist of so-called tiles or sprites. There appears to be a historical difference between these 2 terms, however we do use them interchangeably. For the rC3 map 32x32 tiles are recomended, as different tile sizes may lead to problems. Tiles may have transparent parts and should be stored in the png format. @@ -85,10 +102,12 @@ You can embed websites that will open when stepping on certain tiles. To do this  ##### Embedding jitsi -Jitsi rooms may be embedded into maps in the same way. Simple set the custom property "jitsiRoom" (string) and input the room name as the value. There will only be jitsi rooms on the servers hosted by us, no external servers. +Jitsi rooms may be embedded into maps in the same way. Simple set the custom property "jitsiRoom" (string) and input the room name as the value.  +By default jitsi rooms will be bound to the instance, this is to ensure that everyone has their own "hackcenter". Please prefix your room with "shared", should you want to share a jitsi room across instaces. (e.g. "shared our jitsiroom"). No external jitsi rooms will be allowed only the ones provided by us. + ##### Silent areas Should you not want audio and video communication between participants in certain areas, you can set the custom property "silent" bool true in a layer defining the area. @@ -118,11 +137,24 @@ To show animations in tiled, set the corresponding option: Tip: The engine does tile-updates every 100ms, animations with a shorter frame duration will most likely not look that good or may even do not work. +Bigger animations need to animated in tiled tile by tile. This however is relativly straight forward. +(Occationally some tiles dont run in sync with the rest, cthulu knows why...) + +### Sound +Layers with the property "playAudio" (String) will play a sound associated with the tile. Only mp3 files included via a relativ path to your map are supported. External files can not be included. If you want to include streams, please write an email to [world@rc3.world](mailto:world@rc3.world). If you want to loop the audio please use the property "playAudioLoop" (string) instead. + + + +Please only use **GEMA-free** sound snippets! If you embed streams you will also be required to keep a tracklist to be able to proove to GEMA that you only played "gema-free music". + ### Saving and exporting maps Maps need to be saved as json files, tilesets should be embedded prior to this. The relevant files the will be you map in json format and will use the tilesets in png format. Infinite maps need to be converted to finite dimension maps before exporting. To do so just untick the "infinite" tick box and safe.  +### Licenses +If you use CC-BY tiles or pictures or want to use your own license, you can add a file named "_COPYRIGHT_". This file has to be on the same level as your map file. + ## How will it be linked into the the rC3 world? To be able to contribute maps to the world, you need to [register an assembly](https://signup.c3assemblies.de/) and contact [world@rc3.world](mailto:world@rc3.world) naming your assembly name. @@ -140,12 +172,15 @@ Please ensure that the right folder structure is used when saving your maps: A example map might look like this: ``` +. ├── bla -│ └── keks.json +│ ├── COPYRIGHT +│ └── keks.json ├── blubb.json +├── COPYRIGHT ├── foo -│ ├── bar.json -│ └── tileset2.png +│ ├── bar.json +│ └── tileset2.png ├── main.json └── tileset.png ``` @@ -154,7 +189,7 @@ A example map might look like this: We create central Entrymaps to join the world and lead to the different assembly maps. Please drop us an email via [world@rc3.world](mailto:world@rc3.world) naming your assemblyname, that we can reserve an exitpoint to your assembly. Besides that we would ask you to reserve a spot for an exit back to the lobby maps on your map. Tiles and the address for the jump will be provided by us via mail. ### Testing -For testing you may put the map on any server reachable by https and embed the URL in our test instance. Lets assume your map is stored under _https://example.com/mymaps/foo.json_ then the URL to test it would be *https://play.wa-test.rc3.cccv.de/_/global/example.com/mymaps/foo.json*. The option to load external maps is just for testing and will be disabled for rC3. +For testing you may put the map on any server reachable by https and embed the URL in our test instance. Lets assume your map is stored under _https://example.com/mymaps/foo.json_ then the URL to test it would be *https://test.visit.at.wa-test.rc3.cccv.de/_/global/example.com/mymaps/foo.json*. The option to load external maps is just for testing and will be disabled for rC3. You might need to set the matching CORS Headers on the server serving the map. diff --git a/docs/maps.md b/docs/maps.md index 77208b5b08e7a2b4b97e6d23b3f2021d8cbec13c..f5b9808b9161501ec141b8835bc616b64a070c44 100644 --- a/docs/maps.md +++ b/docs/maps.md @@ -3,10 +3,13 @@ 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. +## Maintenance +Wir bauen aktuell den Testserver um, es wird zu Einschränkungen kommen. + ## Disclaimer Dieses Tutorial ist ein work in progress und wird immer mal wieder erweitert, es lohnt sich daher mehrfach hier vorbeizuschauen. @@ -14,16 +17,30 @@ Dieses Tutorial ist ein work in progress und wird immer mal wieder erweitert, es * 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! ## 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 +* das gleiche Tileset (mit dem gleichen Namen) mehrfach einbetten führt zu Darstellungsfehlern in WorkAdventure + +## 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. ## 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. @@ -33,7 +50,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/) @@ -41,7 +58,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 @@ -54,12 +71,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.  @@ -69,12 +86,12 @@ Für ein leichteres Gestelten hebt euch den aktuellen Layer hervor:  #### 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_.  @@ -83,7 +100,7 @@ Außerdem könnt ihr weitere Start Layer erstellen um weitere Einstiegspunkte zu  -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! @@ -91,10 +108,12 @@ Ihr könnt Webseiten einbinden, die sich beim Betreten von bestimmten Tiles öff  ##### Jitsi einbinden -Auf die selbe Art könnt ihr auch Jitsi Räume in eure Karte einbinden. Setzt dazu einfach die custom property "_jitsiRoom_" (string) und gebt ihr als Wert den Namen den euer Jitsi Raum haben soll. Es können keine externen Jitsi Server angegeben, sondern nur von uns bereitgestellte genutzt werden. +Auf die selbe Art könnt ihr auch Jitsi Räume in eure Karte einbinden. Setzt dazu einfach die custom property "_jitsiRoom_" (string) und gebt ihr als Wert den Namen den euer Jitsi Raum haben soll.  + Jitsi Räume sind per default an die Instanz gebunden, damit jeder sein eigenes "Hackcenter" haben kann, falls ihr einen Jitsi Raum über mehrere Instanzen sharen wollt, prefixt ihn mit "shared" (Beispiel: "shared Unser Jitsiraum"). Es können keine externen Jitsi Server angegeben, sondern nur von uns bereitgestellte genutzt werden. + ##### Stille Bereiche 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 die custom property "_silent_" (bool true) geben. @@ -113,7 +132,7 @@ Bearbeitet dazu in Tiled das Tileset, wählt das zu animierende Tile (oder ein b  -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:  @@ -123,19 +142,32 @@ 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. +Größere Animationen über mehrere Tiles müssen in Tiled Tile für Tile animiert werden, funktionieren aber relativ problemlos. +(Gelegentlich laufen einzelne Tiles nicht synchron zum Rest, wir wissen doch auch nicht..) + +### Sound +Layer mit der Property "playAudio" (string) spielen beim Betreten der zugehörigen Tiles Sound ab. Unterstütz werden mp3-Dateien, die relativ zum Pfad der Karte eingebunden werden können. Externe mp3-Dateien können nicht eingebunden werden. Falls ihr Streams eimbinden wollt wendet euch bitte an [world@rc3.world](mailto:world@rc3.world). Soll sich der Audioschnipsel wiederholen so verwendet stattdessen einfach "playAudioLoop" (string) als Property. + + + +Bitte verwendet nur **GEMA-freie** Soundschnipsel! Falls ihr Streams einbindet müsst ihr außerdem eine Trackliste anlegen um der GEMA nachweisen zu können, dass ihr nur freie Musik gespielt habt. + ### 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.  +### Lizenzen +Sofern ihr CC-BY Tiles / Bilder verwendet oder eure eigene Lizenz verwenden wollt, könnt ihr dies in der Datei "_COPYRIGHT_" tun. Die Datei muss auf der selben Verzeichnisebene wie eure Karte liegen. + ## Wie kommts später in die world? Um Karten in der Welt einbringen zu können, müsst ihr ein [Assembly anmelden](https://signup.c3assemblies.de/) und euch anschließend kurz unter Angabe eures Assemblynamens unter [world@rc3.world](mailto: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. -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: @@ -150,8 +182,10 @@ Hier ein Beispiel wie ein Verzeichnis mit Karten exemplarisch aussehen könnte: ``` . ├── bla +│ ├── COPYRIGHT │ └── keks.json ├── blubb.json +├── COPYRIGHT ├── foo │ ├── bar.json │ └── tileset2.png @@ -160,15 +194,19 @@ 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://test.visit.at.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. + +## Big Blue Button +Wir mögen BBB, aber WorkAdventure bietet bereits eine solide Einbettung für Jitsi, welches wir auf dezidierter Hardware betreiben. Der Aufwand BBB einbindbar zu machen ist aktuell nicht stemmbar für uns. +Bitte rechnet nicht damit und benutzt stattdessen Jitsi für den rc3. ## 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. diff --git a/docs/maschinenraum.md b/docs/maschinenraum.md new file mode 100644 index 0000000000000000000000000000000000000000..cf337560e626291f40ea95568dd590c8de38a9fd --- /dev/null +++ b/docs/maschinenraum.md @@ -0,0 +1,115 @@ +How to Maschinenraum +=== + +[english version coming soon] + +Diese Doku ist für Assemblies und erklärt, wie Ihr Eure Assembly und Euren Content im Maschinenraum managen könnt. + +Die Software ist so designed, dass sie auch auf künftigen Präsenz- oder Misch-Veranstaltungen eingesetzt werden kann und enthält daher z.B. auch Optionen physikalische Räume anzulegen. Für die meisten von Euch werden auf der rC3 aber die rein digitalen Features relevant sein. + + +## Wichtige Infos +Rechtliche Ansprechpartnerin für Abuse ist die CCCV GmbH. +Alles was an Links raus ins Internet geht, ist nicht gewhitelistet und wird mit einem Derefer-Hinweis versehen, dass es nicht in unserem Einflussbereich liegt und die jeweiligen Betreiber:innen dafür voll verantwortlich sind. + +Ihr seid entsprechend für Eure Assemblies und etwaigen Content dort verantwortlich. Bei Verstößen wird der Inhalt ohne Vorwarnung gelöscht. + +Stichwort Hosting: Sofern Ihr eigene Dienste oder Services für die rC3 betreiben wollt, hostet diese bitte selbst. Solltet Ihr auf einen Service zurückgreifen, soll dieser in der EU ansässig sein. Die Verwendung von US-Amerikanischen Anbietern ist nicht akzeptabel, wenn die Inhalte in die rC3-Domainlandschaft fließen sollen. Wir behalten uns vor, diese Links zu ignorieren oder gleich aus dem Maschinenraum zu löschen. Diese Dienste sind nicht mit unserem Datenschutz vereinbar. + +Was auch immer in Eurer Assembly passiert: Ihr seid dafür verantwortlich! Deshalb denkt daran Impressum und Datenschutzerklärungen auf Euren eigenen Seiten zu ergänzen. + + +## Jetzt zum Maschinenraum +Der Maschinenraum unter https://maschinenraum.rc3.world/ ist zur Verwaltung Eurer Assembly gedacht. Dies ist jedoch nicht das Konferenz-Frontend und Ihr seht auch keine Inhalte anderer Assemblies! + +Der Account, den Ihr hier verwendet, könnt (nicht: müsst) Ihr später für den Zugriff auf die Konferenz-Plattform nutzen sobald Ihr ein Konferenz-Ticket damit verknüpft habt (dafür kommt aus dem Ticket-Tool zu gegebener Zeit ein entsprechender Link). + +Bei der Anlage bekommt Eure Assembly einen Kurznamen (den wir in URLs benutzen) sowie einen sprechenden Namen – danach geht es in einem größeren Menü weiter: + + +### Organisatorische Daten +Unter diesem Menüpunkt könnt Ihr anlegen wie Eure Assembly repräsentiert wird: + +* Basisdaten: Wie heißt Ihr? Was macht Ihr? Habt ihr ein Logo oder eine Website? Tragt Tags für die Suche ein! +* Links: Zu welchen Assemblies besteht thematische oder personelle Nähe? Neben wem "sitzt" ihr? +* Mitglieder: Wer ist bei Eurer Assembly dabei? Die Rolle "offizieller Ansprechpartner" wird als solche benutzt - auf der Webseite wird diese hervorgehoben und dient der Orga als Kontaktperson, z.B. bei Abusefällen. Die Rolle "Manager" wird wie ein reguläres Mitglied angezeigt (sofern überhaupt gewünscht), kann aber Einstellungen an der Assembly vornehmen. Zu guter Letzt können alle Mitglieder öffentlich angezeigt werden oder auch nicht. +* Authentifizierung: + * Hier könnt Ihr ein Token anfordern, mit dem Eure Assembly z.B. Badges an Nutzer verteilen kann. + * Zudem können hier externe Anwendungen registriert werden, die dann [OAuth2](https://oauth.net/2/) -basiert eine Authentifizierung von Nutzern der Konferenz anfordern können. + + +### Wie werden Räume angelegt? +Räume sind der physischen Welt angelehnt (siehe Einleitung). Sie können sowohl für die PlainUI angelegt werden, als auch für die 2D-Welt, wobei es dabei Unterschiede gibt. + +Grundsätzlich ist die 2D-Welt leider nicht barrierefrei, daher habt Ihr die Möglichkeit, in der barrierearmen PlainUI BBB-Räume für Self-organised Sessions sowie "Lagerfeuer" für spontane Zusammenkünfte, zum entspannten Quatschen und Socializing anzulegen. + +Um einen Raum anzulegen, gebt Ihr Name, Raum-Typ und die Kapazität an. +Wenn Ihr einen Vorlesungs- oder Workshopraum oder eine "Bühne" plant, denkt daran, dass Konferenzräume auch im Internet leider nicht grenzenlos skalieren. Es gab bereits BBB-Räume mit etwa 90 Teilnehmer:innen. Das funktioniert bei guter Funkdisziplin und wenn nur wenige (zB die jeweils Vortragenden) ihre Kameras aktiviert haben. + +### 2D-Welt-Map beitragen +Um eine Map zur 2D-Welt beizutragen, müsst Ihr ein Git-Repo angeben, welches clonebar ist. Falls das Repo privat ist, müsstet Ihr Deploy Tokens mit in die URL einbauen, beispielsweise https://bernd:brot@git.kinderkanal.de/bluemchenwiese.git. + +Wie Ihr eine kompatible Map erstellt, lest Ihr im [rC3-World HowTo](https://howto.rc3.world/) + + +### Wie werden Projekte angelegt? +Wir möchten Eure Projekte sehen! Damit die guten Stücke im Frontend landen, brauchen wir von Euch: + +* Projekt-Name +* Beschreibung: Der Flavour-Text für die Infoseite Eurer Projekte im Frontend. Was wird gezeigt? Warum wollen Wesen das auf keinen Fall verpassen? Woher kam die Idee? Wer hat es gemacht? +* auch: Wir suchen noch Leute für xyz +* Links zu diversen weiteren Inhalten (hinter Dereferrer) möglich, wie z.B. Bildergalerie, Sourcecode-Repo, etc. + + +### Externe Links +Natürlich könnt Ihr z.B. Wikis Eurer Projekte verlinken. Allerdings ist alles, was außerhalb der rC3-Domains liegt, "YOLO-Land" und wird mit einer Dereferrer-Warnung versehen. + + +### Externe Medien & Streams +Externe Streams aus Yolo-Land haben leider mehrere Haken (Gema, Abuse, Sicherheit, ...), weswegen wir diese nicht in die Welt oder in die PlainUI einbinden, sondern zu Euren eigenen Seiten rauslinken. Das heißt, User:innen kommen über einen Dereferrer auf Eure eigene Infrastruktur. +Wenn Ihr Audio oder Video in der rC3 einbinden möchtet (z.B. auf Eurer Map), habt Ihr die Möglichkeit, im "Hangar" (siehe unten) eine kleine Menge Daten zu lagern (Pi mal Daumen maximal 200Mb), die dann in die 2D-Welt oder auf Euren Projektseiten eingebunden werden können. + + +### Wie werden Events mit Fahrplaneintrag angelegt? +Ihr könnt Vorträge und Sessions im Rahmen Eurer Assembly anlegen, die dann auch im Fahrplan im Frontend auftauchen (etwas abgesetzt vom offiziellen Programm) – als Zwischending zwischen offiziellem Vortrag und unabhängiger Self-organized Session. +Ein Raumbezug ist nicht nötig (aber doch irgendwie sinnvoll, weil sonst niemand weiß wohin). + + +### Was ist der „Hangar“ im Backoffice/Maschinenraum? +Ihr reserviert einen "Hangar"-Platz, dieser wird Euch dann zugewiesen. Vorstellbar wie ein virtueller Lagerraum für Assemblies, um statischen Content wie kurze Videos oder -loops, Audio etc. in die Welt einbinden zu können. +Der Hangar ist ausdrücklich KEIN Fileshare, sondern der Ort, wo Assets für die Welt hochgeladen werden können und sollen. Der Hangar dient auch nicht um dort irgendeine Internetpräsenz zu hosten! (Ihr würdet ja auch keine komplette Luftfahrzeugflotte in einem winzigen Hangar unterbringen.) +Wenn Ihr Daten in den Hangar ladet, geht vorher sicher, dass Ihr die Rechte an den hochgeladenen Dateien habt! Verstöße führen zum Ausschluss der Assembly von der gesamten Veranstaltung. + +* Ihr könnt Euch in Kürze einen FTPS Zugang über den Maschinenraum klicken und dann mit einem gängigen FTP Client die Dateien hochladen. +* Dazu gebt Ihr an, was Ihr im Hangar hinterlegen wollt (Kurzbeschreibung) und benennt den:die _Ansprechpartner:in_ für Abusefälle und dergleichen. + +### Wie werden Badges erstellt? +Wie geht das und was ist machbar? Was bedeuten Sticker- oder Achievement-Mode? + + + +Badges benötigen jeweils + +* einen Namen +* eine Grafik: wir empfehlen PNG, 512x512px +* auswählen: Sticker- vs. Achievement-Mode + +Badges werden via Token an die User:innen verteilt. Ein passendes Token kann beim Badge editieren generiert werden. + +* Stickermode: Draufklicken, möcht ich haben, done. Stellt es Euch vor wie die Stickerboxen die Ihr bei Euren physischen Assemblies hattet. + +* Achievement + * Modus 1 (anonym bzw. Username nicht bekannt): Assembly holt sich ein "redeem token" für den:die User:in, dann bekommt er:sie den Token und das Profil mit Eingabebox taucht auf (analog zum gefundenen Easteregg). Redeem Code im Profil einlösen, dann ist das Achievement unlocked und es gibt die Badge. + * Modus 2 (Username z.B. via SSO bekannt): Assembly sagt: Diese:r User:in dort soll die Badge bekommen. Die Badge wird zugestellt und muss von dem:der User:in akzeptiert werden. + +Gesammelte Badges finden User:innen in ihrem Profil. User:innen müssen den Erhalt der Badges immer aktiv bestätigen - wer möchte schon plötzlich einen rosafarbenen Delphin-Vibrator im Profil vorfinden? + +API Endpunkt existiert in Kürze (noch nicht) + + +## VOC, Streaming und Stuff +Es gibt eine eigene Doku für die Kanäle und damit etwaige Fragen: [c3voc.de/wiki/events:rc3:kanal-howto](https://c3voc.de/wiki/events:rc3:kanal-howto) + +Bei Fragen bitte kontaktieren unter: +empfohlen: IRC, #voc-lounge im Hackint.eu +möglich: [voc@c3voc.de](mailto:voc@c3voc.de) diff --git a/mkdocs.yml b/mkdocs.yml index c285f175bd5c34dc94b1c2e25a9c8f8ec1ea7c0f..34bdde35648c8478bab823ac1aa8c07485096b6f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -28,3 +28,4 @@ theme: nav: - Maps: maps.md - Styleguide: 'styleguide.md' + - Maschinenraum: 'maschinenraum.md'