From 6ab82de4f2b1f7ccff4d6fc70f7cd3e48c0a7522 Mon Sep 17 00:00:00 2001 From: stuebinm <stuebinm@disroot.org> Date: Tue, 7 Dec 2021 15:41:17 +0000 Subject: [PATCH] map & workadventure updates --- docs/exitUrls.en.md | 165 -------------- docs/exitUrls.md | 162 -------------- docs/img/worldExit.png | Bin 0 -> 678 bytes docs/index.md | 23 +- docs/map-best-practices.en.md | 45 ++++ docs/map-best-practices.md | 50 +++++ docs/maps.en.md | 394 ++++++++++++++++++++++----------- docs/maps.md | 396 ++++++++++++++++++++++++---------- docs/maschinenraum.en.md | 2 +- docs/maschinenraum.md | 2 +- docs/styleguide.md | 39 ---- mkdocs.yml | 6 +- 12 files changed, 657 insertions(+), 627 deletions(-) delete mode 100644 docs/exitUrls.en.md delete mode 100644 docs/exitUrls.md create mode 100644 docs/img/worldExit.png create mode 100644 docs/map-best-practices.en.md create mode 100644 docs/map-best-practices.md delete mode 100644 docs/styleguide.md diff --git a/docs/exitUrls.en.md b/docs/exitUrls.en.md deleted file mode 100644 index 3494434..0000000 --- a/docs/exitUrls.en.md +++ /dev/null @@ -1,165 +0,0 @@ -# exitUrls -You may want to link back from your assembly map to our lobby maps from. - -Please use the exitUrl matching your assembly -Wahrscheinlich möchtet ihr aus euren Assembly-Karten auch an einer (oder mehreren) Stellen zurück zur Lobby. - -Attention: This does **not** work for the test instance. - -Please use the URLs/placeholders for this as follows: - -| Assembly | exitUrl | -| -------- | ------ | -| /dev/base | `{<lobby>/maps/erfas-south.json#start_dev-base}` | -| /dev/lol | `{<lobby>/maps/erfas-south.json#start_devlol}` | -| /dev/tal | `{<lobby>/maps/erfas-spaces-north.json#start_devtal}` | -| 0museum | `{<lobby>/maps/software.json#start_nullmuseum}` | -| 3D History | `{<lobby>/maps/software.json#start_3d-history}` | -| Aaaaaaaaaaaaaaaaaaaaaaa | `{<lobby>/maps/erfas-south.json#start_aaaaaaaaaaaa}` | -| Angelkitchen van de Mecklenbörgers | `{<lobby>/maps/generic-assemblies.json#start_engelkittchen}` | -| Whistleblow Village | `{<lobby>/maps/freedom.json#start_whistleblowers}` | -| Astralship | `{<lobby>/maps/erfas-spaces-north.json#start_astralship}` | -| Awareness | `{<lobby>/maps/c3oc.json#start_awareness-team}` | -| B3 – Berliner Bastel Bande | `{<lobby>/maps/generic-tech.json#start_b3}` | -| Backdoor Collective | `{<lobby>/maps/erfas-spaces-north.json#start_backdoor-collective}` | -| Bits&Bäume Dresden | `{<lobby>/maps/non-tech.json#start_bits-baeume-dresden}` | -| Bitwäscherei / DigiGes | `{<lobby>/maps/erfas-south.json#start_bitwaescherei}` | -| BUNDjugend | `{<lobby>/maps/non-tech.json#start_bundjugend}` | -| C3D2 | `{<lobby>/maps/erfas-spaces-north.json#start_c3d2}` | -| C3Signs | `{<lobby>/maps/c3oc.json#start_c3sign}` | -| CCC Basel | `{<lobby>/maps/erfas-south.json#start_ccc-basel}` | -| CCC Darmstadt | `{<lobby>/maps/erfas-south.json#start_ccc-darmstadt}` | -| CCC HH | `{<lobby>/maps/erfas-spaces-north.json#start_ccc-hh}` | -| Chaos Bronies | `{<lobby>/maps/generic-assemblies.json#start_chaos-bronies}` | -| ChaosPat:innen | `{<lobby>/maps/c3oc.json#start_chaospatinnen}` | -| Chaostreff Alzey | `{<lobby>/maps/erfas-south.json#start_chaostreff-alzey}` | -| ChaosZone | `{<lobby>/maps/erfas-spaces-north.json#start_chaoszone}` | -| Computerwerk | `{<lobby>/maps/non-tech.json#start_computerwerk}` | -| cyber4EDU | `{<lobby>/maps/non-tech.json#start_cyber4edu}` | -| Darksystem | `{<lobby>/maps/generic-assemblies.json#start_darksystem}` | -| Dezentrale | `{<lobby>/maps/erfas-spaces-north.json#start_dezentrale}` | -| Eigenbaukombinat Halle | `{<lobby>/maps/erfas-spaces-north.json#start_eigenbaukombinat}` | -| Elektroglitzer | `{<lobby>/maps/hardware-making.json#start_elektroglitzer}` | -| eventphone | `{<lobby>/maps/main.json#start_eventphone}` | -| Fairy Dust Forest | `{<lobby>/maps/erfas-spaces-north.json#start_fairy-dust-forest}` | -| FraMa | `{<lobby>/maps/erfas-south.json#start_frama}` | -| FSR VI | `{<lobby>/maps/non-tech.json#start_fsrvi}` | -| Gaffa Overflow | `{<lobby>/maps/erfas-spaces-north.json#start_gaffa-overflow}` | -| Hacklabor | `{<lobby>/maps/erfas-spaces-north.json#start_hacklabor}` | -| haecksen | `{<lobby>/maps/erfas-spaces-north.json#start_haecksen}` | -| Haquium Maburgensis | `{<lobby>/maps/erfas-south.json#start_hsmr}` | -| Hardware Hacking Area | `{<lobby>/maps/hardware-making.json#start_hardware-hacking-area}` | -| ICMP | `{<lobby>/maps/erfas-south.json#start_icmp}` | -| Kalkspace | `{<lobby>/maps/erfas-south.json#start_kalkspace}` | -| Labitat | `{<lobby>/maps/erfas-spaces-north.json#start_labitat}` | -| Labstelle511 | `{<lobby>/maps/erfas-spaces-north.json#start_labstelle511}` | -| lebkuch.is | `{<lobby>/maps/erfas-south.json#start_lebkuch-is}` | -| loop23 | `{<lobby>/maps/generic-assemblies.json#start_loop23}` | -| Mainframe | `{<lobby>/maps/erfas-spaces-north.json#start_mainframe-chaostreff-oldenburg}` | -| Metalab | `{<lobby>/maps/erfas-south.json#start_metalab}` | -| MOiN | `{<lobby>/maps/erfas-spaces-north.json#start_moin}` | -| muCCC | `{<lobby>/maps/erfas-south.json#start_muccc}` | -| nerdhof.garden | `{<lobby>/maps/generic-tech.json#start_nerdhof-garden}` | -| Numberwang | `{<lobby>/maps/generic-assemblies.json#start_numberwang}` | -| OIO | `{<lobby>/maps/software.json#start_oio}` | -| okoyono | `{<lobby>/maps/generic-assemblies.json#start_okoyono}` | -| OpenStreetMap | `{<lobby>/maps/software.json#start_osm}` | -| OpenTechSchool | `{<lobby>/maps/non-tech.json#start_opentechschool}` | -| paradies lounge | `{<lobby>/maps/generic-assemblies.json#start_paradies-lounge}` | -| Parents & Guardian Space | `{<lobby>/maps/c3oc.json#start_c3kidspace}` | -| Polarkuh-Spotter | `{<lobby>/maps/generic-assemblies.json#start_polarkuh-spotter}` | -| PrivacyWeek | `{<lobby>/maps/freedom.json#start_privacyweek}` | -| Rust Lang | `{<lobby>/maps/software.json#start_rust-lang}` | -| Section 77 | `{<lobby>/maps/erfas-south.json#start_section77}` | -| Sendezentrum | `{<lobby>/maps/generic-assemblies.json#start_sendezentrum}` | -| Senfcall | `{<lobby>/maps/non-tech.json#start_senfcall}` | -| Swabian Assembly | `{<lobby>/maps/erfas-spaces-north.json#start_sensor.community}` | -| space.bi | `{<lobby>/maps/erfas-south.json#start_space-bi}` | -| Telnet | `{<lobby>/maps/generic-tech.json#start_telnet-klartext-reden}` | -| Tinfoil Colloquy | `{<lobby>/maps/art-games.json#start_tinfoil-colloquy}` | -| Tox Assembly | `{<lobby>/maps/software.json#start_tox}` | -| UN-Hack-Bar | `{<lobby>/maps/erfas-spaces-north.json#start_un-hack-bar}` | -| Veloak | `{<lobby>/maps/art-games.json#start_veloak}` | -| Vizworld (== vizak) | `{<lobby>/maps/software.json#start_vizak}` | -| xil | `{<lobby>/maps/erfas-spaces-north.json#start_xil}` | -| Labstelle511 | `{<lobby>/maps/erfas-spaces-north.json#start_labstelle511}` | -| Chaostal | `{<lobby>/maps/erfas-spaces-north.json#start_chaostal}` | -| CCCWI | `{<lobby>/maps/erfas-south.json#start_cccwi}` | -| 1K dezentralᵉ remote clubhaus &friends ⊂(◉‿◉)つ | `{<lobby>/maps/generic-assemblies.json#start_1k-dezentral-remote-clubhaus-friends}` | -| TMS | `{<lobby>/maps/generic-tech.json#start_tms}` | -| menschmeier | `{<lobby>/maps/generic-assemblies.json#start_menschmeier}` | -| mag.lab | `{<lobby>/maps/erfas-south.json#start_maglab}` | -| Bytewerk | `{<lobby>/maps/erfas-south.json#start_bytewerk}` | -| Esperanto | `{<lobby>/maps/non-tech.json#start_esperanto}` | -| Open Source Gardens | `{<lobby>/maps/generic-tech.json#start_open-source-gardens}` | -| Munich Maker Lab | `{<lobby>/maps/erfas-south.json#start_mumalab}` | -| NATO | `{<lobby>/maps/erfas-south.json#start_nato}` | -| z-Labor | `{<lobby>/maps/erfas-south.json#start_z-labor}` | -| Flauschiversum | `{<lobby>/maps/hardware-making.json#start_flauschiversum}` | -| HackThisSite | `{<lobby>/maps/generic-tech.json#start_hackthissite}` | -| Cuddlebutt | `{<lobby>/maps/generic-assemblies.json#start_cuddlebutt}` | -| Werkkooperative der Technikfreundinnen eG. i. G. | `{<lobby>/maps/non-tech.json#start_werkkooperative-der-technikfreundinnen}` | -| RaumZeitLabor | `{<lobby>/maps/erfas-south.json#start_raumzeitlabor}` | -| c-base | `{<lobby>/maps/erfas-spaces-north.json#start_c-base}` | -| chaoswelle | `{<lobby>/maps/hardware-making.json#start_chaoswelle}` | -| Multigeiger-Online-Assembly | `{<lobby>/maps/hardware-making.json#start_multigeiger}` | -| ActivityPub & W3C Social CG | `{<lobby>/maps/software.json#start_ap}` | -| Minequest | `{<lobby>/maps/art-games.json#start_minequest}` | -| Verstehbahnhof | `{<lobby>/maps/hardware-making.json#start_verstehbahnhof}` | -| hackers against climate change | `{<lobby>/maps/non-tech.json#start_hackers-against-climate-change}` | -| Restrealitaet | `{<lobby>/maps/freedom.json#start_restrealitaet}` | -| CCCP | `{<lobby>/maps/erfas-spaces-north.json#start_cccp}` | -| Wikipaka-WG | `{<lobby>/maps/non-tech.json#start_wikipaka-wg}` | -| Toppoint e.V. | `{<lobby>/maps/erfas-spaces-north.json#start_toppoint}` | -| CCCAC | `{<lobby>/maps/erfas-south.json#start_cccac}` | -| Komona | `{<lobby>/maps/freedom.json#start_komona}` | -| Warsaw Hackerspace | `{<lobby>/maps/erfas-spaces-north.json#start_warsaw-hackerspace}` | -| FOSS-AG Fachschaft Informatik TU Dortmund | `{<lobby>/maps/non-tech.json#start_foss-ag}` | -| xHain hack+makespace | `{<lobby>/maps/erfas-spaces-north.json#start_xhain}` | -| Schokoladensouffle | `{<lobby>/maps/generic-assemblies.json#start_schokoladensouffle}` | -| Spielekiste | `{<lobby>/maps/art-games.json#start_spielekiste}` | -| MathGuys | `{<lobby>/maps/software.json#start_mathguys}` | -| rc3SpaceLink | `{<lobby>/maps/hardware-making.json#start_rc3spacelink}` | -| Digitalcourage | `{<lobby>/maps/freedom.json#start_digitalcourage}` | -| Red Light Hacks | `{<lobby>/maps/generic-assemblies.json#start_red-light-hacks}` | -| V7-Project | `{<lobby>/maps/generic-assemblies.json#start_v7-project}` | -| Social Dist0rtion Protocol | `{<lobby>/maps/art-games.json#start_social-dist0rtion-protocol}` | -| FIXME | `{<lobby>/maps/erfas-south.json#start_fixme}` | -| Hackteria - Global Network | `{<lobby>/maps/generic-tech.json#start_hackteria}` | -| Reality Adjustment | `{<lobby>/maps/generic-assemblies.json#start_reality-adjustment}` | -| Binary Kitchen | `{<lobby>/maps/hardware-making.json#start_binary-kitchen}` | -| ptl | `{<lobby>/maps/erfas-south.json#start_ptl}` | -| SdHQ - Sourdough Headquarter | `{<lobby>/maps/generic-tech.json#start_sdhq}` | -| feminist hackers | `{<lobby>/maps/generic-tech.json#start_feminist-hackers}` | -| freeside | `{<lobby>/maps/generic-tech.json#start_freeside}` | -| ChaosChemnitz | `{<lobby>/maps/erfas-spaces-north.json#start_chaoschemnitz}` | -| Hateotu | `{<lobby>/maps/erfas-south.json#start_hateotu}` | -| ARD-Büro | `{<lobby>/maps/non-tech.json#start_ard-buero}` | -| MCH2021 | `{<lobby>/maps/generic-tech.json#start_mch2021}` | -| C3WOC | `{<lobby>/maps/c3oc.json#start_c3woc}` | -| Anarchist Village | `{<lobby>/maps/freedom.json#start_anarchist-village}` | -| 402 Payment Required | `{<lobby>/maps/software.json#start_402-payment-required}` | -| Bitcoin-Sofa | `{<lobby>/maps/software.json#start_bitcoin-sofa}` | -| c3auti | `{<lobby>/maps/c3oc.json#start_c3auti}` | -| deep cyber | `{<lobby>/maps/generic-assemblies.json#start_deepcyber}` | -| CCC HH | `{<lobby>/maps/erfas-spaces-north.json#start_ccc-hh}` | -| chaos.amsterdam | `{<lobby>/maps/erfas-spaces-north.json#start_chaos-amsterdam}` | -| Computertruhe e. V. | `{<lobby>/maps/non-tech.json#start_computertruhe}` | -| Geraffel | `{<lobby>/maps/generic-assemblies.json#start_geraffel}` | -| HSBE | `{<lobby>/maps/erfas-spaces-north.json#start_hsbe}` | -| Hyperspace | `{<lobby>/maps/generic-assemblies.json#start_hysp}` | -| Open Source Firmware | `{<lobby>/maps/software.json#start_coreboot}` | -| Scream'n'ShoutSpacePlace | `{<lobby>/maps/generic-assemblies.json#start_scream-n-shoutspaceplace}` | -| Chaosdorf | `{<lobby>/maps/erfas-south.json#start_chaosdorf}` | -| Bytespeicher | `{<lobby>/maps/erfas-spaces-north.json#start_bytespeicher}` | -| Chaospott | `{<lobby>/maps/erfas-spaces-north.json#start_chaospott}` | -| Der 200% virtuelle Hackerspace ... in Space | `{<lobby>/maps/generic-tech.json#start_der-200-virtuelle-hackerspace-in-space}` | -| Chaostreff Bern | `{<lobby>/maps/erfas-south.json#start_chaostreff-bern}` | -| Entropolis | `{<lobby>/maps/erfas-south.json#start_entropolis}` | -| c3pb | `{<lobby>/maps/erfas-spaces-north.json#start_c3pb}` | -| Geheimorganisation | `{<lobby>/maps/generic-assemblies.json#start_geheimorganisation}` | -| real.vrchat | `{<lobby>/maps/art-games.json#start_real-vrchat}` | -| Hacksaar and Friends | `{<lobby>/maps/erfas-south.json#start_hacksaar-and-friends}` | -| Helferlein | `{<lobby>/maps/generic-tech.json#start_helferlein}` | -| tabvillage | `{<lobby>/maps/generic-assemblies.json#start_tabvillage}` | - \ No newline at end of file diff --git a/docs/exitUrls.md b/docs/exitUrls.md deleted file mode 100644 index 799c815..0000000 --- a/docs/exitUrls.md +++ /dev/null @@ -1,162 +0,0 @@ -# exitUrls - -Wahrscheinlich möchtet ihr aus euren Assembly-Karten auch an einer (oder mehreren) Stellen zurück zur Lobby. - -Achtung: Das funktioniert **nicht** auf der Testinstanz. - -Bitte nutzt hierfür die URLs/Platzhalter wie folgt: - -| Assembly | exitUrl | -| --- | --- | -| /dev/base | `{<lobby>/maps/erfas-south.json#start_dev-base}` | -| /dev/lol | `{<lobby>/maps/erfas-south.json#start_devlol}` | -| /dev/tal | `{<lobby>/maps/erfas-spaces-north.json#start_devtal}` | -| 0museum | `{<lobby>/maps/software.json#start_nullmuseum}` | -| 3D History | `{<lobby>/maps/software.json#start_3d-history}` | -| Aaaaaaaaaaaaaaaaaaaaaaa | `{<lobby>/maps/erfas-south.json#start_aaaaaaaaaaaa}` | -| Angelkitchen van de Mecklenbörgers | `{<lobby>/maps/generic-assemblies.json#start_engelkittchen}` | -| Whistleblow Village | `{<lobby>/maps/freedom.json#start_whistleblowers}` | -| Astralship | `{<lobby>/maps/erfas-spaces-north.json#start_astralship}` | -| Awareness | `{<lobby>/maps/c3oc.json#start_awareness-team}` | -| B3 – Berliner Bastel Bande | `{<lobby>/maps/generic-tech.json#start_b3}` | -| Backdoor Collective | `{<lobby>/maps/erfas-spaces-north.json#start_backdoor-collective}` | -| Bits&Bäume Dresden | `{<lobby>/maps/non-tech.json#start_bits-baeume-dresden}` | -| Bitwäscherei / DigiGes | `{<lobby>/maps/erfas-south.json#start_bitwaescherei}` | -| BUNDjugend | `{<lobby>/maps/non-tech.json#start_bundjugend}` | -| C3D2 | `{<lobby>/maps/erfas-spaces-north.json#start_c3d2}` | -| C3Signs | `{<lobby>/maps/c3oc.json#start_c3sign}` | -| CCC Basel | `{<lobby>/maps/erfas-south.json#start_ccc-basel}` | -| CCC Darmstadt | `{<lobby>/maps/erfas-south.json#start_ccc-darmstadt}` | -| CCC HH | `{<lobby>/maps/erfas-spaces-north.json#start_ccc-hh}` | -| Chaos Bronies | `{<lobby>/maps/generic-assemblies.json#start_chaos-bronies}` | -| ChaosPat:innen | `{<lobby>/maps/c3oc.json#start_chaospatinnen}` | -| Chaostreff Alzey | `{<lobby>/maps/erfas-south.json#start_chaostreff-alzey}` | -| ChaosZone | `{<lobby>/maps/erfas-spaces-north.json#start_chaoszone}` | -| Computerwerk | `{<lobby>/maps/non-tech.json#start_computerwerk}` | -| cyber4EDU | `{<lobby>/maps/non-tech.json#start_cyber4edu}` | -| Darksystem | `{<lobby>/maps/generic-assemblies.json#start_darksystem}` | -| Dezentrale | `{<lobby>/maps/erfas-spaces-north.json#start_dezentrale}` | -| Eigenbaukombinat Halle | `{<lobby>/maps/erfas-spaces-north.json#start_eigenbaukombinat}` | -| Elektroglitzer | `{<lobby>/maps/hardware-making.json#start_elektroglitzer}` | -| eventphone | `{<lobby>/maps/main.json#start_eventphone}` | -| Fairy Dust Forest | `{<lobby>/maps/erfas-spaces-north.json#start_fairy-dust-forest}` | -| FraMa | `{<lobby>/maps/erfas-south.json#start_frama}` | -| FSR VI | `{<lobby>/maps/non-tech.json#start_fsrvi}` | -| Gaffa Overflow | `{<lobby>/maps/erfas-spaces-north.json#start_gaffa-overflow}` | -| Hacklabor | `{<lobby>/maps/erfas-spaces-north.json#start_hacklabor}` | -| haecksen | `{<lobby>/maps/erfas-spaces-north.json#start_haecksen}` | -| Haquium Maburgensis | `{<lobby>/maps/erfas-south.json#start_hsmr}` | -| Hardware Hacking Area | `{<lobby>/maps/hardware-making.json#start_hardware-hacking-area}` | -| ICMP | `{<lobby>/maps/erfas-south.json#start_icmp}` | -| Kalkspace | `{<lobby>/maps/erfas-south.json#start_kalkspace}` | -| Labitat | `{<lobby>/maps/erfas-spaces-north.json#start_labitat}` | -| Labstelle511 | `{<lobby>/maps/erfas-spaces-north.json#start_labstelle511}` | -| lebkuch.is | `{<lobby>/maps/erfas-south.json#start_lebkuch-is}` | -| loop23 | `{<lobby>/maps/generic-assemblies.json#start_loop23}` | -| Mainframe | `{<lobby>/maps/erfas-spaces-north.json#start_mainframe-chaostreff-oldenburg}` | -| Metalab | `{<lobby>/maps/erfas-south.json#start_metalab}` | -| MOiN | `{<lobby>/maps/erfas-spaces-north.json#start_moin}` | -| muCCC | `{<lobby>/maps/erfas-south.json#start_muccc}` | -| nerdhof.garden | `{<lobby>/maps/generic-tech.json#start_nerdhof-garden}` | -| Numberwang | `{<lobby>/maps/generic-assemblies.json#start_numberwang}` | -| OIO | `{<lobby>/maps/software.json#start_oio}` | -| okoyono | `{<lobby>/maps/generic-assemblies.json#start_okoyono}` | -| OpenStreetMap | `{<lobby>/maps/software.json#start_osm}` | -| OpenTechSchool | `{<lobby>/maps/non-tech.json#start_opentechschool}` | -| paradies lounge | `{<lobby>/maps/generic-assemblies.json#start_paradies-lounge}` | -| Parents & Guardian Space | `{<lobby>/maps/c3oc.json#start_c3kidspace}` | -| Polarkuh-Spotter | `{<lobby>/maps/generic-assemblies.json#start_polarkuh-spotter}` | -| PrivacyWeek | `{<lobby>/maps/freedom.json#start_privacyweek}` | -| Rust Lang | `{<lobby>/maps/software.json#start_rust-lang}` | -| Section 77 | `{<lobby>/maps/erfas-south.json#start_section77}` | -| Sendezentrum | `{<lobby>/maps/generic-assemblies.json#start_sendezentrum}` | -| Senfcall | `{<lobby>/maps/non-tech.json#start_senfcall}` | -| Swabian Assembly | `{<lobby>/maps/erfas-spaces-north.json#start_sensor.community}` | -| space.bi | `{<lobby>/maps/erfas-south.json#start_space-bi}` | -| Telnet | `{<lobby>/maps/generic-tech.json#start_telnet-klartext-reden}` | -| Tinfoil Colloquy | `{<lobby>/maps/art-games.json#start_tinfoil-colloquy}` | -| Tox Assembly | `{<lobby>/maps/software.json#start_tox}` | -| UN-Hack-Bar | `{<lobby>/maps/erfas-spaces-north.json#start_un-hack-bar}` | -| Veloak | `{<lobby>/maps/art-games.json#start_veloak}` | -| Vizworld (== vizak) | `{<lobby>/maps/software.json#start_vizak}` | -| xil | `{<lobby>/maps/erfas-spaces-north.json#start_xil}` | -| Labstelle511 | `{<lobby>/maps/erfas-spaces-north.json#start_labstelle511}` | -| Chaostal | `{<lobby>/maps/erfas-spaces-north.json#start_chaostal}` | -| CCCWI | `{<lobby>/maps/erfas-south.json#start_cccwi}` | -| 1K dezentralᵉ remote clubhaus &friends ⊂(◉‿◉)つ | `{<lobby>/maps/generic-assemblies.json#start_1k-dezentral-remote-clubhaus-friends}` | -| TMS | `{<lobby>/maps/generic-tech.json#start_tms}` | -| menschmeier | `{<lobby>/maps/generic-assemblies.json#start_menschmeier}` | -| mag.lab | `{<lobby>/maps/erfas-south.json#start_maglab}` | -| Bytewerk | `{<lobby>/maps/erfas-south.json#start_bytewerk}` | -| Esperanto | `{<lobby>/maps/non-tech.json#start_esperanto}` | -| Open Source Gardens | `{<lobby>/maps/generic-tech.json#start_open-source-gardens}` | -| Munich Maker Lab | `{<lobby>/maps/erfas-south.json#start_mumalab}` | -| NATO | `{<lobby>/maps/erfas-south.json#start_nato}` | -| z-Labor | `{<lobby>/maps/erfas-south.json#start_z-labor}` | -| Flauschiversum | `{<lobby>/maps/hardware-making.json#start_flauschiversum}` | -| HackThisSite | `{<lobby>/maps/generic-tech.json#start_hackthissite}` | -| Cuddlebutt | `{<lobby>/maps/generic-assemblies.json#start_cuddlebutt}` | -| Werkkooperative der Technikfreundinnen eG. i. G. | `{<lobby>/maps/non-tech.json#start_werkkooperative-der-technikfreundinnen}` | -| RaumZeitLabor | `{<lobby>/maps/erfas-south.json#start_raumzeitlabor}` | -| c-base | `{<lobby>/maps/erfas-spaces-north.json#start_c-base}` | -| chaoswelle | `{<lobby>/maps/hardware-making.json#start_chaoswelle}` | -| Multigeiger-Online-Assembly | `{<lobby>/maps/hardware-making.json#start_multigeiger}` | -| ActivityPub & W3C Social CG | `{<lobby>/maps/software.json#start_ap}` | -| Minequest | `{<lobby>/maps/art-games.json#start_minequest}` | -| Verstehbahnhof | `{<lobby>/maps/hardware-making.json#start_verstehbahnhof}` | -| hackers against climate change | `{<lobby>/maps/non-tech.json#start_hackers-against-climate-change}` | -| Restrealitaet | `{<lobby>/maps/freedom.json#start_restrealitaet}` | -| CCCP | `{<lobby>/maps/erfas-spaces-north.json#start_cccp}` | -| Wikipaka-WG | `{<lobby>/maps/non-tech.json#start_wikipaka-wg}` | -| Toppoint e.V. | `{<lobby>/maps/erfas-spaces-north.json#start_toppoint}` | -| CCCAC | `{<lobby>/maps/erfas-south.json#start_cccac}` | -| Komona | `{<lobby>/maps/freedom.json#start_komona}` | -| Warsaw Hackerspace | `{<lobby>/maps/erfas-spaces-north.json#start_warsaw-hackerspace}` | -| FOSS-AG Fachschaft Informatik TU Dortmund | `{<lobby>/maps/non-tech.json#start_foss-ag}` | -| xHain hack+makespace | `{<lobby>/maps/erfas-spaces-north.json#start_xhain}` | -| Schokoladensouffle | `{<lobby>/maps/generic-assemblies.json#start_schokoladensouffle}` | -| Spielekiste | `{<lobby>/maps/art-games.json#start_spielekiste}` | -| MathGuys | `{<lobby>/maps/software.json#start_mathguys}` | -| rc3SpaceLink | `{<lobby>/maps/hardware-making.json#start_rc3spacelink}` | -| Digitalcourage | `{<lobby>/maps/freedom.json#start_digitalcourage}` | -| Red Light Hacks | `{<lobby>/maps/generic-assemblies.json#start_red-light-hacks}` | -| V7-Project | `{<lobby>/maps/generic-assemblies.json#start_v7-project}` | -| Social Dist0rtion Protocol | `{<lobby>/maps/art-games.json#start_social-dist0rtion-protocol}` | -| FIXME | `{<lobby>/maps/erfas-south.json#start_fixme}` | -| Hackteria - Global Network | `{<lobby>/maps/generic-tech.json#start_hackteria}` | -| Reality Adjustment | `{<lobby>/maps/generic-assemblies.json#start_reality-adjustment}` | -| Binary Kitchen | `{<lobby>/maps/hardware-making.json#start_binary-kitchen}` | -| ptl | `{<lobby>/maps/erfas-south.json#start_ptl}` | -| SdHQ - Sourdough Headquarter | `{<lobby>/maps/generic-tech.json#start_sdhq}` | -| feminist hackers | `{<lobby>/maps/generic-tech.json#start_feminist-hackers}` | -| freeside | `{<lobby>/maps/generic-tech.json#start_freeside}` | -| ChaosChemnitz | `{<lobby>/maps/erfas-spaces-north.json#start_chaoschemnitz}` | -| Hateotu | `{<lobby>/maps/erfas-south.json#start_hateotu}` | -| ARD-Büro | `{<lobby>/maps/non-tech.json#start_ard-buero}` | -| MCH2021 | `{<lobby>/maps/generic-tech.json#start_mch2021}` | -| C3WOC | `{<lobby>/maps/c3oc.json#start_c3woc}` | -| Anarchist Village | `{<lobby>/maps/freedom.json#start_anarchist-village}` | -| 402 Payment Required | `{<lobby>/maps/software.json#start_402-payment-required}` | -| Bitcoin-Sofa | `{<lobby>/maps/software.json#start_bitcoin-sofa}` | -| c3auti | `{<lobby>/maps/c3oc.json#start_c3auti}` | -| deep cyber | `{<lobby>/maps/generic-assemblies.json#start_deepcyber}` | -| CCC HH | `{<lobby>/maps/erfas-spaces-north.json#start_ccc-hh}` | -| chaos.amsterdam | `{<lobby>/maps/erfas-spaces-north.json#start_chaos-amsterdam}` | -| Computertruhe e. V. | `{<lobby>/maps/non-tech.json#start_computertruhe}` | -| Geraffel | `{<lobby>/maps/generic-assemblies.json#start_geraffel}` | -| HSBE | `{<lobby>/maps/erfas-spaces-north.json#start_hsbe}` | -| Hyperspace | `{<lobby>/maps/generic-assemblies.json#start_hysp}` | -| Open Source Firmware | `{<lobby>/maps/software.json#start_coreboot}` | -| Scream'n'ShoutSpacePlace | `{<lobby>/maps/generic-assemblies.json#start_scream-n-shoutspaceplace}` | -| Chaosdorf | `{<lobby>/maps/erfas-south.json#start_chaosdorf}` | -| Bytespeicher | `{<lobby>/maps/erfas-spaces-north.json#start_bytespeicher}` | -| Chaospott | `{<lobby>/maps/erfas-spaces-north.json#start_chaospott}` | -| Der 200% virtuelle Hackerspace ... in Space | `{<lobby>/maps/generic-tech.json#start_der-200-virtuelle-hackerspace-in-space}` | -| Chaostreff Bern | `{<lobby>/maps/erfas-south.json#start_chaostreff-bern}` | -| Entropolis | `{<lobby>/maps/erfas-south.json#start_entropolis}` | -| c3pb | `{<lobby>/maps/erfas-spaces-north.json#start_c3pb}` | -| Geheimorganisation | `{<lobby>/maps/generic-assemblies.json#start_geheimorganisation}` | -| real.vrchat | `{<lobby>/maps/art-games.json#start_real-vrchat}` | -| Hacksaar and Friends | `{<lobby>/maps/erfas-south.json#start_hacksaar-and-friends}` | -| Helferlein | `{<lobby>/maps/generic-tech.json#start_helferlein}` | -| tabvillage | `{<lobby>/maps/generic-assemblies.json#start_tabvillage}` | diff --git a/docs/img/worldExit.png b/docs/img/worldExit.png new file mode 100644 index 0000000000000000000000000000000000000000..b1d15b36f845efcdce97c7c509299de0ea107778 GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS$May?xfLn`LHjXIrs*nns0 zE4fY1f%lD^+c=84#ZM^8u5{okVSJue(s5?O?By?xdgzNCFqpKKKXql7T!2a07e#q_ z&0D$$COgmI*>yK>b8=Yw+dm3yf9n2A+{|H8WZ6@s%f|5G-^XWrkChf*s@rarv-kS) zip2Pdg0D{tUYnkL!8Stl0PCACQ<N+YtZR7vtmOM*>E`<6HTuVQ|6V96pu)POWa-B% ziEmU?8RH*+TqvNzn!&R4@C<<}{^XM)98L`3M>4Eh4k&TW=(5=B9_n<F_ix<R=j&FT z*W0$q%t`SV!<we6iQI3mFVBi%PVi@{R(`@g^-iYZozSm`XXL$zX2{sJ@P72<1S5@& zVHKZ#=e>{)7HScwVeyerDc&|$YI)b1<MZ59I1~?kVZ8KG;#~jht-F#u1$`KgFsL%# z>C?`c5yG^aY1hL0+B5ne{n>GRjZl+Dg5NK1i~fbdOsknhD(8!olx-ATkYLgIqQ5$; zdxJTn#ix~?^PQG5U6V4%Taaqa$n-8MZM~Gk%{iz4-Z<B9X2WuPW<zY~{9NgIAq~w> zLz#W5--#^JcMP5ICHkT2gIMOE^?$59cJIw%m~Z(pAm~8pBG1#aSN$ne)X{ukWq7q+ zE?R_jhtDb1UkrULPlRe2&L<nNtLl8xnPB9l{KU$T{U`I3<P9>-=Z+`nsZ0^+$aTn( z5Nvol?^k?7PNECLwB3K^c*}mUVl7(1{4`Nx8{@`AR|h^z|3p`YX?1!jQ`}CZ7x8Ir z$ZPpf3Z_D?|CfB)+VT2GOh~{lhS>-G@3SW?pKrvv<g(>n;SW_(XB=6Nu}JI@&60S_ h#r2baGAqLe_U7(H)$NrPWef}q44$rjF6*2UngDOoCFTGC literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index ed66571..f01d04b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,28 +1,23 @@ # HowTo rC3 -Diese Seiten sollen einen Überblick über die rC3, die angebotenen Dinge und die Möglichkeiten, zur rC3 beizutragen, geben. - -Für den aktuellen Status der Systeme könnt ihr auf [die Statusseite](https://status.c3events.de) schauen. +Diese Seiten sollen einen Überblick geben über die rC3 2021, die angebotenen +Dinge und die Möglichkeiten, zur Veranstaltungen beizutragen. Aktuell findet Ihr hier: -* [Styleguide](styleguide.md) * [Maps Tutorial](maps.md) -* [Maschinenraum Doku](maschinenraum.md) * [HowTo Play](play.md) +This pages should give you an overview over rC3 2021, connected services, as well +as how to contribute to rC3. -This pages should give you an overview over rC3 and the services and possibilities to contribute to rC3. - -For the current system status, look at [our status page](https://status.c3events.de). +For now, you can find the following here: -You will find the following things here: - -* [Styleguide](styleguide.md) * [Maps Tutorial](maps.en.md) -* [Maschinenraum Docs](maschinenraum.en.md) * [HowTo Play](play.en.md) - -The event would not be possible without some companies providing network hardware, cloud resources and connectivity services. Find them [here](sponsoring.md). +<!-- +The event would not be possible without some companies providing network hardware, +cloud resources and connectivity services. Find them [here](sponsoring.md). +--> diff --git a/docs/map-best-practices.en.md b/docs/map-best-practices.en.md new file mode 100644 index 0000000..12ecde2 --- /dev/null +++ b/docs/map-best-practices.en.md @@ -0,0 +1,45 @@ +# rc3.world Best Practices + +## Best Practices + +After last year's rc3 and the following divocs the following crystallised as best +practices for map building (apart from the technical requirements of workadventure +itself). Please keep them in mind while designing your assemblies. + +## Logic +- Place collisions only in places where they make sense — so please avoid things + like invisible walls +- Make exists (especially those back to your main map) obviously visible; don't + build one-way portals to maps with no way back +- "Riddle"-maps should have an easily visible exit directly next to the start; + ideally it should be impossible to accidentally "fall" into the map +- please avoid endless exit-loops, or clearly mark them as portals — exits should + not lead lead to entrypoints of the same map +- place active elements far enough apart that it's easy to walk between them, + especially if your map connects several other maps + +## Accessability +- avoid animations or design them to be unobtrusive +- take care to have sufficient contrast (especially between e.g. walls/floor) +- mark areas playing sounds/music or opening jitsis (e.g. with a sign); don't + place them directly on the entrypoint where people might run into them by + mistake +- place jitsis so that people can walk around them +- include silent areas (a layer with property `silent` set to `true`) +- mark thin passages as silent areas, or widen them so people can walk past each + other without initiating a chat bubble +- please think of direction when adding portals between maps — walking straight + through an exit and then continuing on should not immideately lead to another + exit. If in doubt, just include a few tiles distance between the two. +- if applicable, include content warnings +- warnings in front of long labyrinths or epileptic animations should be signs + next to the exit that leads to the corresponding map, or next to an early exit + directly at the map's start + +## Reachability without the world +Not everyone can or wants to interact with the event through the world. So no +matter how beautiful your carefully designed worlds may be — please think about +how one might reach your assembly without walking through the world. Add links +to your jitsi-rooms to your assembly's page in the hub (especially if workshops +take place in them!), don't publish your schedule exlusively as a sign on your +map, etc. diff --git a/docs/map-best-practices.md b/docs/map-best-practices.md new file mode 100644 index 0000000..74c0b59 --- /dev/null +++ b/docs/map-best-practices.md @@ -0,0 +1,50 @@ +# rc3.world Best Practices + + +## Best Practices + +Folgende Punkte haben sich nach der letztjährigen rc3 und darauf folgenden divocs +(abgesehe von den technischen Anforderungenm, die Workadventure selbst an die +Karten stellt) als Best Practices im Kartendesign herausgebildet. Bitte behaltet +sie beim gestalten eurer Assemblies im Hinterkopf. + +## Logik: +- Kollisionen nur dort einbauen, wo sie Sinn ergeben — vermeidet also bitte + Dinge wie unsichtbare Wände +- Ausgänge (besonders zurück zu eurer Haupt-Map) deutlich sichtbar gestalten, + keine Sackgassen-Maps ohne Ausgang bauen +- "Rätsel"-Maps sollten einen leicht und schnell auffindbaren Ausgang direkt + neben dem Start haben, der direkt zurück führt, idealerweise sollte man nicht + aus Versehen in eine Rätsel-Map hineinfallen können. +- Bitte vermeidet Endlose Exit-Schleifen oder kenntzeichnet sie klar als Portal + (Ausgänge sollten nicht auf Eingänge auf der gleichen Map verweisen) +- Aktive Elemente nicht so dicht nebeneinander legen, dass das Durchqueren der + Map einem Hindernisrennen gleicht (insbesondere, wenn die Map eine + Verbindungsfunktion hat) + +## Accessibility: +- Animationen vermeiden oder unaufdringlich gestalten +- achtet auf ausreichend Kontrast (besonders zwischen e.g. Wänden/Boden) +- Musikeinspielung und Jitsis in der Map kennzeichnen (etwa durch ein Schild), + und nicht direkt an den Eingang platzieren, sodass man nicht versehentlich + darin landet +- Jitsis so platzieren, dass man sie umgehen kann +- Ruhezonen vorsehen (ein Layer mit `silent` auf `true`) +- schmale Durchgänge als Ruhezone einstellen oder breit genug zum Ausweichen +- bei Übergängen zwischen Karten möglichst die Laufrichtung berücksichtigen — + läuft man geradeaus durch einen Übergang und dann weiter, sollte man nicht + direkt wieder in einem Ausgang landen. Im Zweifel baut einfach ein paar Kacheln + Abstand dazwischen ein +- Gegebenenfalls Content Warnings einblenden +- Warnung vor z.B. langatmigen Labyrinthen oder epileptischen Animationen + als Schild nebem dem Exit zur entsprechenden Karte, oder early exit direkt + an deren Anfang + +## Zugänglichkeit auch ohne die world +Nicht jede\*r kann oder will über die world mit der Veranstaltung interagieren. +So schön eure liebevoll gepixelten Welten also auch sein mögen — denkt darüber +nach, wie euer Assembly auch ohne diese erreichbar sein kann, und tragt z.B. +eure jitsi-Räume (insbesondere, wenn dort Sessions/Workshops stattfinden!) im +hub in euer Assembly ein, veröffentlicht eueren Schedule nicht nur als Schild +in der Karte, etc. + diff --git a/docs/maps.en.md b/docs/maps.en.md index 43f486e..4e27d63 100644 --- a/docs/maps.en.md +++ b/docs/maps.en.md @@ -1,131 +1,193 @@ 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. +[deutschsprachige Version](maps.md) -## Metainformationen +As last year's, this year's rC3 will feature a kind of 2D adventure, the rc3.world. +This tutorial is intended to explain how assemblies can contribute their own +maps and content. For any remaining questions, don't hesitate to contact us via +[mail](mailto:world@rc3.world); we'll do our best to extend this page. + + +## Meta Information ### Disclaimer -This tutorial is "work in progess", hence its worth checking it from time to time since it will be changed and extended continuously. - -### Updates - -* 2021-01-31: Test instance shut down. -* 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! -* 2020-12-20: Starter kit added. -* 2020-12-22: World-Exit added. -* 2020-12-22: Cross-Assembly Links added. -* 2020-12-25: Added [exitUrl List](exitUrls.en.md) -* 2020-12-28: Award Badge property added. +This tutorial is "work in progess" and may be occasionally updated, checking it +from time to time is recommended. ### 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) -* Tilesets with dimensions above 4096px may cause problems in some browsers. +The following bugs are already known, and we're working on resolving them: + +* Exits on the far right end of a map don't work. +* Loading a tileset twice (with the same name) results in interesting + rendering bugs (e.g. missing tiles in WorkAdventure) + + ## Quick overview ### Limitations -Instances wont scale indefinitely, 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. +Instances wont scale indefinitely, please keep that in mind while building maps. +Even if the infrastructure itself could handle a high number of clients on a +single map, workadventure will still attempt to render all avatars at the same +time, to the point that browsers (and network connections) won't be able to keep +up. From experience, the limit appears to be around 200 players. Please keep that +in mind when designing maps. + +Even so, map size is relatively independent from simple user count, and can be +set flexibly. Maps at around 50x50 tiles seem to be pretty fine; maps at around +500x500 tiles will take a non-trivial time to load. In general we recommend against +unreasonably large maps, so visitors won't get "lost" in them and still have a +chance to stumble across each other. + +Please don't use any tilesets whose textures are larger than 4096x4096 pixels; +rendering errors may occur otherwise, depending on browser and +[WebGL support](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#understand_system_limits) + +As last year, links leaving the event will be prefixed with a dereferrer ("you +are now leaving the event area"). + +### Scripts +You can use all features included in workadventure's +"[scripting api extra](https://workadventu.re/map-building-extra/about.md)"; +these will all be supported by rc3.world. However, please note that due to +the large amount of review this would necessitate, including your own +self-written javascript will only be possible upon request. -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. +### Starter-Kit +We will again offer a map building starter kit containing a simple map repository +which you can clone, use as inspiration, or fork and use as the basis for your +own map. However, it is — as well as corresponding tilesets — still a work in +progress and will be published here once it is done. -External links will be sent through a dereferrer. -### Starter-Kit -We provide a [starter kit](https://git.cccv.de/rc3/world-map-starterkit) in case you don't know how/where to start with your map. -Just clone the repository and get your assembly started. +### Best Practices +To make visiting the world as comfortable as possible, a [set of best practices +for designing maps](map-best-practices.en.md) has emerged after last year's rC3 +and subsequent divocs. Please read them carefully and keep them in mind when +building your new (or updating your old) maps. -### 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. +The back office will also automatically alert you in case of some especially +obvious violations (e.g. exits to nonexistant maps), or suggest improvements. -### Layer and attributes -In order for a tile to have more properties than its look, you have to assign the appropriate attributes. -This is done using layers: A layer carries attributes, and stores for which fields they should apply. +### How does it end up in the world? +To contribute maps to the world, you have to +[register an assembly](https://maschinenraum.rc3.world/). -### 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. +Please store your maps in a git repo of your choice and and enter a (publicly +clonable) URL to it our backend. Our infrastructure will then periodically pull +your map in, run a rudimentary linter on it to check for a few requirements and +general consistency, and then deploy it to rc3.world. -Please store your maps in a git repo of your choice and and notify us in our backend with the URL to clone the repo. Our world infrastructure will then spawn an instance for you and embed the map. +Please note that your map may also be rejected in case it contains errors (e.g. +exits pointing to maps that do not exist) or is simply in the wrong format. If +that is the case, the back office will notify you and show you an appropriate +error along with a short explanation — so in case your map doesn't change even +after waiting and multiple reloads, please take a look there and check. -We will pull the maps from your git repo on a regular basis. Players need to reload their page to see the newest version (no live-reload). +### Links between maps +Within your repository you can use normal, relative links — e.g. to get from +one map in `main.json` to another at `garden/secret-base.json`, just enter the +corresponding path (same for the other direction: `../main.json` will take you +back). -### Entrypoint / Lobby / Exit -We create central Entrymaps to join the world and lead to the different assembly maps. -[Here](exitUrls.en.md) is a list with all known exitUrls so far. -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 if your not on our list. +The same also holds for links to tilesets etc. + +Please do *not* use absolute paths (i.e. paths starting with a `/`), since — on +the rc3.world – these paths would be outside of your repository. + +### Links to places outside your own assembly +**Attention:** Does not work as it did last year! + +To get to other assemblies or other places in general (e.g. the lobby or lounge), +use the following link schema: -#### World Exit -We recommend the following tile for your exit(s) back to the lobby map for a more consistent user experience. +`world://<assembly>/<map>.json` - +Where `assembly` is the "technical name" (i.e. slug) of the target assembly, as +set in the Maschinenraum for your own assembly. The remaining path is then relative +to the map repository of the linked assembly. -You individual exitUrls are listed [here](exitUrls.en.md) +To get back to the lounge, just use `lounge` as the slug. -#### Crossy-Assembly links -There will be placeholders which get automatically replaced by the right url. Example for a placeholder: `{<SLUG>/map.json#YourStartLayer}`. **< and > are important and need to stay in the placeholder!** +Since the validity of such links does not just depend on your own repository but +also the entire event (and may even change over time), we cannot check such links +statically when pulling in your repository. So please take extra care that these +links don't lead into nothingness. + + +### Entrypoint / Lobby / Exit +We will create central entry maps, through which one can reach everyone's assembly +maps. + +Obviously, your own map should contain at least one exit back to the lobby. As +a recognisable and consistent exit, we recommend you use the following tile to +mark it: + + -You can find _your slug_ in the Maschinenraum under Organisational Data -> Basic Data -> "Slug". -If you want to link to the foobar assembly for example and the foobar assemblys slug is `foobar`, the value for the exit layer would be `{<foobar>/main.json}`. -Attention: This does **not** work for the test instance. # Map design + ## Tiles +Fundamentally, maps consist of so-called tiles or sprites (there are differences +between these two terms, but they will in the following be used as synonyms). +Please only use tiles that are 32x32 pixels large. + +Tiles can also be transparent, and are saved in the PNG format. + ### Finding tiles: -* There are many tiles available on the internet, often combined into tilesets (multiple tiles for one topic) +* Countless tiles are available on the internet, often combined into tilesets + (multiple tiles for one topic) * Some examples of websites offering awesome tiles: * [itch.io](https://itch.io/) * [opengameart.org](https://opengameart.org/) * [deviantart.com](https://www.deviantart.com/) -* Keep in mind the size of tiles! +* Be sure to check that the tiles have the correct size! * Check the license of the tiles! - * We will not activly check the licenses of your tiles, however we will act on the "takedown on notice" principle! + * We will not actively check the licenses of your tiles, but react to + violations on a "takedown on notice" principle! * [Shared Tiles Repo](https://tiles.rc3.world/) - ### How to design / "pixel" tiles -You can design your own tiles as well as change exisiting tiles, this is usually referred to as "pixeling". We recommend the use of the editor [krita](https://krita.org/), but there is other editors for pixeling as well. - -* Please double check that your tiles are 32x32 pixels in size. You can enable a grid under view -> show grid and under settings -> dockers -> grid you can select the grid size. -* Use transparency if you have to model transitions between different materials. This is more flexible and saves you time by not modeling every transition. -* Pixel-Art Workshop by blinry: [media.ccc.de/v/34C3-jugend-hackt-1016-pixel_art_workshop](https://media.ccc.de/v/34C3-jugend-hackt-1016-pixel_art_workshop) - -### Walls and collision -To mark tiles as impervious, you have to open the them in the tile editor and set the custom property `collides` (bool true) for the specific tile. (Do not confuse this with a layer property!) -Tiled provides custom collision shapes for tiles, however these are ignored by our software. +You can also design your own tiles (or edit exisiting ones); this is frequently +referred to as "pixeling". We recommend using the editor [krita](https://krita.org/), +though of course the principle is the same for other programs. - +* Please double check that your tiles are 32x32 pixels in size. You can enable a + grid under view -> show grid, and under settings -> dockers -> grid you can + select the grid size. +* Use transparency for modelling transitions between different materials. This + is more flexible and saves you time by not modeling every possible transition + between all materials. +* You can also watch [blinry's pixel-art on media.ccc.de](https://media.ccc.de/v/34C3-jugend-hackt-1016-pixel_art_workshop) - -### Tile integration -Linking to external tilesets in TSX format is not possible, tiles need to be embedded in tiled (see below). (PNG files need to be uploaded to the server as well.) ## Maps -Map creation is done with the editor [Tiled](https://www.mapeditor.org). Similar to designs in graphics editors a map may consist of multiple layers, which will be overlayed for rendering. Layers can be designed with transparency. +Map are created with the editor [Tiled](https://www.mapeditor.org). As in many +graphics editors, a map consists of multiple layers, which are stacked on top of +each other when rendering. Layers can also be (partially or wholly) transparent. ### Creating a new map in tiled -When creating a new map please ensure the following conditions are met: - -* The map must be orthogonal -* tile size should be 32x32 -* When creating a map it might be useful to use a infite size map, however when saving you need to select a fixed size. - -### Map design -A map may consist of any number of tile layers. Your map needs a start layer which defines where your players spawn. This layer needs to be called `start`. Additionally you need a layer called `floorLayer` of the type object layer on which the players move. +When creating a new map, please ensure the following: + +* The map must be orthogonal, and its tile size 32x32 pixels +* When editing a map, it may be useful to set its size to be infinite instead + of deciding a fixed size beforehand. However, you will have to set its size + back to some (finite) fixed size when saving it before you can load it into + workadventure! + +### Map design - Layer +A map can consist of an arbitrary number of tile layers, which are stacked on top +of each other. Each map will need at least one tile layer named `start`. Visitors +to your map will then spawn on a random tile of this layer by default (you can +move this layer to the bottom of the stack, and let its tiles be covered by other +layers). You will also need another layer named `floorLayer` of the type +`objectgroup`, which defines on which layer avatars will move (i.e. which layers +will be rendered above or below them).  @@ -133,57 +195,117 @@ For a better mapping experience, highlight the current layer:  -## Special layers -There are a few special layers which are used for additional features. Except for the start layer these layers are created through the custom properties of individual layers. +### Walls and collision +To mark tiles as impervious, open them in the tile editor and set the custom +property `collides` to the boolean value `true` for the specific tile (not the +containing layer!). Although Tiled allows defining custom collision shapes for +tiles, these are unsupported and simply ignored by our software. + -### Start layer -Your map needs a start layer named `start`. All locations in this layer that contain a tile (no matter which) will be spawn points for new players. A random tile of this layer will be selected upon entry if there are multiple tiles. It's best if you push this layer to the bottom of your stack, this way the layers above will cover the start tiles. + -It's possible to create additional start layers to define more entry points, this for example allows users to jump across the map. These layers work in a similar way as the start layer: Just place tiles anywhere you'd like players to spawn. These layers have no naming requirement, but need the custom property `startLayer` (bool true). The name of this layer will also function as the jump address that is needed for spawning there. E.g. if your map is called `foo.json` and the start layer that you want to jump to is called `bar`, then the jump address/marker is called `foo.json#bar`. + +### Tile integration +Tiles must be integrated into the map in Tiled; references to external tilesets +in the TSX format is not possible. (This does not mean that the image data itself +will be embedded. PNG must be included in the repository as seperate files as +well.) + +### Additional functionality per layer + +#### Start layer +Apart from the default `start` layer it's possible to create additional +entrypoints to your map. These layers work in a very similar way: simply place +tiles anywhere you'd like avatars to spawn. To mark them as an entry point, set +the custom property `startLayer` (type boolean) to `true`. The name of this layer +will double as the "jump address" for this entry – if your map is called +`foo.json` and you have a layer `bar` that you want to jump to, then the +corresponding address would be `foo.json#bar`.  -### Exit Layer -Similar to the start layer you can define exits. You create a layer, put a tile on the areas you want the exits to be and give the layer the custom property `exitUrl` (string). The value of the property should be the map and start layer of the map you want to join to, for example `foo.json#bar` to get to the map `foo.json` and the layer `bar`. +#### Exits +Exits to other maps work similar to entries: create a new layer, put any tile +where you want the exits to be, then give the layer the custom property `exitUrl` +(type string). The value of the property should be the map and start layer of +the map you want to jump to, for example `foo.json#bar` to get to the layer `bar` +of the map `foo.json` (if you leave out the `#bar`, the exit will instead lead to +the `start` layer of `foo.json`)  +For exits to the lobby, the lounge, or other assemblies, take a look at the quick +reference above. -## Advanced content - -### Embedding websites -You can embed websites that will open when stepping on certain tiles. To do this, give the layer the property `openWebsite` (string). Use https. +#### Embedding websites +You can embed websites, which will open when upon stepping on predefined tiles. +Same as for start and exit layers, add a layer, place tiles at the desired +positions, and then set the property `openWebsite` (type string). Use https!  +Also not that websites which are outside of rC3 will be automatically prefixed +with a dereferrer, which will alert visitors that they are now "leaving the +event area". + ### 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. +You can embed Jitsi rooms in the same way. Simply set the custom property +`jitsiRoom` (type string) and assign it the name of your jitsi room as its 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. +To avoid unintentional collisions between different assemblies (e.g. so that +everyone can define their own "hackcenter") names of jitsi rooms are local to +your own assembly. If you want to share a room with a different assembly, just +prefix its name with `shared-`. + +In general we recommend also setting the property `jitsiTrigger` to `onaction`, +which will cause the room to open only after explicit user interaction (a press +on the space bar), which makes visiting the world much easier on older laptops +and prevents people accidentally stumbling into your session. You can also set +a custom message to be displayed where the jitsi can be opened by setting the +`jitsiTriggerMessage` property (which will overwrite the default "press SPACE +to open jitsi meet"). + +### Embedding Big Blue Button +This works essentially the same as with jitsi: set `bbbRoom` to your room's name, +and `bbbTrigger` along with `bbbTriggerMessage` to prevent the room from popping +open unexpectedly. ### 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. +If you want to prevent audio/video communication between participants in some +areas, define a corresponding layer and set the custom property `silent` (type +boolean) to `true`. All tiles of this layer will then no longer allow +conversations. This is especially useful for narrow passages or hallways where +it's not always possible to easily walk past each other.  -### Walls / non-accessible areas -For a change, this is not a layer property, but a tile property. For a description, see the Tiles section above. - ### Award badges -You can award badges when stepping on certain tiles. To do this, give the layer the property "getBadge" (string). The token is a map token, which can be generated in the Backoffice for each badge. +You can award badges when stepping on certain tiles. Add a layer of type +`objectgroup` (important!), and then don't place tiles but points and/or +rectangles on that layer. Then set the custom property `getBadge` (type string) +to the token of your badge (which you can find in the Maschinenraum, where you +can also create new badges). Note that you will need a **Map** redeem token. + +Badges will then be awarded to visitors walking across the corresponding areas +of the map.  + ### Animated Tiles -Tiles can be combined to animations (loops), for example to make floating water or bliking lights look better. Therefore all frames need to be a single 32x32 tile. -Create animations by editing the tileset, click on the tile to animate (or pick a free tile to not overwrite existing ones) and click on the animation editor: +Tiles can be combined to animations (loops), e.g. to make floating water or +bliking lights look better. All frames need to be their own single 32x32 tile. +Create animations in the tileset editor by clicking on the tile to animate (or +pick an arbitrary free tile, so as to not overwrite existing ones) and then +open the animation editor:  -You can now add all tiles that should be part of the animation via drag and drop to the "playlist" and adjust the frame duration: +You can now add all tiles that should be part of the animation via drag and drop +to the "playlist" and adjust the frame duration (given in milliseconds):  @@ -191,45 +313,67 @@ 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. +Tip: The engine does tile-updates only every 100ms, do animations with a shorter +frame duration will most likely not look that good or even don't work at all. -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...) +Larger animations covering multiple tiles need to animated in tiled tile by tile, +and work relatively fine. (Occationally some tiles don't run in sync with the +rest, Cthulhu 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. +Layers with the property `playAudio` (type string) will play a sound when stepping +on their tiles. Only mp3 files included via a path relativ 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 +the audio to also loop, additionally set `audioLoop` (type boolean) to `true`.  -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". +Please only use **GEMA-free** sound snippets! If you embed streams you are also +be required to keep a tracklist to be able to prove to GEMA that you only +played "gema-free music". +Please document the copyright and license of your music in the map's +`mapCopyright` property, since there is not (yet) any dedicated property per +audio-playing map layer. # Packaging, Deployment and Infrastructure ## 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. +Maps need to be saved as json files, tilesets should be embedded prior to this. +The relevant files will be your map in json format along with the tilesets used, +which are saved as PNGs. + +Infinite maps need to be converted to finite dimension maps before exporting. +To do so just untick the "infinite" tick box, then save.  ## 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. +Please pay attention to the licenses and copyright of your tilesets. You must (!) +set those via the `copyright` property directly on the tilesets within your map +json! (just add a custom property to the tileset in Tiled). + +The same applies to your entire map: document its licence / copyright by setting +the property `mapCopyright` (type string) on the map (not on a layer / tileset!). -## Folder structure +## Directory structure Please ensure that the right folder structure is used when saving your maps: -* The start map needs to be called main.json and be in the main dir -* Other maps may be in the main dir or in sub folders -* Ensure that links between maps use the correct relative URL -* Ensure that the paths to the tilesets are correct (you may need to adjust them in json by hand) +* The entry map needs to be called `main.json`, and be in the root directory +* Other maps can be saved in the main directory or in subdirectories +* Ensure that links between maps use the correct relative URL (cf. the + corresponding section above) +* Ensure that the paths to the tilesets are correct (you may need to adjust them + in json by hand) + +Your map repository should then look something like this: -A example map might look like this: ``` . ├── bla -│ ├── COPYRIGHT │ └── keks.json ├── blubb.json -├── COPYRIGHT ├── foo │ ├── bar.json │ └── tileset2.png @@ -240,16 +384,16 @@ A example map might look like this: ## 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://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. +We will offer a test instance whose behaviour should be as close as possible to +the "real" infrastructure used during the event so you can test your map +beforehand. It is currently still a work in progress and should go live soon. -## Hosting your own Instance -Please do not try to host your own instance! We will not allow jumps to external instances! -## Big Blue Button -We like BBB, but the rC3.world already contains a stable inclusion of jitsi, which we host on dedicated hardware. We currently do not have the resources to make BBB embedding possible. -Please don't expect BBB for the rC3.world and use jitsi instead. +## Self-Hosting +Please do not try to host your own instance! We will not allow jumps to external +instances! +<!-- ## Infrastructure The infrastructure is kindly sponsored by <a href="https://www.hetzner.com/de/cloud"><img src="img/hetzner-logo.svg" alt="hetzner online" width="100px" /></a>. +--> diff --git a/docs/maps.md b/docs/maps.md index abd0aee..41f88bd 100644 --- a/docs/maps.md +++ b/docs/maps.md @@ -3,136 +3,205 @@ 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. -Falls danach noch Fragen offen sind, meldet euch gerne per [Email](mailto:world@rc3.world) und wir versuchen das Tutorial zu ergänzen. +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 +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. ## Metainformationen ### Disclaimer -Dieses Tutorial ist ein work in progress und wird immer mal wieder erweitert, es lohnt sich daher mehrfach hier vorbeizuschauen. - -### Updates - -* 2021-01-31: Testinstanz offline. -* 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 ](exitUrls.md) ergänzt. -* 2020-12-28: Badgevergabe-Property hinzugefügt - +Dieses Tutorial ist ein work in progress und wird immer mal wieder erweitert, +es lohnt sich daher mehrfach hier vorbeizuschauen. ### 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 -* Tilesets > 4096px Kantenlänge scheinen in manchen Browsern Probleme zu machen. +* das gleiche Tileset (mit dem gleichen Namen) mehrfach einbetten führt zu + Darstellungsfehlern in WorkAdventure + + ## 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. +Instanzen skalieren nicht unendlich: zwar kann die Infrastruktur an sich +inzwischen auch Räume mit deutlich mehr gleichzeitigen Nutzer:innen verkraften, +da aber Workadventure weiterhin versuchen wird, alle Avatare gleichzeitig +anzuzeigen überlastet ihr damit einfach nur Browser und Internetleitungen. +Unsere Erfahrung zeigt, dass das Limit irgendwo bei 200 Nutzer:innen liegt. +Bitte denkt beim Karten erstellen daran. 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. +Karten im Bereich von 50x50 Tiles laufen ziemlich gut, Karten im Bereich von +500x500 gehen mit einer relevanten Ladezeit einher. Wir raten generell dazu, +nicht unnötig riesige Karten zu bauen, damit Besucher:innen darin nicht "verloren +gehen" und auch Chancen haben, einander zu finden. + +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 +Texturen [nicht von WebGL unterstütz werden.](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#understand_system_limits) -Ausgehenden Links wird ein Dereferrer vorgeschaltet. +Ausgehenden Links wird (wie letztes Jahr auch) wieder ein Dereferrer ("du verlässt +jetzt das Gelände") vorgeschaltet. + + +### Scripte +Die "[scripting API extra](https://workadventu.re/map-building-extra/about.md)" +könnt ihr nach Belieben benutzen, wir werden alle dort enthaltenen Features +unterstützen. Selbst geschriebene Scripte sind aufgrund des dadurch für uns +enstehenden Review-Aufwands nur auf Anfrage möglich. ### Starter-Kit -Falls ihr nicht wisst wo/wie ihr anfangen sollt haben wir inzwischen auch ein [Starter-Kit](https://git.cccv.de/rc3/world-map-starterkit) für euch das ihr einfach forken könnt. +Es wird auch dieses Jahr wieder ein Starter Kit geben, dass ihr einfach +herunterladen, als Vorlage benutzen, oder forken und in eure eigene Map +umbauen dürft. Dies ist – ebenso wie Tileset-Vorlagen — aktuell noch in +Arbeit und wird hier verlinkt sobald es fertig gestellt ist, gedultet +euch also noch ein wenig. + -### 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. +### Best Practices +Um den Besuch der Welt möglichst angenehm zu gestalten haben hat sich über +vergangene Veranstaltungen +[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 +eurer neuen (oder Überarbeiten älterer) Maps im Hinterkopf und passt sie ggf. +daran an. + +Bei einigen besonders offensichtlichen Verstößen (z.B. Ausgänge auf nicht +existierende Karten) macht euch außerdem der Maschinenraum darauf aufmerksam +oder schlägt Verbesserungen 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](https://signup.c3assemblies.de/) und euch anschließend kurz unter Angabe eures Assemblynamens unter [world@rc3.world](mailto:world@rc3.world) melden. +Um Karten in der Welt einbringen zu können, müsst ihr ein +[Assembly anmelden](https://maschinenraum.rc3.world/). + +Eure Karten legt ihr dann bitte in einem Git-Repo eurer Wahl ab und tragt im +Maschinenraum dessen URL ein. Unser Backend wird eure Karte dann regelmäßig von +dort herunterladen, mit einem rudimentären Linter auf einige Anforderungen und +generelle Sinnhaftigkeit prüfen, und daraufhin an rc3.world ausspielen. + +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 +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 +mehrmaligem neuladen nicht verändert hat, schaut bitte einmal dort nach. -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. +### Links zwischen einzelnen Karten -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. +Innerhalb eures Repositories könnt ihr ganz normale, relative Links benutzen — +um von einer Karte `main.json` auf eine zweite Karte `garten/geheimbasis.json` +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`). -### Einstiegspunkt / Lobby / Exit -Wir gestalten zentrale Einstiegskarten, über die man dann zu euren Assembly-Karten gelangt. +Dasselbe gilt natürlich auf für Links zu Tilesets usw. -Außerdem bitten wir euch, einen Platz für einen Ausgang zurück zur Lobby freizuhalten. -Eine [Liste mit den jeweiligen exitUrls ](exitUrls.md) -Meldet euch dafür bitte unter Angabe eures Assembly-Nnamens bei [world@rc3.world](mailto:world@rc3.world), falls ihr euch in der Liste nicht wiederfindet. +Bitte benutzt *keine* absoluten Pfade (d.h. Pfade, die mit einem `/` anfangen), +da diese auf rc3.world dann außerhalb eures Assemblies liegen würden. -#### World-Exit -Als einheitlichen, wiedererkennbaren Ausgang zur Lobby-Karte empfehlen wir dieses Tile zu verwenden: +### Links zu Orten außerhalb des eigenen Assemblies - +**Achtung:** Funktioniert anders als letztes Jahr! -Eure individuellen exitUrls findet ihr [hier](exitUrls.md) -#### Cross-Assembly Links -Es gibt Platzhalter welche automatisch mit dem richtigen Link ersetzt werden. -Beispiel für einen Platzhalter: `{<SLUG>/map.json#YourStartLayer}`. **Die <> und {} sind wichtig und müssen drin bleiben.** +Um von zu anderen Assemblies oder allgemein anderen Orten (z.B. zur Lobby oder +Lounge) zu linken gibt es ein spezielles Link-Schema: -_Euren Slug_ findet ihr im Maschinenraum unter Organisational Data -> Basic Data -> "Kurzname" +`world://<assembly>/<map>.json` + +Dabei steht `assembly` für den "Technischen Namen" (bzw. Slug) des Ziel-Assemblies, +so wie ihr ihn im Maschinenraum für euer eigenes Assembly festlegen könnt. Der +Pfad danach bezieht sich dann auf den Ort der Map innerhalb des Git-Repositories +dieses Assemblies. + +Um zurück in die Lounge zu kommen, benutzt also slug einfach `lounge`. + +Da die Gültigkeit dieser Links nicht von eurem eigenen Repository, sondern auch vom +Rest der Veranstaltung abhängt (und sich auch mit der Zeit ändern kann), können +ungültige Links hier aktuell nicht statisch beim Hochladen eurer Karten abgefangen +werden — achtet also bitte selbst darauf, dass eure Links nicht ins Nichts führen. + + +### Einstiegspunkte und Lobby +Wir gestalten zentrale Einstiegskarten, über die man dann zu euren Assembly-Karten +gelangt. + +Eure Assembly-Karte sollte natürlich auch einen Ausgang zurück zur Lobby +enthalten. Als einheitlichen, wiedererkennbaren Ausgang zur Lobby-Karte empfehlen +wir euch dafür dieses Tile zu verwenden: + + -Ihr wollt zum Beispiel direkt auf die Assembly foobar linken und der Slug vom foobar Assembly lautet `foobar`, dann ergibt sich `{<foobar>/main.json}` für euren Exit-Layer. -Gegenwärtig müsst ihr die Slugs anderer Assemblies dort erfragen, ihr könnt sie nicht selbst im Maschinenraum sehen. -Achtung: Das funktioniert **nicht** auf der Testinstanz. # Kartengestatung + ## Tiles +Grundlegend bestehen die Karten aus sogenannten Tiles oder Sprites (auch wenn es +Unterschiede zwischen den Begriffen gibt werden sie hier im Folgenden synonym +verwendet). Bitte benutzt ausschließlich Tiles der Größe 32x32 Pixel. + +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. +* 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: * [itch.io](https://itch.io/) * [opengameart.org](https://opengameart.org/) * [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/) -### 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](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. -* 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) - -### 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 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](https://krita.org/), es geht aber prinzipiell auch mit anderen. -### 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.) +* 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. +* 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 ## Maps -Karten können mittels des Editors [Tiled](https://www.mapeditor.org) 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. +Karten können mittels des Editors [Tiled](https://www.mapeditor.org) 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 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 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. +* die Karte muss orthogonal sein, und Tilesize muss 32x32 Pixel sein +* Während des Erstellens kann es sinnvoll sein, eine unendliche Karte zu + 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 + werden! + +### Karte gestalten - Layer +Eine Karte kann aus beliebig vielen übereinander gelegten Tile Layern bestehen. +Eure Karte braucht dabei mindestens einen mit dem Namen `start`. Standardmäßig +werden neuer Besucher\*innen dann zufällig auf einer der Tiles dieses Layers +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 +Layer namens `floorLayer`, dessen Typ `objectgroup` sein muss und der definiert, +auf welchem Layer sich die Avatare bewegen bzw. was vor- oder hinter ihnen +angezeigt werden soll.  @@ -140,94 +209,189 @@ Für ein leichteres Gestalten 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. +### Wände / Kollisionen +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 +(nicht dem enthaltendem Layer!) 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 workadventure allerdings nicht +unterstützt und einfach ignoriert. -### 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. + -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`. + + +### 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. Die PNG-Dateien müssen ebenfalls auf den Server geladen +werden bzw. in eurem Repository vorhanden sein.) + + +### Zusatzfunktionen für Layer + +#### Weitere Eingänge +Neben dem `start` Layer könnt ihr weitere Einstiegspunkte zu eurer Karte +definieren, i.e. "Eingänge", die Besucher\*innen direkt an bestimmte Stellen +springen lassen. Diese Layer funktionieren sehr ähnlich: setzt einfach beliebige +Tiles an die Stelle, wo die Spielfigur spawnen soll. Um sie als Einstiegspunkt +zu markieren, setzt in Tiled die Custom Property `startLayer` (Typ Boolean) auf +`true`. Der Name dieses Layers ist auch die "Sprungadresse", die ihr zum Betreten +über diesen Layer braucht. Wenn eure Karte also z.B. `foo.json` heißt und der +Layer, auf den ihr springen wollt, `bar`, dann wäre die Adresse dafür `foo.json#bar`.  -### Exit Layer -Ähnlich wie beim Start Layer könnt ihr Exits definieren. Ihr erzeugt ein Layer, packt an die Stellen an denen ihr Ausgänge haben wollt ein Tile, und gebt dem Layer die custom property `exitUrl`. Dieser gebt ihr als Wert (string) die Karte bzw. den Startpunkt auf dieser Karte zu der ihr springen wollt, zum Beispiel also `foo.json#bar` um auf die Karte `foo.json` und dort auf einen Startpunkt auf dem Layer `bar` zu springen. +#### Ausgänge +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 +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`, +um in der Karte `foo.json` auf einen Startpunkt `bar` zu springen (falls ihr +das `#bar` weglasst, führt der Ausgang stattdessen zum `start`-Layer von +`foo.json`).  +Zu Ausgängen in die Lobby, Lounge, oder zu anderen Assemblies, werft einen Blick +auf die Kurzübersicht weiter oben. -## Weitergehende Inhalte ### 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! +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` +(Typ String). Verwendet https!  +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 +sie jetzt "das Gelände verlassen". + ### 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. +Auf die selbe 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 +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. +Um Kollisionen zwischen verschiedenen Assemblies zu verhindern (damit z.B. +alle ihr eigenes "Hackcenter" definieren können) sind die Namen der jitsi-Räume +standardmäßig lokal für euer Assembly. Falls ihr einen Raum mit einem anderen +Assembly teilen wollt, hängt bitte vorne an den Namen `shared-` an. + +Allgemein wird empfohlen, zusätzlich noch die Property `jitsiTrigger` auf +`onaction` zu setzen, damit der jitsi-Raum erst nach explizitem Wunsch (einem +Druck auf die Leertaste) aufgeht. Das macht den Besuch der World für langsamere +Laptops angenehmer und verhindert, dass sich versehentlich wer in eure laufende +Session verirrt. Außerdem könnt ihr mit der Property `jitsiTriggerMessage` noch +eine kurze eigene Nachricht einstellen, die Besucher\*innen angezeigt wird, wenn +sie auf den Bereich des Jitsis laufen (dies Überschreibt die Standardnachricht +"press SPACE to open jitsi meet"). + +### Big Blue Button einbinden +Dies funktioniert im wesentlichen genauso wie für jitsi: setzt `bbbRoom` auf den +Namen eures Raums, und `bbbTrigger` bzw. `bbbTriggerMessage`, um den Raum nicht +unverhofft aufploppen zu lassen. ### 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. +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. Auf allen Tiles dieses Layers +sind danach keine Gespräche mehr üblich. Besonders sinnvoll ist das z.B. in engen +Gängen, in denen man sich nicht ohne weiteres ausweichen kann.  -### Wände / nicht begehbare Bereiche -Das ist ausnahmsweise kein Layer, sondern eine Tile-Eigenschaft. Beschreibung siehe weiter oben bei den Tiles. - ### Badgevergabe -Ihr könnt Badges an User vergeben, wenn diese ein bestimmten Tile betreten. 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 "_getBadge_" (string). Ein Token könnt Ihr für jedes Badge im Backoffice generieren. Es funktioniert jedoch nur ein **Map** Redeem Token. +Ihr könnt Badges an User vergeben. Legt dazu einen Layer vom Typ `objectgroup` +(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 +das Token eurer Badge (an dieses kommt ihr im Maschinenraum, wo ihr auch neue +Badges anlegen könnt). Es funktioniert jedoch nur ein **Map** Redeem Token. + +Wenn jetzt Besucher\*innen über die entsprechenden Stellen der Map laufen, werden +sie eure Badge erhalten.  ### Animationen -Tiles können zu Animationen (Loops) zusammengeführt werden, um z.B. fließendes Wasser oder blinkende Lichter darzustellen. Dazu müssen alle "Frames" einer Animation jeweils ein eigenes 32x32 Tile sein. -Bearbeitet dazu in Tiled das Tileset, wählt das zu animierende Tile (oder ein beliebiges leeres Tile) aus und klickt auf den Animation Editor: +Tiles können zu Animationen (Loops) zusammengeführt werden, um z.B. fließendes +Wasser oder blinkende Lichter darzustellen. Dazu müssen alle "Frames" einer +Animation jeweils ein eigenes 32x32 Tile sein. Bearbeitet dazu in Tiled das +Tileset, wählt das zu animierende Tile (oder ein beliebiges leeres Tile) aus +und klickt auf den Animation Editor:  -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 +eingestellt werden:  -Im Map-Editor sollten die Animationsloops auch schon dargestellt werden, wenn die Option im "view" Menü gesetzt ist: +Im Map-Editor sollten die Animationsloops auch schon dargestellt werden, wenn +die Option im "view" Menü gesetzt ist:  -Hinweis: Die Engine macht Tile-Updates nur alle 100ms, also werden Animationen mit Framedurations unter 100ms vermutlich nicht gut aussehen oder gar nicht funktionieren. +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..) +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ützt 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. +Layer mit der Property `playAudio` (Typ String) spielen beim Betreten der +zugehörigen Tiles Sound ab. Unterstützt 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 setzt zusätzlich `audioLoop` (Typ Boolean) auf `true`.  -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. +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. +Tragt das Copyright für eure Musik bitte in der `mapCopyright` property auf der +Map direkt ein, da es (aktuell) keine spezielle Property pro `playAudio`-Layer +dafür gibt. # Paketierung, Deployment und Infrastruktur ## 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. +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. +Achtet bitte bei euren Tilesets auf deren Lizenzen bzw. Copyright. Diese +müsst (!) ihr via der `"copyright"` Property direkt in eurem Map json für die +jeweiligen Tilesets setzen. + +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 +einzelnem Layer – angeben. ## Verzeichnisstruktur -Achtet beim Ablegen eurer Karten bitte auf die Verzeichnisstruktur, folgende Dinge solltet ihr konkret beachten: +Achtet beim Ablegen eurer Karten bitte auf die Verzeichnisstruktur, folgende +Dinge solltet ihr konkret beachten: -* Eure Startkarte muss main.json heißen und im Hauptverzeichnis liegen. +* Eure Startkarte muss `main.json` heißen und im Hauptverzeichnis liegen. * Andere Karten können in eigenen Ordnern oder auch im Hauptverzeichnis liegen. -* Achtet bei Verlinkungen der Karten in eurer Karte auf die korrekte relative URL. +* Achtet bei Verlinkungen der Karten in eurer Karte auf die korrekte relative URL + (siehe auch den entsprechenden Abschnitt oben). * Achtet auf die Pfade eurer Tilesets (zur Not direkt im json anpassen). Hier ein Beispiel wie ein Verzeichnis mit Karten exemplarisch aussehen könnte: @@ -235,10 +399,8 @@ Hier ein Beispiel wie ein Verzeichnis mit Karten exemplarisch aussehen könnte: ``` . ├── bla -│ ├── COPYRIGHT │ └── keks.json ├── blubb.json -├── COPYRIGHT ├── foo │ ├── bar.json │ └── tileset2.png @@ -248,16 +410,16 @@ Hier ein Beispiel wie ein Verzeichnis mit Karten exemplarisch aussehen könnte: ## 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://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. +Eine Testinstanz, auf der ihr eure Maps direkt testen könnt und die sich (soweit +möglich und sinnvoll) wie die "echte" Instanz für das Event verhält, ist aktuell +noch in Arbeit und kommt in kürze. ## 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. - -## Big Blue Button -Wir mögen BBB, aber die rC3.world 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. +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. +--> diff --git a/docs/maschinenraum.en.md b/docs/maschinenraum.en.md index 937f8ec..d73eae8 100644 --- a/docs/maschinenraum.en.md +++ b/docs/maschinenraum.en.md @@ -96,7 +96,7 @@ After the upload, the file can be included in the rc3.world with the link `https `<filename>` is the name of the uploaded file. This may contain spaces, but these must be treated accordingly in the link. ### What are badges and how to create them? -Badges should strengthen the explorative character of the congress: Assemblies can distribute these stickers/awards for "been there", "discovered something" or maybe also "P=NP proven"... +Badges should strengthen the event's explorative character: Assemblies can distribute these stickers/awards for "been there", "discovered something" or maybe also "P=NP proven"... #### How does it work and what is possible? What means sticker and achievement mode? diff --git a/docs/maschinenraum.md b/docs/maschinenraum.md index 7e53d80..984a90d 100644 --- a/docs/maschinenraum.md +++ b/docs/maschinenraum.md @@ -104,7 +104,7 @@ Nach dem Upload kann die Datei mit dem Link `https://hangar.rc3.world/<Username> `<filename>` ist dabei der Name der hochgeladenen Datei. Diese darf zwar Leerzeichen enthalten, diese müssen dann aber im Link entsprechend behandelt werden. ### Wie werden Badges erstellt und was soll das eigentlich sein? -Badges sollen den explorativen Charakter des Congress verstärken: Assemblies können diese Sticker/Auszeichnungen verteilen für "mal da gewesen", "etwas entdeckt" oder vllt. auch "P=NP bewiesen"... +Badges sollen den explorativen Charakter des Events verstärken: Assemblies können diese Sticker/Auszeichnungen verteilen für "mal da gewesen", "etwas entdeckt" oder vllt. auch "P=NP bewiesen"... #### Wie geht das und was ist machbar? Was bedeuten Sticker- oder Achievement-Mode? diff --git a/docs/styleguide.md b/docs/styleguide.md deleted file mode 100644 index 54661f9..0000000 --- a/docs/styleguide.md +++ /dev/null @@ -1,39 +0,0 @@ -rC3 - style guide -=== - -<video controls> - <source src="https://styleguide.rc3.world/Animations/RC3_Animation_LogoPixelRise.mp4" type="video/mp4"> -Your browser does not support the video tag. -</video> - -Look through another window. You are not alone, just remote. It’s for our future. - -### What - -Whatever it will be about, it should look and feel like a time travel. Back to these times when people were caught in their rooms with their computers. - -### Why - -We believe that people will recognize the flashback. It’s an encouragement of the right path. Let’s go back and look through other perspectives with another awareness and more knowledge to find new ways. - -### Feeling - -People should feel comfortable in their memories of a new start and beginning. - -### Motivation - -Change accepted. Think new. You can still change things. - -BACK TO THE FUTURE // See you out there. - -# Materials - -* [RC3 Style Guide Essentials.pdf](https://styleguide.rc3.world/RC3%20Style%20Guide%20Essentials.pdf) - -### Files -Find all the files at [styleguide.rc3.world](https://styleguide.rc3.world). - -# Credits - -***Art & Video Design:*** KREATUR WORKS (Alexander Reiling, Hen/i, Ines Ruden, Tala Fasheh, Vishnu) -***Sounds:*** <a href="https://www.zapsplat.com">zapsplat.com<a> diff --git a/mkdocs.yml b/mkdocs.yml index fe0286c..566ebaa 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -26,9 +26,9 @@ theme: search: 83 # s nav: - - Styleguide: 'styleguide.md' +# - Styleguide: 'styleguide.md' - Maps: maps.md # - Maschinenraum: 'maschinenraum.md' - - Workadventure: 'workadventure.en.md' +# - Workadventure: 'workadventure.en.md' - Play: 'play.md' - - Sponsoring: 'sponsoring.md' +# - Sponsoring: 'sponsoring.md' -- GitLab