[{"data":1,"prerenderedAt":993},["Reactive",2],{"blog-index-de":3},[4,367,428,531,590,634,699,732,789,827,866,910],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":9,"description":10,"published_at":11,"cover":12,"body":13,"_type":362,"_id":363,"_source":364,"_file":365,"_extension":366},"/de/blog/2026/10/full-circle","10",false,"","Der Kreis schließt sich","Aus dem Browserspiel wird ein echtes Feuerwehrspiel: Leitstelle und Einsatzleitung in einem, auf echter Karte, mit Feuer, Wasser und Koop. Warum ich zu den Wurzeln zurückkehre – und was ich mitnehme.","2026-10-28","/images/game/hero-nacht-1280.webp",{"type":14,"children":15,"toc":352},"root",[16,27,35,68,75,80,86,110,116,121,127,150,156,167,175,185,195,203,213,221,233,241,247,265,271,276,282,317,342,347],{"type":17,"tag":18,"props":19,"children":20},"element","p",{},[21],{"type":17,"tag":22,"props":23,"children":26},"img",{"alt":24,"src":25},"Eine Drehleiter an einem brennenden Wohnhaus, Einsatzkräfte bei der Arbeit","/images/game/post-house-fire-1280.webp",[],{"type":17,"tag":28,"props":29,"children":31},"h1",{"id":30},"der-kreis-schließt-sich",[32],{"type":33,"value":34},"text","Der Kreis schließt sich 🚒",{"type":17,"tag":18,"props":36,"children":37},{},[38,40,46,48,53,54,59,61,66],{"type":33,"value":39},"2015 habe ich hier zum ersten Mal von meinem Traum geschrieben: einem eigenen Feuerwehrspiel. Befeuert von ",{"type":17,"tag":41,"props":42,"children":43},"code-inline",{},[44],{"type":33,"value":45},"Emergency 1–4",{"type":33,"value":47},", ",{"type":17,"tag":41,"props":49,"children":50},{},[51],{"type":33,"value":52},"Feuerwache.net",{"type":33,"value":47},{"type":17,"tag":41,"props":55,"children":56},{},[57],{"type":33,"value":58},"LstSim.de",{"type":33,"value":60}," und später ",{"type":17,"tag":41,"props":62,"children":63},{},[64],{"type":33,"value":65},"Leitstellenspiel.de",{"type":33,"value":67},". Gut zehn Jahre später hat dieser Traum eine Wendung genommen – zurück zu seinem Anfang.",{"type":17,"tag":69,"props":70,"children":72},"h2",{"id":71},"was-in-der-pause-passiert-ist",[73],{"type":33,"value":74},"Was in der Pause passiert ist",{"type":17,"tag":18,"props":76,"children":77},{},[78],{"type":33,"value":79},"Anfang 2025 habe ich das Projekt pausiert, um meine Ausbildung zum Werkfeuerwehrmann zu machen. Diese Zeit hat meinen Blick auf das Spiel verändert. Wer selbst an einer Einsatzstelle stand, weiß: Vor Ort passiert nichts von allein. Jemand muss absitzen, das Gerät holen, die Wasserversorgung aufbauen und entscheiden. Genau das hat mir im Spiel gefehlt.",{"type":17,"tag":69,"props":81,"children":83},{"id":82},"was-die-browser-version-war",[84],{"type":33,"value":85},"Was die Browser-Version war",{"type":17,"tag":18,"props":87,"children":88},{},[89,94,96,101,103,108],{"type":17,"tag":41,"props":90,"children":91},{},[92],{"type":33,"value":93},"leitstelle.io",{"type":33,"value":95}," war bisher ein Browserspiel: Laravel, Vue und MapLibre, eine Karte von jedem beliebigen Ort, Fahrzeuge als Symbole, die über echte Straßen fahren. Die Arbeit mit ",{"type":17,"tag":41,"props":97,"children":98},{},[99],{"type":33,"value":100},"OSRM",{"type":33,"value":102}," und ",{"type":17,"tag":41,"props":104,"children":105},{},[106],{"type":33,"value":107},"Overpass",{"type":33,"value":109},", die eigenen Kartenkacheln, das Map Debugging Tool – all das hat mir unglaublich viel beigebracht.",{"type":17,"tag":111,"props":112,"children":115},"video-slot",{"caption":113,"poster":114},"Der letzte Stand der Browser-Version","/images/blog/10-first-steps-with-osrm.png",[],{"type":17,"tag":18,"props":117,"children":118},{},[119],{"type":33,"value":120},"Aber ehrlich gesagt war es ein Leitstellenspiel, wie es schon viele gibt: Du disponierst, ein Timer läuft ab, fertig. Spannend für ein paar Einsätze, aber nicht das Spiel, von dem ich 2015 geträumt habe.",{"type":17,"tag":69,"props":122,"children":124},{"id":123},"die-wendung",[125],{"type":33,"value":126},"Die Wendung",{"type":17,"tag":18,"props":128,"children":129},{},[130,132,136,137,141,143,148],{"type":33,"value":131},"Meine Begeisterung kam immer von zwei Seiten: von der Leitstelle aus ",{"type":17,"tag":41,"props":133,"children":134},{},[135],{"type":33,"value":65},{"type":33,"value":102},{"type":17,"tag":41,"props":138,"children":139},{},[140],{"type":33,"value":58},{"type":33,"value":142}," und von der Einsatzstelle aus ",{"type":17,"tag":41,"props":144,"children":145},{},[146],{"type":33,"value":147},"Emergency",{"type":33,"value":149},". Leitstelle vereint jetzt beides und geht darüber hinaus. Du nimmst den Notruf an, alarmierst die passenden Fahrzeuge von echten Wachen – und wenn sie ankommen, übernimmst du selbst.",{"type":17,"tag":69,"props":151,"children":153},{"id":152},"was-das-spiel-jetzt-ist",[154],{"type":33,"value":155},"Was das Spiel jetzt ist",{"type":17,"tag":18,"props":157,"children":158},{},[159,165],{"type":17,"tag":160,"props":161,"children":162},"strong",{},[163],{"type":33,"value":164},"Echte Karte, echte Daten.",{"type":33,"value":166}," Der ganze Landkreis Freising, gebaut aus OpenStreetMap und dem bayerischen Geländemodell: 83 Feuerwachen, 3.716 Hydranten und über 130 Fahrzeuge nach dem Vorbild der echten Wehren. Die Einsatzmeldungen tragen echte Adressen.",{"type":17,"tag":18,"props":168,"children":169},{},[170],{"type":17,"tag":22,"props":171,"children":174},{"alt":172,"src":173},"Ein HLF auf Anfahrt zur Blauen Stunde","/images/game/post-blue-hour-drive-1280.webp",[],{"type":17,"tag":18,"props":176,"children":177},{},[178,183],{"type":17,"tag":160,"props":179,"children":180},{},[181],{"type":33,"value":182},"Disponent und Einsatzleiter.",{"type":33,"value":184}," Die Fahrzeuge warten auf ihre Mannschaft, fahren echte Straßen und melden ihren Status wie im Funk. Vor Ort lässt du die Mannschaft absitzen, holst Schlauch, Schere oder Säge vom Fahrzeug und bringst die Drehleiter in Stellung.",{"type":17,"tag":18,"props":186,"children":187},{},[188,193],{"type":17,"tag":160,"props":189,"children":190},{},[191],{"type":33,"value":192},"Feuer und Wasser, simuliert.",{"type":33,"value":194}," Ein Brand wächst, wenn zu wenig Wasser ankommt. Du legst die Versorgungsleitung zum Hydranten, saugst aus dem Bach an oder baust lange Schlauchstrecken von Fahrzeug zu Fahrzeug.",{"type":17,"tag":18,"props":196,"children":197},{},[198],{"type":17,"tag":22,"props":199,"children":202},{"alt":200,"src":201},"Die Wasserversorgung aus dem Bach steht, während der nächste Alarm eingeht","/images/game/post-draft-line-1280.webp",[],{"type":17,"tag":18,"props":204,"children":205},{},[206,211],{"type":17,"tag":160,"props":207,"children":208},{},[209],{"type":33,"value":210},"Gemeinsam mit Freunden.",{"type":33,"value":212}," Ihr spielt im Koop in derselben Welt. Jeder übernimmt eigene Fahrzeuge, und pausiert wird nur, wenn alle zustimmen.",{"type":17,"tag":18,"props":214,"children":215},{},[216],{"type":17,"tag":22,"props":217,"children":220},{"alt":218,"src":219},"Drei Spieler im Koop mit Spielerliste und Abstimmung zur Pause","/images/game/post-coop-1280.webp",[],{"type":17,"tag":18,"props":222,"children":223},{},[224,226,231],{"type":33,"value":225},"Und weil Fehler zur Entwicklung dazugehören, gibt es ",{"type":17,"tag":41,"props":227,"children":228},{},[229],{"type":33,"value":230},"Summi",{"type":33,"value":232},": eine kleine Drohne mit großen Augen, mit der ihr Fehler direkt im Spiel melden könnt.",{"type":17,"tag":18,"props":234,"children":235},{},[236],{"type":17,"tag":22,"props":237,"children":240},{"alt":238,"src":239},"Summi, die Drohne zum Melden von Fehlern, als 3D-Modell","/images/game/post-summi-1280.webp",[],{"type":17,"tag":69,"props":242,"children":244},{"id":243},"neue-technik-altes-wissen",[245],{"type":33,"value":246},"Neue Technik, altes Wissen",{"type":17,"tag":18,"props":248,"children":249},{},[250,252,257,258,263],{"type":33,"value":251},"Leitstelle läuft nicht mehr im Browser, sondern als Desktop-Spiel auf macOS, Windows und Linux, gebaut mit ",{"type":17,"tag":41,"props":253,"children":254},{},[255],{"type":33,"value":256},"Rust",{"type":33,"value":102},{"type":17,"tag":41,"props":259,"children":260},{},[261],{"type":33,"value":262},"Bevy",{"type":33,"value":264},". Vom alten PHP-Code ist nichts übrig geblieben, vom Wissen dagegen sehr viel: die Recherche zu Wachen und Fahrzeugen, die Logik hinter Einsatzstichworten und Alarmierung, die Ideen rund um Erkundung und Nachalarmierung. Die Browser-Version war kein Umweg, sie war das Fundament.",{"type":17,"tag":69,"props":266,"children":268},{"id":267},"freising-zuerst-dann-deutschland-und-darüber-hinaus",[269],{"type":33,"value":270},"Freising zuerst, dann Deutschland und darüber hinaus",{"type":17,"tag":18,"props":272,"children":273},{},[274],{"type":33,"value":275},"Der erste Landkreis ist Freising. Dort kenne ich mich aus, und dort lässt sich jedes Detail prüfen. Die Technik dahinter ist aber für ganz Deutschland gedacht – und darüber hinaus.",{"type":17,"tag":69,"props":277,"children":279},{"id":278},"was-als-nächstes-kommt",[280],{"type":33,"value":281},"Was als Nächstes kommt",{"type":17,"tag":283,"props":284,"children":285},"ul",{},[286,292,297,302,307,312],{"type":17,"tag":287,"props":288,"children":289},"li",{},[290],{"type":33,"value":291},"Einsätze, die falsch gemeldet werden, und eine Erkundung, die zeigt, was wirklich los ist",{"type":17,"tag":287,"props":293,"children":294},{},[295],{"type":33,"value":296},"Wind, der Brände auf Nachbargebäude übergreifen lässt",{"type":17,"tag":287,"props":298,"children":299},{},[300],{"type":33,"value":301},"eine lebendige Welt, in der der Verkehr eine Rettungsgasse bildet",{"type":17,"tag":287,"props":303,"children":304},{},[305],{"type":33,"value":306},"Rettungsdienst, Polizei und THW",{"type":17,"tag":287,"props":308,"children":309},{},[310],{"type":33,"value":311},"eine dauerhafte Welt, die rund um die Uhr weiterläuft",{"type":17,"tag":287,"props":313,"children":314},{},[315],{"type":33,"value":316},"eine Begleit-App für unterwegs",{"type":17,"tag":18,"props":318,"children":319},{},[320,322,331,333,340],{"type":33,"value":321},"Ein Datum gibt es bewusst noch nicht. Erste Testrunden kündige ich zuerst im ",{"type":17,"tag":323,"props":324,"children":328},"a",{"href":325,"rel":326},"https://discord.gg/cdRq3bztJu",[327],"nofollow",[329],{"type":33,"value":330},"Discord",{"type":33,"value":332}," und im ",{"type":17,"tag":323,"props":334,"children":337},{"href":335,"rel":336},"https://forum.leitstelle.io",[327],[338],{"type":33,"value":339},"Forum",{"type":33,"value":341}," an. Schaut vorbei, erzählt mir von euren Wachen und Fahrzeugen, und lasst uns gemeinsam das Feuerwehrspiel bauen, von dem wir immer geträumt haben.",{"type":17,"tag":18,"props":343,"children":344},{},[345],{"type":33,"value":346},"Der Kreis schließt sich. Bis bald!",{"type":17,"tag":18,"props":348,"children":349},{},[350],{"type":33,"value":351},"André",{"title":8,"searchDepth":353,"depth":353,"links":354},2,[355,356,357,358,359,360,361],{"id":71,"depth":353,"text":74},{"id":82,"depth":353,"text":85},{"id":123,"depth":353,"text":126},{"id":152,"depth":353,"text":155},{"id":243,"depth":353,"text":246},{"id":267,"depth":353,"text":270},{"id":278,"depth":353,"text":281},"markdown","content:de:blog:2026:10:full-circle.md","content","de/blog/2026/10/full-circle.md","md",{"_path":368,"_dir":369,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":370,"description":371,"published_at":372,"body":373,"_type":362,"_id":426,"_source":364,"_file":427,"_extension":366},"/de/blog/2025/01/a-new-career","01","Kurze Pause – aber es geht weiter!","Trotz einer kleinen Pause bleibt das Projekt lebendig! Während meiner Ausbildung sammle ich neue Ideen und Perspektiven, die das Projekt weiter voranbringen werden.","2025-02-15",{"type":14,"children":374,"toc":424},[375,380,385,390,409,414,419],{"type":17,"tag":28,"props":376,"children":378},{"id":377},"kurze-pause-aber-es-geht-weiter",[379],{"type":33,"value":370},{"type":17,"tag":18,"props":381,"children":382},{},[383],{"type":33,"value":384},"Seit Dezember 2024 befinde ich mich auf einem völlig neuen beruflichen Weg: Nach meiner Zeit als Senior Software Engineer habe ich eine neue Herausforderung als Werkfeuerwehrmann angenommen. Am 17. März 2025 startet meine Ausbildung in diesem Bereich, die bis zum 25. Juli 2025 dauern wird.",{"type":17,"tag":18,"props":386,"children":387},{},[388],{"type":33,"value":389},"Diese intensive Phase verlangt meine volle Aufmerksamkeit, weshalb ich das Projekt vorübergehend pausieren werde. Doch keine Sorge – das ist keine Abschiedsnachricht, sondern nur eine kleine Unterbrechung! Das Projekt liegt mir sehr am Herzen, und ich freue mich darauf, nach meiner Ausbildung mit frischer Energie weiter daran zu arbeiten.",{"type":17,"tag":18,"props":391,"children":392},{},[393,395,400,402,407],{"type":33,"value":394},"Während dieser Zeit werde ich weiterhin im ",{"type":17,"tag":323,"props":396,"children":398},{"href":335,"rel":397},[327],[399],{"type":33,"value":339},{"type":33,"value":401}," und auf ",{"type":17,"tag":323,"props":403,"children":405},{"href":325,"rel":404},[327],[406],{"type":33,"value":330},{"type":33,"value":408}," aktiv sein. Ich lade euch herzlich ein, eure Ideen zu teilen, über neue Funktionen zu diskutieren oder einfach nur über Feuerwehrthemen zu plaudern. Die Community ist ein zentraler Bestandteil, und ich freue mich, auch während meiner Ausbildung mit euch in Kontakt zu bleiben.",{"type":17,"tag":18,"props":410,"children":411},{},[412],{"type":33,"value":413},"Diese Pause gibt mir zudem die Möglichkeit, neue Inspirationen und Erkenntnisse aus meiner Ausbildung zu sammeln, die vielleicht später in das Projekt einfließen können. Ich bin gespannt, welche neuen Perspektiven sich eröffnen werden!",{"type":17,"tag":18,"props":415,"children":416},{},[417],{"type":33,"value":418},"Bleibt also dran, diskutiert mit, und lasst uns gemeinsam die Zukunft gestalten. Vielen Dank für eure Unterstützung – ich freue mich auf alles, was kommt!",{"type":17,"tag":18,"props":420,"children":421},{},[422],{"type":33,"value":423},"Bis bald und viele Grüße!",{"title":8,"searchDepth":353,"depth":353,"links":425},[],"content:de:blog:2025:01:a-new-career.md","de/blog/2025/01/a-new-career.md",{"_path":429,"_dir":369,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":430,"description":431,"published_at":432,"cover":114,"body":433,"_type":362,"_id":529,"_source":364,"_file":530,"_extension":366},"/de/blog/2024/01/first-steps-with-osrm","Erster Einsatz und erste Schritte mit OSRM","Von den ersten Schritten mit OSRM bis zur Entwicklung eines eigenen Map Debugging Tools und dem Ausblick auf die Integration von Overpass.","2024-01-08",{"type":14,"children":434,"toc":527},[435,441,447,458,470,475,486,511,522],{"type":17,"tag":18,"props":436,"children":437},{},[438],{"type":17,"tag":22,"props":439,"children":440},{"alt":8,"src":114},[],{"type":17,"tag":28,"props":442,"children":444},{"id":443},"erster-einsatz-und-erste-schritte-mit-osrm",[445],{"type":33,"value":446},"Erster Einsatz und erste Schritte mit OSRM 📚",{"type":17,"tag":18,"props":448,"children":449},{},[450,452,456],{"type":33,"value":451},"In den vergangenen Monaten lag mein Hauptaugenmerk auf Kundenprojekten, was mich daran hinderte, mich intensiver mit der Weiterentwicklung des Spiels zu beschäftigen. Mit dem Jahreswechsel und dem Abschluss anderer Projekte konnte ich jedoch meine Aufmerksamkeit wieder verstärkt auf die Entwicklungen von ",{"type":17,"tag":41,"props":453,"children":454},{},[455],{"type":33,"value":93},{"type":33,"value":457}," lenken und dabei Fortschritte erzielen.",{"type":17,"tag":18,"props":459,"children":460},{},[461,463,468],{"type":33,"value":462},"Die erste Etappe dieses Entwicklungsabschnitts führte mich zur Auseinandersetzung mit OSRM (Open Source Routing Machine). Dabei entwickelte ich sogar ein eigenes Map Debugging Tool, das es ermöglicht, die oft kryptischen Geometrien, wie beispielsweise ",{"type":17,"tag":41,"props":464,"children":465},{},[466],{"type":33,"value":467},"allfHqivfAEERa@@...[jBUnAIZQl@",{"type":33,"value":469},", anschaulicher darzustellen (siehe Screenshot oben).",{"type":17,"tag":18,"props":471,"children":472},{},[473],{"type":33,"value":474},"Um meine Kenntnisse im Umgang mit OSRM weiter zu vertiefen, habe ich einen intensiven Einblick genommen. Dies ermöglichte es mir, das Routing und die Echtzeitanzeige von Fahrzeugen sowohl im Backend als auch im Frontend besser zu verstehen und entsprechende Optimierungen vorzunehmen. Bisher handelt es sich jedoch lediglich um einen Prototypen, der noch nicht für die Integration in das Spiel geeignet ist.",{"type":17,"tag":18,"props":476,"children":477},{},[478,480,484],{"type":33,"value":479},"Um das Routing effektiver zu testen, war es erforderlich, einen Einsatz in der Nähe einer Wache zu generieren – auch wenn es zu Beginn lediglich ein leerer Einsatz war. Dabei wurde deutlich, dass Einsätze nicht nur in unmittelbarer Nähe einer Wache entstehen sollten, sondern auch einen Bezug zum ausgewählten Ort haben müssen. Dies führte zu der Erkenntnis, dass in naher Zukunft ein weiteres Tool – nämlich ",{"type":17,"tag":41,"props":481,"children":482},{},[483],{"type":33,"value":107},{"type":33,"value":485}," - zum Einsatz kommen wird.",{"type":17,"tag":18,"props":487,"children":488},{},[489,491,497,499,503,505,509],{"type":33,"value":490},"Bereits auf ",{"type":17,"tag":323,"props":492,"children":495},{"href":493,"rel":494},"https://bos.wiki",[327],[496],{"type":33,"value":493},{"type":33,"value":498}," habe ich mich intensiv mit ",{"type":17,"tag":41,"props":500,"children":501},{},[502],{"type":33,"value":107},{"type":33,"value":504}," beschäftigt. Daher sollte die Integration in den aktuellen Prototypen nicht allzu viel Zeit in Anspruch nehmen. Mit ",{"type":17,"tag":41,"props":506,"children":507},{},[508],{"type":33,"value":107},{"type":33,"value":510}," ist es leicht möglich, anhand eines Punktes auf der Karte einen Points of Interest (POI) zu bestimmen. Auf diese Weise kann vermieden werden, dass ein Wohnungsbrandeinsatz beispielsweise mitten auf der Autobahn platziert wird.",{"type":17,"tag":18,"props":512,"children":513},{},[514,516,520],{"type":33,"value":515},"Abseits der technischen Fortschritte habe ich mich intensiv mit der architektonischen und konkreten Entwicklung von ",{"type":17,"tag":41,"props":517,"children":518},{},[519],{"type":33,"value":93},{"type":33,"value":521}," auseinandergesetzt. Meine Überlegungen erstreckten sich dabei nicht nur auf die Erweiterung der Spielfunktionalitäten, sondern vor allem auf die Umsetzung einzelner Teile des Projekts. Ein besonderes Augenmerk lag dabei auf der Strukturierung und Entwicklung, um eine effiziente und nachhaltige Umsetzung sicherzustellen.",{"type":17,"tag":18,"props":523,"children":524},{},[525],{"type":33,"value":526},"Ich wünsche euch allen ein frohes neues Jahr! Bis zum nächsten Mal!",{"title":8,"searchDepth":353,"depth":353,"links":528},[],"content:de:blog:2024:01:first-steps-with-osrm.md","de/blog/2024/01/first-steps-with-osrm.md",{"_path":532,"_dir":533,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":534,"description":535,"published_at":536,"cover":537,"body":538,"_type":362,"_id":588,"_source":364,"_file":589,"_extension":366},"/de/blog/2023/09/generating-tiles-for-the-world","09","Von 1200€ auf 1,50€: Die Kartenkonvertierung, die alles verändert hat! 🌍","Im letzten Monat wurden erhebliche Fortschritte erzielt, darunter die Automatisierung der kostengünstigen Umwandlung von bildbasierten OpenStreetMap-Karten in Vektorform. Dies ermöglicht nicht nur eine globale Kartenabdeckung, sondern senkt auch die Konvertierungskosten von 1200 € auf 1,50 € pro Update.","2023-09-11","/images/blog/09-cost-saving-map-conversion.png",{"type":14,"children":539,"toc":586},[540,546,551,556,561,566,571,576,581],{"type":17,"tag":18,"props":541,"children":542},{},[543],{"type":17,"tag":22,"props":544,"children":545},{"alt":8,"src":537},[],{"type":17,"tag":28,"props":547,"children":549},{"id":548},"von-1200-auf-150-die-kartenkonvertierung-die-alles-verändert-hat",[550],{"type":33,"value":534},{"type":17,"tag":18,"props":552,"children":553},{},[554],{"type":33,"value":555},"Hallo zusammen!",{"type":17,"tag":18,"props":557,"children":558},{},[559],{"type":33,"value":560},"Es ist fast schon wieder einen Monat her, seitdem ich das letzte Update geteilt habe. In dieser Zeit gab es einige Herausforderungen, die meinen Fortschritt beeinflusst haben. Zeitmangel, eine unglückliche Begegnung mit Krankheit und mehrere unerwartete Einsätze haben meine Pläne durcheinandergeworfen. Aber es gibt auch gute Neuigkeiten!",{"type":17,"tag":18,"props":562,"children":563},{},[564],{"type":33,"value":565},"Trotz der Widrigkeiten konnte ich einen großen Fortschritt erzielen. Mein Hauptaugenmerk lag auf der Umwandlung der bildbasierten OpenStreetMap-Karte (OSM) in eine vektorbasierte Version. Dieser Prozess wurde automatisiert und ist jetzt kostengünstig. Statt tagelanger Arbeit und teurer Software benötige ich jetzt nur noch 1 Stunde und 50 Minuten, um die gesamte Karte bei jedem Update zu konvertieren - dies geschieht in einem vollautomatisierten Prozess. Die Vektor-Karte bietet viele Vorteile: Sie lädt schneller, flackert weniger, lässt sich problemlos an das Design des Spiels anpassen und ist auch kostengünstiger im Betrieb.",{"type":17,"tag":18,"props":567,"children":568},{},[569],{"type":33,"value":570},"Ein weiterer entscheidender Punkt ist, dass `leitstelle.io nun nicht mehr auf den Raum DACH (Deutschland, Österreich, Schweiz) beschränkt ist, sondern die gesamte Welt abbilden kann. Dies war ein entscheidender Schritt, der zwar einige Tage Arbeit und etwa 20 € Lehrgeld gekostet hat, aber die Konvertierungskosten von jährlich 1200 € auf nur noch 1,50 € pro Update reduziert hat. Und hierbei besteht sogar die Möglichkeit, die Kosten durch partielle Updates der Weltkarte weiter zu senken.",{"type":17,"tag":18,"props":572,"children":573},{},[574],{"type":33,"value":575},"Als nächstes plane ich, die neue Datenbank online zu bringen und die Logik für das Generieren der Einsätze zu entwickeln. Die Kartenanpassung rückt vorerst in den Hintergrund, da andere Aspekte Priorität haben.",{"type":17,"tag":18,"props":577,"children":578},{},[579],{"type":33,"value":580},"Neben diesen technischen Fortschritten habe ich auch einige Gedanken über das Hosting des Projekts gemacht, da ich dabei bin, weitere Projekte zu konsolidieren. Die Skalierbarkeit und die Kosten sind wichtige Faktoren, die berücksichtigt werden müssen, da dies mehr Arbeit erfordert als nur die Lösung der Hosting-Probleme für das Spiel.",{"type":17,"tag":18,"props":582,"children":583},{},[584],{"type":33,"value":585},"Insgesamt war der letzte Monat zwar herausfordernd, aber auch sehr produktiv. Ich freue mich auf die nächsten Schritte und darauf, euch bald weitere Updates zu geben. Danke für eure Unterstützung!",{"title":8,"searchDepth":353,"depth":353,"links":587},[],"content:de:blog:2023:09:generating-tiles-for-the-world.md","de/blog/2023/09/generating-tiles-for-the-world.md",{"_path":591,"_dir":592,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":593,"description":594,"published_at":595,"body":596,"_type":362,"_id":632,"_source":364,"_file":633,"_extension":366},"/de/blog/2023/08/roles-for-the-discord-community","08","Mehr Individualität für die Discord-Community! ✨","Auf unserem Discord-Server können Mitglieder jetzt ihre Herkunft, Benachrichtigungen und BOS-Zugehörigkeit angeben, um gezielter zu interagieren.","2023-08-15",{"type":14,"children":597,"toc":630},[598,603,608,613,618],{"type":17,"tag":28,"props":599,"children":601},{"id":600},"mehr-individualität-für-die-discord-community",[602],{"type":33,"value":593},{"type":17,"tag":18,"props":604,"children":605},{},[606],{"type":33,"value":607},"Ich habe kürzlich auf unserem Discord-Server neue Rollen eingeführt, die euch die Möglichkeit bieten, eure geografische Herkunft anzugeben. Diese Funktion ermöglicht es euch, schnell Gleichgesinnte aus demselben Bundesland kennenzulernen. Gleichzeitig hilft es mir, gezieltere Fragen zu stellen, die spezifisch mit eurem Bundesland in Verbindung stehen.",{"type":17,"tag":18,"props":609,"children":610},{},[611],{"type":33,"value":612},"Mit den individuellen Benachrichtigungseinstellungen könnt ihr präzise festlegen, welche Mitteilungen ihr erhalten möchtet. So bleibt ihr stets auf dem Laufenden, ohne dabei unnötig abgelenkt zu werden.",{"type":17,"tag":18,"props":614,"children":615},{},[616],{"type":33,"value":617},"Zusätzlich habt ihr nun auch die Möglichkeit, eure Mitgliedschaft in bestimmten BOS (Behörden und Organisationen mit Sicherheitsaufgaben) anzugeben, zu denen ihr gehört.",{"type":17,"tag":18,"props":619,"children":620},{},[621,623,628],{"type":33,"value":622},"Ihr könnt eure Rollen bequem selbst verwalten, indem ihr ",{"type":17,"tag":41,"props":624,"children":625},{},[626],{"type":33,"value":627},"#Browse Channels",{"type":33,"value":629}," besucht. Dies ermöglicht euch, eure Teilnahme an unserem Server noch individueller zu gestalten und die für euch relevanten Informationen optimal zu nutzen.",{"title":8,"searchDepth":353,"depth":353,"links":631},[],"content:de:blog:2023:08:roles-for-the-discord-community.md","de/blog/2023/08/roles-for-the-discord-community.md",{"_path":635,"_dir":592,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":636,"description":637,"published_at":638,"cover":639,"body":640,"_type":362,"_id":697,"_source":364,"_file":698,"_extension":366},"/de/blog/2023/08/database-welcome-and-party","Datenbank wechsel, herzliches Willkommen und Dorffest","Bereits zu Projektbeginn habe ich im Hintergrund am Backend gearbeitet, um die Grundlage der API und Spielarchitektur zu schaffen, wodurch nun die API online ist und es möglich ist, alle Stationen anzuzeigen sowie Details einzelner Stationen abzurufen.","2023-08-11","/images/blog/07-database.png",{"type":14,"children":641,"toc":695},[642,648,654,659,664,669,677],{"type":17,"tag":18,"props":643,"children":644},{},[645],{"type":17,"tag":22,"props":646,"children":647},{"alt":8,"src":639},[],{"type":17,"tag":28,"props":649,"children":651},{"id":650},"datenbank-wechsel-herzliches-willkommen-und-das-dorffest",[652],{"type":33,"value":653},"Datenbank wechsel, herzliches Willkommen und das Dorffest",{"type":17,"tag":18,"props":655,"children":656},{},[657],{"type":33,"value":658},"Gestern habe Ich die Datenbankschicht aktualisiert (kein MySQL mehr) und werde diese Verbesserung bald auf dem Alpha Server deployen. Ein wichtiger Schritt, um das Projekt voranzutreiben und eine gute Basis bereit zustellen - keiner will lange Ladezeiten, richtig?",{"type":17,"tag":18,"props":660,"children":661},{},[662],{"type":33,"value":663},"Vorab möchte Ich auf unser alljährliches Dorffest hinweisen, das heute bis Sonntag stattfindet. Die Feuerwehr richtet das Fest aus, daher wird es an diesem Wochenende etwas ruhiger in Bezug auf größere Updates.",{"type":17,"tag":18,"props":665,"children":666},{},[667],{"type":33,"value":668},"Ein herzliches Willkommen an alle Neuen in unserer Community! Ich freue mich über euer Interesse und eure Teilnahme. Trotz des Festes stehe ich im Chat für Fragen und Austausch zur Verfügung.",{"type":17,"tag":18,"props":670,"children":671},{},[672],{"type":17,"tag":160,"props":673,"children":674},{},[675],{"type":33,"value":676},"Eure Meinung ist gefragt",{"type":17,"tag":18,"props":678,"children":679},{},[680,682,687,689,693],{"type":33,"value":681},"Teilt eure Ideen und Anregungen im ",{"type":17,"tag":41,"props":683,"children":684},{},[685],{"type":33,"value":686},"#ideen",{"type":33,"value":688},"-Kanal. Eure Rückmeldungen tragen dazu bei, das Spiel zu verbessern – dabei spielt es keine Rolle, ob es sich um Wünsche für ",{"type":17,"tag":41,"props":690,"children":691},{},[692],{"type":33,"value":93},{"type":33,"value":694}," oder um Aspekte handelt, die euch weniger zusagen.",{"title":8,"searchDepth":353,"depth":353,"links":696},[],"content:de:blog:2023:08:database-welcome-and-party.md","de/blog/2023/08/database-welcome-and-party.md",{"_path":700,"_dir":592,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":701,"description":702,"published_at":703,"cover":704,"body":705,"_type":362,"_id":730,"_source":364,"_file":731,"_extension":366},"/de/blog/2023/08/new-blog-website","Der Blog in neuer Pracht","Die Website hat jetzt einen Blog für Neuigkeiten, die auch außerhalb von Discord verfolgt werden können, während der Discord-Server für Diskussionen bestehen bleibt.","2023-08-09","/images/blog/06-new-website.png",{"type":14,"children":706,"toc":728},[707,713,718,723],{"type":17,"tag":18,"props":708,"children":709},{},[710],{"type":17,"tag":22,"props":711,"children":712},{"alt":8,"src":704},[],{"type":17,"tag":28,"props":714,"children":716},{"id":715},"der-blog-in-neuer-pracht",[717],{"type":33,"value":701},{"type":17,"tag":18,"props":719,"children":720},{},[721],{"type":33,"value":722},"Die Website hat nun auch einen Blog! Die aktuellen Neuigkeiten werden nun nicht nur auf Discord veröffentlicht, sondern auch direkt auf der Website. Dies ermöglicht jedem, die neuesten Updates außerhalb von Discord zu verfolgen.",{"type":17,"tag":18,"props":724,"children":725},{},[726],{"type":33,"value":727},"Trotz dieser Erweiterung bleibt der Discord-Server weiterhin der Ort für Diskussionen und den Austausch von Ideen. Ich möchte vielfältige Kommunikationsmöglichkeiten bieten, um sicherzustellen, dass jeder auf dem Laufenden bleibt und sich aktiv beteiligen kann.",{"title":8,"searchDepth":353,"depth":353,"links":729},[],"content:de:blog:2023:08:new-blog-website.md","de/blog/2023/08/new-blog-website.md",{"_path":733,"_dir":592,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":734,"description":637,"published_at":735,"cover":736,"body":737,"_type":362,"_id":787,"_source":364,"_file":788,"_extension":366},"/de/blog/2023/08/api-goes-live","Erste API geht heute online 🌍","2023-08-06","/images/blog/05-api-goes-live.png",{"type":14,"children":738,"toc":785},[739,745,750,755,774],{"type":17,"tag":18,"props":740,"children":741},{},[742],{"type":17,"tag":22,"props":743,"children":744},{"alt":8,"src":736},[],{"type":17,"tag":28,"props":746,"children":748},{"id":747},"erste-api-geht-heute-online",[749],{"type":33,"value":734},{"type":17,"tag":18,"props":751,"children":752},{},[753],{"type":33,"value":754},"Bereits zu Beginn des Projekts habe ich im Hintergrund am Backend gearbeitet, um die Grundlage der API und der allgemeinen Spielarchitektur zu schaffen. Mit dem Ziel, schnell Ergebnisse präsentieren zu können, ist die API nun bereits online.",{"type":17,"tag":18,"props":756,"children":757},{},[758,760,765,767,772],{"type":33,"value":759},"Zu diesem Zeitpunkt ist es möglich, alle vorhandenen ",{"type":17,"tag":41,"props":761,"children":762},{},[763],{"type":33,"value":764},"Stations",{"type":33,"value":766}," anzuzeigen sowie die Details einer einzelnen ",{"type":17,"tag":41,"props":768,"children":769},{},[770],{"type":33,"value":771},"Station",{"type":33,"value":773}," (Station steht hier für eine Wache) abzurufen. Obwohl dies erst der Anfang ist, stellt es doch einen bedeutenden ersten Schritt dar.",{"type":17,"tag":18,"props":775,"children":776},{},[777,779],{"type":33,"value":778},"Ihr könnt euch die API unter folgendem Link ansehen: ",{"type":17,"tag":323,"props":780,"children":783},{"href":781,"rel":782},"https://alpha.api.leitstelle.io/api/stations",[327],[784],{"type":33,"value":781},{"title":8,"searchDepth":353,"depth":353,"links":786},[],"content:de:blog:2023:08:api-goes-live.md","de/blog/2023/08/api-goes-live.md",{"_path":790,"_dir":592,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":791,"description":792,"published_at":793,"cover":794,"body":795,"_type":362,"_id":825,"_source":364,"_file":826,"_extension":366},"/de/blog/2023/08/next-osrm-and-auth","Next: OSRM und Authentifizierung","Ich plane, einen Proof of Concept (POC) zu erstellen, um das Routing, die Echtzeitanzeige von Fahrzeugen im Backend und Frontend sowie die Fahrzeugsimulation mit OSRM zu testen, während ich gleichzeitig im Frontend Login- und Registrierungsmöglichkeiten integriere, um den POC nahtlos dorthin zu verlagern und die Gesamtfunktionalität des Projekts zu optimieren.","2023-08-05","/images/blog/04-next-osrm-and-auth.png",{"type":14,"children":796,"toc":823},[797,803,808,813,818],{"type":17,"tag":18,"props":798,"children":799},{},[800],{"type":17,"tag":22,"props":801,"children":802},{"alt":8,"src":794},[],{"type":17,"tag":28,"props":804,"children":806},{"id":805},"next-osrm-und-authentifizierung",[807],{"type":33,"value":791},{"type":17,"tag":18,"props":809,"children":810},{},[811],{"type":33,"value":812},"Meine nächsten Schritte beinhalten die Erstellung eines Proof of Concept (POC), bei dem ich zunächst das Routing und die Echtzeitanzeige von Fahrzeugen sowohl im Backend als auch im Frontend testen werde.",{"type":17,"tag":18,"props":814,"children":815},{},[816],{"type":33,"value":817},"Um dieses Ziel zu erreichen, plane ich die Implementierung von OSRM (Open Source Routing Machine) und werde gleichzeitig an einer Lösung für die Simulation von Fahrzeugen arbeiten. Dabei werde ich OSRM einsetzen und verschiedene Ansätze zur Fahrzeugsimulation ausprobieren, um die bestmöglichen Ergebnisse zu erzielen.",{"type":17,"tag":18,"props":819,"children":820},{},[821],{"type":33,"value":822},"Zusätzlich bereite ich das Frontend vor, indem ich Login- und Registrierungsmöglichkeiten einbaue. Dadurch werde ich in der Lage sein, den POC nahtlos dorthin zu verlagern und die gesamte Funktionalität des Projekts für eine ganzheitliche Prüfung bereitzustellen. Ich bin gespannt darauf, wie sich diese Fortschritte auf das Projekt auswirken werden, und freue mich darauf, sowohl die technische Umsetzung als auch die Nutzererfahrung zu optimieren.",{"title":8,"searchDepth":353,"depth":353,"links":824},[],"content:de:blog:2023:08:next-osrm-and-auth.md","de/blog/2023/08/next-osrm-and-auth.md",{"_path":828,"_dir":592,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":829,"description":830,"published_at":831,"cover":832,"body":833,"_type":362,"_id":864,"_source":364,"_file":865,"_extension":366},"/de/blog/2023/08/first-landing-page","Die 'Website' ist live ✨","Die provisorische Website ist online, Feedback ist willkommen, schnelle und praktische Ergebnisse stehen im Fokus.","2023-08-04","/images/blog/03-first-landing-page.png",{"type":14,"children":834,"toc":862},[835,841,847,852,857],{"type":17,"tag":18,"props":836,"children":837},{},[838],{"type":17,"tag":22,"props":839,"children":840},{"alt":8,"src":832},[],{"type":17,"tag":28,"props":842,"children":844},{"id":843},"die-website-ist-live",[845],{"type":33,"value":846},"Die \"Website\" ist live ✨",{"type":17,"tag":18,"props":848,"children":849},{},[850],{"type":33,"value":851},"Die vorläufige Website ist jetzt zugänglich! Natürlich ist sie kein Meisterwerk, aber sie erfüllt vorerst ihren Zweck. Eure Rückmeldungen sind äußerst wertvoll. Teilt mir bitte mit, wie ich die Seite für euch verbessern und welche Informationen ihr darauf finden möchtet.",{"type":17,"tag":18,"props":853,"children":854},{},[855],{"type":33,"value":856},"Im Gegensatz zu meinen üblichen Projekten ist mein Ziel hier, rasch und pragmatisch Ergebnisse zu erzielen.",{"type":17,"tag":18,"props":858,"children":859},{},[860],{"type":33,"value":861},"Ich arbeite bereits an einer zweiten Version dieser Website 👀",{"title":8,"searchDepth":353,"depth":353,"links":863},[],"content:de:blog:2023:08:first-landing-page.md","de/blog/2023/08/first-landing-page.md",{"_path":867,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":868,"description":869,"published_at":870,"body":871,"_type":362,"_id":908,"_source":364,"_file":909,"_extension":366},"/de/blog/2022/10/the-domain","Idee → Domain","Trotz mehrjährigem Zeitabstand zwischen Idee und Umsetzung sowie der üblichen Herausforderungen bei Projektplanung, hat sich die ursprüngliche Idee weiterentwickelt, wurde durch den Kauf einer Domain konkretisiert und lädt Interessierte ein, Teil eines feuerwehrbegeisterten Spieleprojekts zu werden.","2022-10-30",{"type":14,"children":872,"toc":906},[873,878,883,901],{"type":17,"tag":28,"props":874,"children":876},{"id":875},"idee-domain",[877],{"type":33,"value":868},{"type":17,"tag":18,"props":879,"children":880},{},[881],{"type":33,"value":882},"Wie man unschwer erkennen kann, liegen zwischen der Konzeption und der aktuellen Zeit einige Jahre. Jedes Projekt erfordert eingehende Überlegung und gründliche Planung, bevor es überhaupt in Angriff genommen werden kann. Darüber hinaus existieren Ideen oft lediglich auf dem Papier und werden möglicherweise niemals in die Tat umgesetzt.",{"type":17,"tag":18,"props":884,"children":885},{},[886,888,893,895,899],{"type":33,"value":887},"Trotzdem hat sich die ursprüngliche Idee weiterentwickelt und Ich habe mich dazu entschlossen, eine Domain zu erwerben. Dies stellt gewissermaßen den initialen Schritt für all meine Projekte dar und kann mittlerweile sogar als eine Art Hobby betrachtet werden. Ursprünglich hatte dieses Vorhaben bereits lange vor der eigentlichen Idee eine Domain, allerdings hatte Ich die geplante Adresse ",{"type":17,"tag":41,"props":889,"children":890},{},[891],{"type":33,"value":892},"firefighters.io",{"type":33,"value":894}," aus verschiedenen Gründen verkauft. Direkt nach dem Verkauf konnte Ich der Versuchung nicht widerstehen, nach einem adäquaten Ersatz zu suchen. So stieß Ich nach stundenlanger Recherche auf die Domain ",{"type":17,"tag":41,"props":896,"children":897},{},[898],{"type":33,"value":93},{"type":33,"value":900},".",{"type":17,"tag":18,"props":902,"children":903},{},[904],{"type":33,"value":905},"Die Auswahl der Domain markiert nun offiziell den Beginn dieses Projekts. Sie lädt Euch dazu ein, an dieser Reise teilzuhaben – sei es als Mitentwickler, potenzieller Spieler oder einfach als jemand, der die Leidenschaft für Feuerwehr und Spiele teilt.",{"title":8,"searchDepth":353,"depth":353,"links":907},[],"content:de:blog:2022:10:the-domain.md","de/blog/2022/10/the-domain.md",{"_path":911,"_dir":369,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":912,"description":913,"published_at":914,"body":915,"_type":362,"_id":991,"_source":364,"_file":992,"_extension":366},"/de/blog/2015/01/the-dream","Ein eigenes Feuerwehrspiel?","Ich träumte von einem eigenen Feuerwehrspiel, inspiriert durch bestehende Spiele, und lade nun ein, bei meinem Projekt leitstelle.io Teil dieser Vision zu werden, unterstützt durch meine Entwicklungs- und Spielerfahrung.","2015-01-01",{"type":14,"children":916,"toc":989},[917,922,950,955,980,985],{"type":17,"tag":28,"props":918,"children":920},{"id":919},"ein-eigenes-feuerwehrspiel",[921],{"type":33,"value":912},{"type":17,"tag":18,"props":923,"children":924},{},[925,927,932,933,937,938,942,944,948],{"type":33,"value":926},"Vor einigen Jahren begann in mir der Traum, ein eigenes Feuerwehrspiel zu entwickeln. Die fesselnde Welt von ",{"type":17,"tag":41,"props":928,"children":929},{},[930],{"type":33,"value":931},"Emergency 1-4",{"type":33,"value":47},{"type":17,"tag":41,"props":934,"children":935},{},[936],{"type":33,"value":52},{"type":33,"value":47},{"type":17,"tag":41,"props":939,"children":940},{},[941],{"type":33,"value":58},{"type":33,"value":943}," und zuletzt ",{"type":17,"tag":41,"props":945,"children":946},{},[947],{"type":33,"value":65},{"type":33,"value":949}," befeuerte meine Begeisterung für Feuerwehr und Spiele.",{"type":17,"tag":18,"props":951,"children":952},{},[953],{"type":33,"value":954},"Diese Spiele verstärkten meinen langgehegten Wunsch, ein realistisches Feuerwehrerlebnis zu erschaffen. Jetzt ist der Zeitpunkt gekommen, an dem ich euch herzlich einlade, Teil dieser aufregenden Reise zu werden und hautnah dabei zu sein, wie meine Vision Wirklichkeit wird.",{"type":17,"tag":18,"props":956,"children":957},{},[958,960,965,967,971,973,978],{"type":33,"value":959},"Mit jahrelanger Erfahrung in der Softwareentwicklung und meiner aktiven Mitwirkung im ",{"type":17,"tag":41,"props":961,"children":962},{},[963],{"type":33,"value":964},"Leitstellenspiel",{"type":33,"value":966}," bin Ich nun bereit das Projekt ",{"type":17,"tag":41,"props":968,"children":969},{},[970],{"type":33,"value":93},{"type":33,"value":972}," zu starten. Ich hatte auch das Privileg, eine Erweiterung namens ",{"type":17,"tag":41,"props":974,"children":975},{},[976],{"type":33,"value":977},"LSS-Manager",{"type":33,"value":979},"zu entwickeln, die von mehr als 10.000 Spielern verwendet wurde, die auch heute noch aktiv von mehreren Tausend Spielern genutzt wird.",{"type":17,"tag":18,"props":981,"children":982},{},[983],{"type":33,"value":984},"Mit diesem Hintergrund steht der erste Grundstein, um meine Leidenschaft mit euch zu teilen und diese Reise anzutreten. Euch regelmäßig über die Entwicklung auf dem Laufenden zu halten und diesen spannenden Weg gemeinsam zu gehen, ist mir äußerst wichtig. Gemeinsam werden wir das Feuerwehrspiel erschaffen, von dem wir immer geträumt haben. Lasst uns den Funken der Begeisterung entfachen und gemeinsam großartiges erschaffen. Seid dabei, wenn Träume zu Wirklichkeit werden!",{"type":17,"tag":18,"props":986,"children":987},{},[988],{"type":33,"value":351},{"title":8,"searchDepth":353,"depth":353,"links":990},[],"content:de:blog:2015:01:the-dream.md","de/blog/2015/01/the-dream.md",1793824785957]