[{"data":1,"prerenderedAt":1004},["Reactive",2],{"blog-index-en":3},[4,369,429,532,597,641,705,738,795,833,872,916],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":9,"description":10,"published_at":11,"cover":12,"body":13,"_type":364,"_id":365,"_source":366,"_file":367,"_extension":368},"/en/blog/2026/10/full-circle","10",false,"","Coming full circle","The browser game becomes a true firefighting game: dispatch and incident command in one, on a real map, with fire, water and co-op. Why I'm going back to the roots – and what I'm taking with me.","2026-10-28","/images/game/hero-nacht-1280.webp",{"type":14,"children":15,"toc":354},"root",[16,27,35,68,75,80,86,112,118,123,129,152,158,169,177,187,197,205,215,223,235,243,249,267,273,278,284,319,344,349],{"type":17,"tag":18,"props":19,"children":20},"element","p",{},[21],{"type":17,"tag":22,"props":23,"children":26},"img",{"alt":24,"src":25},"A turntable ladder at a burning house, firefighters at work","/images/game/post-house-fire-1280.webp",[],{"type":17,"tag":28,"props":29,"children":31},"h1",{"id":30},"coming-full-circle",[32],{"type":33,"value":34},"text","Coming full circle 🚒",{"type":17,"tag":18,"props":36,"children":37},{},[38,40,46,48,53,54,59,61,66],{"type":33,"value":39},"In 2015 I wrote here for the first time about my dream: a firefighting game of my own. Fuelled by ",{"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}," and later ",{"type":17,"tag":41,"props":62,"children":63},{},[64],{"type":33,"value":65},"Leitstellenspiel.de",{"type":33,"value":67},". A good ten years later, that dream has taken a turn – back to where it started.",{"type":17,"tag":69,"props":70,"children":72},"h2",{"id":71},"what-happened-during-the-break",[73],{"type":33,"value":74},"What happened during the break",{"type":17,"tag":18,"props":76,"children":77},{},[78],{"type":33,"value":79},"In early 2025 I paused the project to train as an industrial firefighter (Werkfeuerwehrmann). That time changed how I see the game. Anyone who has stood at an incident knows: nothing happens on scene by itself. Someone has to dismount, fetch the equipment, build the water supply and make the calls. That was exactly what the game was missing.",{"type":17,"tag":69,"props":81,"children":83},{"id":82},"what-the-browser-version-was",[84],{"type":33,"value":85},"What the browser version was",{"type":17,"tag":18,"props":87,"children":88},{},[89,91,96,98,103,105,110],{"type":33,"value":90},"Until now, ",{"type":17,"tag":41,"props":92,"children":93},{},[94],{"type":33,"value":95},"leitstelle.io",{"type":33,"value":97}," was a browser game: Laravel, Vue and MapLibre, a map of any place you like, vehicles as icons driving along real roads. Working with ",{"type":17,"tag":41,"props":99,"children":100},{},[101],{"type":33,"value":102},"OSRM",{"type":33,"value":104}," and ",{"type":17,"tag":41,"props":106,"children":107},{},[108],{"type":33,"value":109},"Overpass",{"type":33,"value":111},", the custom map tiles, the map debugging tool – all of it taught me an incredible amount.",{"type":17,"tag":113,"props":114,"children":117},"video-slot",{"caption":115,"poster":116},"The last state of the browser version","/images/blog/10-first-steps-with-osrm.png",[],{"type":17,"tag":18,"props":119,"children":120},{},[121],{"type":33,"value":122},"But honestly, it was a dispatch game like many others: you dispatch, a timer runs out, done. Exciting for a few calls, but not the game I dreamed of in 2015.",{"type":17,"tag":69,"props":124,"children":126},{"id":125},"the-turn",[127],{"type":33,"value":128},"The turn",{"type":17,"tag":18,"props":130,"children":131},{},[132,134,138,139,143,145,150],{"type":33,"value":133},"My passion always came from two sides: the dispatch centre from ",{"type":17,"tag":41,"props":135,"children":136},{},[137],{"type":33,"value":65},{"type":33,"value":104},{"type":17,"tag":41,"props":140,"children":141},{},[142],{"type":33,"value":58},{"type":33,"value":144},", and the incident scene from ",{"type":17,"tag":41,"props":146,"children":147},{},[148],{"type":33,"value":149},"Emergency",{"type":33,"value":151},". Leitstelle now brings both together and goes beyond them. You take the emergency call, alert the right vehicles from real stations – and when they arrive, you take over yourself.",{"type":17,"tag":69,"props":153,"children":155},{"id":154},"what-the-game-is-now",[156],{"type":33,"value":157},"What the game is now",{"type":17,"tag":18,"props":159,"children":160},{},[161,167],{"type":17,"tag":162,"props":163,"children":164},"strong",{},[165],{"type":33,"value":166},"Real map, real data.",{"type":33,"value":168}," The entire district of Freising, built from OpenStreetMap and the Bavarian terrain model: 83 fire stations, 3,716 hydrants and more than 130 vehicles modelled on the real brigades. Calls come in with real addresses.",{"type":17,"tag":18,"props":170,"children":171},{},[172],{"type":17,"tag":22,"props":173,"children":176},{"alt":174,"src":175},"An HLF responding at blue hour","/images/game/post-blue-hour-drive-1280.webp",[],{"type":17,"tag":18,"props":178,"children":179},{},[180,185],{"type":17,"tag":162,"props":181,"children":182},{},[183],{"type":33,"value":184},"Dispatcher and commander.",{"type":33,"value":186}," Vehicles wait for their crew, drive real roads and report their status like on the radio. On scene you dismount the crew, fetch hose, cutter or saw from the truck and set up the turntable ladder.",{"type":17,"tag":18,"props":188,"children":189},{},[190,195],{"type":17,"tag":162,"props":191,"children":192},{},[193],{"type":33,"value":194},"Fire and water, simulated.",{"type":33,"value":196}," A fire grows when too little water reaches it. You lay the supply line to a hydrant, draft from a stream or build long hose lays truck to truck.",{"type":17,"tag":18,"props":198,"children":199},{},[200],{"type":17,"tag":22,"props":201,"children":204},{"alt":202,"src":203},"The water supply from the stream is up while the next alarm comes in","/images/game/post-draft-line-1280.webp",[],{"type":17,"tag":18,"props":206,"children":207},{},[208,213],{"type":17,"tag":162,"props":209,"children":210},{},[211],{"type":33,"value":212},"Together with friends.",{"type":33,"value":214}," You play co-op in the same world. Everyone takes charge of their own vehicles, and the game only pauses when everyone agrees.",{"type":17,"tag":18,"props":216,"children":217},{},[218],{"type":17,"tag":22,"props":219,"children":222},{"alt":220,"src":221},"Three players in co-op with the player list and a pause vote","/images/game/post-coop-1280.webp",[],{"type":17,"tag":18,"props":224,"children":225},{},[226,228,233],{"type":33,"value":227},"And because bugs are part of development, there's ",{"type":17,"tag":41,"props":229,"children":230},{},[231],{"type":33,"value":232},"Summi",{"type":33,"value":234},": a little drone with big eyes that lets you report bugs right from inside the game.",{"type":17,"tag":18,"props":236,"children":237},{},[238],{"type":17,"tag":22,"props":239,"children":242},{"alt":240,"src":241},"Summi, the bug-report drone, as a 3D model","/images/game/post-summi-1280.webp",[],{"type":17,"tag":69,"props":244,"children":246},{"id":245},"new-tech-old-knowledge",[247],{"type":33,"value":248},"New tech, old knowledge",{"type":17,"tag":18,"props":250,"children":251},{},[252,254,259,260,265],{"type":33,"value":253},"Leitstelle no longer runs in the browser. It's a desktop game for macOS, Windows and Linux, built with ",{"type":17,"tag":41,"props":255,"children":256},{},[257],{"type":33,"value":258},"Rust",{"type":33,"value":104},{"type":17,"tag":41,"props":261,"children":262},{},[263],{"type":33,"value":264},"Bevy",{"type":33,"value":266},". None of the old PHP code survived, but a lot of the knowledge did: the research on stations and vehicles, the logic behind alarm keywords and dispatch, the ideas around reconnaissance and calling in more units. The browser version wasn't a detour, it was the foundation.",{"type":17,"tag":69,"props":268,"children":270},{"id":269},"freising-first-then-germany-and-beyond",[271],{"type":33,"value":272},"Freising first, then Germany and beyond",{"type":17,"tag":18,"props":274,"children":275},{},[276],{"type":33,"value":277},"The first district is Freising. I know it well, and every detail there can be checked. The technology behind it, though, is built for the whole of Germany – and beyond.",{"type":17,"tag":69,"props":279,"children":281},{"id":280},"whats-next",[282],{"type":33,"value":283},"What's next",{"type":17,"tag":285,"props":286,"children":287},"ul",{},[288,294,299,304,309,314],{"type":17,"tag":289,"props":290,"children":291},"li",{},[292],{"type":33,"value":293},"calls that are reported wrongly, and reconnaissance that shows what's really going on",{"type":17,"tag":289,"props":295,"children":296},{},[297],{"type":33,"value":298},"wind that spreads fires to neighbouring buildings",{"type":17,"tag":289,"props":300,"children":301},{},[302],{"type":33,"value":303},"a living world where traffic forms an emergency lane",{"type":17,"tag":289,"props":305,"children":306},{},[307],{"type":33,"value":308},"rescue service, police and THW",{"type":17,"tag":289,"props":310,"children":311},{},[312],{"type":33,"value":313},"a persistent world that keeps running around the clock",{"type":17,"tag":289,"props":315,"children":316},{},[317],{"type":33,"value":318},"a companion app for on the go",{"type":17,"tag":18,"props":320,"children":321},{},[322,324,333,335,342],{"type":33,"value":323},"There's deliberately no date yet. I'll announce the first playtests on ",{"type":17,"tag":325,"props":326,"children":330},"a",{"href":327,"rel":328},"https://discord.gg/cdRq3bztJu",[329],"nofollow",[331],{"type":33,"value":332},"Discord",{"type":33,"value":334}," and in the ",{"type":17,"tag":325,"props":336,"children":339},{"href":337,"rel":338},"https://forum.leitstelle.io",[329],[340],{"type":33,"value":341},"forum",{"type":33,"value":343}," first. Drop by, tell me about your stations and vehicles, and let's build the firefighting game we've always dreamed of – together.",{"type":17,"tag":18,"props":345,"children":346},{},[347],{"type":33,"value":348},"Coming full circle. See you soon!",{"type":17,"tag":18,"props":350,"children":351},{},[352],{"type":33,"value":353},"André",{"title":8,"searchDepth":355,"depth":355,"links":356},2,[357,358,359,360,361,362,363],{"id":71,"depth":355,"text":74},{"id":82,"depth":355,"text":85},{"id":125,"depth":355,"text":128},{"id":154,"depth":355,"text":157},{"id":245,"depth":355,"text":248},{"id":269,"depth":355,"text":272},{"id":280,"depth":355,"text":283},"markdown","content:en:blog:2026:10:full-circle.md","content","en/blog/2026/10/full-circle.md","md",{"_path":370,"_dir":371,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":372,"description":373,"published_at":374,"body":375,"_type":364,"_id":427,"_source":366,"_file":428,"_extension":368},"/en/blog/2025/01/a-new-career","01","Short break – but It's not over!","Despite a short break, the project remains alive! During my training, I’ll gather new ideas and perspectives that will help move the project forward.","2025-02-15",{"type":14,"children":376,"toc":425},[377,382,387,392,410,415,420],{"type":17,"tag":28,"props":378,"children":380},{"id":379},"short-break-but-its-not-over",[381],{"type":33,"value":372},{"type":17,"tag":18,"props":383,"children":384},{},[385],{"type":33,"value":386},"Since December 2024, I’ve been on an entirely new professional path: after my time as a Senior Software Engineer, I’ve taken on a new challenge as a firefighter. My training in this field starts on March 17, 2025, and will last until July 25, 2025.",{"type":17,"tag":18,"props":388,"children":389},{},[390],{"type":33,"value":391},"This intensive period will require my full attention, which means I will be temporarily pausing the project. But don’t worry – this is not a goodbye message, just a brief break! The project is very dear to me, and I’m excited to continue working on it with renewed energy after my training.",{"type":17,"tag":18,"props":393,"children":394},{},[395,397,402,403,408],{"type":33,"value":396},"During this time, I’ll still be active on the ",{"type":17,"tag":325,"props":398,"children":400},{"href":337,"rel":399},[329],[401],{"type":33,"value":341},{"type":33,"value":104},{"type":17,"tag":325,"props":404,"children":406},{"href":327,"rel":405},[329],[407],{"type":33,"value":332},{"type":33,"value":409},". I encourage you to share your ideas, discuss new features, or simply chat about firefighting topics. The community is a central part, and I’m looking forward to staying in touch with all of you during my training.",{"type":17,"tag":18,"props":411,"children":412},{},[413],{"type":33,"value":414},"This break also gives me the opportunity to gather new inspirations and insights from my training, which may later be incorporated into the project. I’m curious to see what new perspectives will emerge!",{"type":17,"tag":18,"props":416,"children":417},{},[418],{"type":33,"value":419},"So, stay tuned, join the discussions, and let’s shape the future together. Thank you for your support – I’m looking forward to everything that’s to come!",{"type":17,"tag":18,"props":421,"children":422},{},[423],{"type":33,"value":424},"See you soon, and best regards!",{"title":8,"searchDepth":355,"depth":355,"links":426},[],"content:en:blog:2025:01:a-new-career.md","en/blog/2025/01/a-new-career.md",{"_path":430,"_dir":371,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":431,"description":432,"published_at":433,"cover":116,"body":434,"_type":364,"_id":530,"_source":366,"_file":531,"_extension":368},"/en/blog/2024/01/first-steps-with-osrm","First Mission and Initial Steps with OSRM","From the initial steps with OSRM to the development of a custom Map Debugging Tool and a glimpse into the integration of Overpass.","2024-01-08",{"type":14,"children":435,"toc":528},[436,442,448,459,471,476,487,512,523],{"type":17,"tag":18,"props":437,"children":438},{},[439],{"type":17,"tag":22,"props":440,"children":441},{"alt":8,"src":116},[],{"type":17,"tag":28,"props":443,"children":445},{"id":444},"first-mission-and-initial-steps-with-osrm",[446],{"type":33,"value":447},"First Mission and Initial Steps with OSRM 📚",{"type":17,"tag":18,"props":449,"children":450},{},[451,453,457],{"type":33,"value":452},"In the past few months, my main focus has been on customer projects, which prevented me from delving deeper into the development of the game. However, with the turn of the year and the completion of other projects, I was able to redirect my attention to the advancements of ",{"type":17,"tag":41,"props":454,"children":455},{},[456],{"type":33,"value":95},{"type":33,"value":458}," and make progress.",{"type":17,"tag":18,"props":460,"children":461},{},[462,464,469],{"type":33,"value":463},"The first stage of this development phase led me to engage with OSRM (Open Source Routing Machine). In the process, I even developed my own Map Debugging Tool, allowing for a more visual representation of often cryptic geometries, such as ",{"type":17,"tag":41,"props":465,"children":466},{},[467],{"type":33,"value":468},"allfHqivfAEERa@@...[jBUnAIZQl@",{"type":33,"value":470}," (see the screenshot above).",{"type":17,"tag":18,"props":472,"children":473},{},[474],{"type":33,"value":475},"To deepen my knowledge of working with OSRM, I took an in-depth look. This allowed me to better understand routing and real-time vehicle display in both the backend and frontend, enabling me to make corresponding optimizations. However, it's currently only a prototype not yet suitable for integration into the game.",{"type":17,"tag":18,"props":477,"children":478},{},[479,481,485],{"type":33,"value":480},"To more effectively test routing, it was necessary to generate a mission near a station—even if initially it was just an empty mission. It became evident that missions should not only arise in the immediate vicinity of a station but also have a connection to the selected location. This led to the realization that another tool—namely ",{"type":17,"tag":41,"props":482,"children":483},{},[484],{"type":33,"value":109},{"type":33,"value":486},"—will be used in the near future.",{"type":17,"tag":18,"props":488,"children":489},{},[490,492,496,498,504,506,510],{"type":33,"value":491},"I have already extensively explored ",{"type":17,"tag":41,"props":493,"children":494},{},[495],{"type":33,"value":109},{"type":33,"value":497}," on ",{"type":17,"tag":325,"props":499,"children":502},{"href":500,"rel":501},"https://bos.wiki",[329],[503],{"type":33,"value":500},{"type":33,"value":505},". Therefore, the integration into the current prototype should not take too much time. With ",{"type":17,"tag":41,"props":507,"children":508},{},[509],{"type":33,"value":109},{"type":33,"value":511},", it is easy to determine Points of Interest (POI) based on a point on the map. This way, it can be avoided that, for example, a residential fire mission is placed right in the middle of the highway.",{"type":17,"tag":18,"props":513,"children":514},{},[515,517,521],{"type":33,"value":516},"Apart from technical progress, I have delved deeply into the architectural and concrete development of ",{"type":17,"tag":41,"props":518,"children":519},{},[520],{"type":33,"value":95},{"type":33,"value":522},". My considerations extended not only to expanding game functionalities but also to the implementation of individual parts of the project. Special attention was given to structuring and development to ensure an efficient and sustainable implementation.",{"type":17,"tag":18,"props":524,"children":525},{},[526],{"type":33,"value":527},"Wishing you all a Happy New Year! Until next time!",{"title":8,"searchDepth":355,"depth":355,"links":529},[],"content:en:blog:2024:01:first-steps-with-osrm.md","en/blog/2024/01/first-steps-with-osrm.md",{"_path":533,"_dir":534,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":535,"description":536,"published_at":537,"cover":538,"body":539,"_type":364,"_id":595,"_source":366,"_file":596,"_extension":368},"/en/blog/2023/09/generating-tiles-for-the-world","09","From €1200 to €1.50: The Map Conversion That Changed Everything! 🌍","In the past month, significant progress has been made, including the automation of cost-effective conversion from image-based OpenStreetMap (OSM) maps to vector form. This not only enables global map coverage but also reduces conversion costs from €1200 to €1.50 per update.","2023-09-11","/images/blog/09-cost-saving-map-conversion.png",{"type":14,"children":540,"toc":593},[541,547,552,557,562,567,578,583,588],{"type":17,"tag":18,"props":542,"children":543},{},[544],{"type":17,"tag":22,"props":545,"children":546},{"alt":8,"src":538},[],{"type":17,"tag":28,"props":548,"children":550},{"id":549},"from-1200-to-150-the-map-conversion-that-changed-everything",[551],{"type":33,"value":535},{"type":17,"tag":18,"props":553,"children":554},{},[555],{"type":33,"value":556},"Hello everyone!",{"type":17,"tag":18,"props":558,"children":559},{},[560],{"type":33,"value":561},"It's been almost a month since I shared the last update. In this time, there have been some challenges that have influenced my progress. Time constraints, an unfortunate encounter with illness, and several unexpected incidents disrupted my plans. But there's also good news!",{"type":17,"tag":18,"props":563,"children":564},{},[565],{"type":33,"value":566},"Despite the adversities, I have achieved significant progress. My main focus was on converting the image-based OpenStreetMap (OSM) map into a vector-based version. This process has been automated and is now cost-effective. Instead of days of work and expensive software, I now only need 1 hour and 50 minutes to convert the entire map with each update—this happens in a fully automated process. The vector map offers many advantages: it loads faster, flickers less, seamlessly adapts to the game's design, and is also more cost-effective to operate.",{"type":17,"tag":18,"props":568,"children":569},{},[570,572,576],{"type":33,"value":571},"Another crucial point is that ",{"type":17,"tag":41,"props":573,"children":574},{},[575],{"type":33,"value":95},{"type":33,"value":577}," is no longer limited to the DACH region (Germany, Austria, Switzerland) but can now represent the entire world. This was a pivotal step that, while costing a few days of work and approximately €20 in trial and error, reduced conversion costs from €1200 annually to just €1.50 per update. There's even the potential to further lower costs through partial updates of the world map.",{"type":17,"tag":18,"props":579,"children":580},{},[581],{"type":33,"value":582},"Next, I plan to launch the new database online and develop the logic for generating missions. Map customization takes a back seat for now as other aspects take priority.",{"type":17,"tag":18,"props":584,"children":585},{},[586],{"type":33,"value":587},"In addition to these technical advancements, I have also contemplated hosting the project as I consolidate more projects. Scalability and costs are crucial factors to consider, as it involves more work than just solving hosting issues for the game.",{"type":17,"tag":18,"props":589,"children":590},{},[591],{"type":33,"value":592},"Overall, the last month has been challenging but very productive. I look forward to the next steps and providing you with more updates soon. Thank you for your support!",{"title":8,"searchDepth":355,"depth":355,"links":594},[],"content:en:blog:2023:09:generating-tiles-for-the-world.md","en/blog/2023/09/generating-tiles-for-the-world.md",{"_path":598,"_dir":599,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":600,"description":601,"published_at":602,"body":603,"_type":364,"_id":639,"_source":366,"_file":640,"_extension":368},"/en/blog/2023/08/roles-for-the-discord-community","08","More Individuality for the Discord Community! ✨","On our Discord server, members can now specify their location, notifications, and affiliation with BOS (Authorities and Organizations with Security Tasks) for more targeted interactions.","2023-08-15",{"type":14,"children":604,"toc":637},[605,610,615,620,625],{"type":17,"tag":28,"props":606,"children":608},{"id":607},"more-individuality-for-the-discord-community",[609],{"type":33,"value":600},{"type":17,"tag":18,"props":611,"children":612},{},[613],{"type":33,"value":614},"I recently introduced new roles on our Discord server, giving you the opportunity to specify your geographical location. This feature allows you to quickly connect with like-minded individuals from the same state or region. At the same time, it helps me ask more targeted questions specifically related to your state or region.",{"type":17,"tag":18,"props":616,"children":617},{},[618],{"type":33,"value":619},"With individual notification settings, you can precisely define which messages you want to receive. This way, you stay informed without unnecessary distractions.",{"type":17,"tag":18,"props":621,"children":622},{},[623],{"type":33,"value":624},"Additionally, you now have the option to indicate your membership in specific BOS (Authorities and Organizations with Security Tasks) that you belong to.",{"type":17,"tag":18,"props":626,"children":627},{},[628,630,635],{"type":33,"value":629},"You can conveniently manage your roles by visiting ",{"type":17,"tag":41,"props":631,"children":632},{},[633],{"type":33,"value":634},"#Browse Channels",{"type":33,"value":636},". This allows you to make your participation on our server even more individualized and leverage the information that is most relevant to you.",{"title":8,"searchDepth":355,"depth":355,"links":638},[],"content:en:blog:2023:08:roles-for-the-discord-community.md","en/blog/2023/08/roles-for-the-discord-community.md",{"_path":642,"_dir":599,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":643,"description":644,"published_at":645,"cover":646,"body":647,"_type":364,"_id":703,"_source":366,"_file":704,"_extension":368},"/en/blog/2023/08/database-welcome-and-party","Database Switch, Warm Welcome, and Village Festival","Since the beginning of the project, I have been working behind the scenes on the backend to establish the foundation of the API and game architecture. Now, the API is live, allowing the display of all stations and retrieval of details for individual stations.","2023-08-11","/images/blog/07-database.png",{"type":14,"children":648,"toc":701},[649,655,660,665,670,675,683],{"type":17,"tag":18,"props":650,"children":651},{},[652],{"type":17,"tag":22,"props":653,"children":654},{"alt":8,"src":646},[],{"type":17,"tag":28,"props":656,"children":658},{"id":657},"database-switch-warm-welcome-and-village-festival",[659],{"type":33,"value":643},{"type":17,"tag":18,"props":661,"children":662},{},[663],{"type":33,"value":664},"Yesterday, I updated the database layer (no more MySQL) and will soon deploy this improvement on the Alpha Server. An important step to advance the project and provide a solid foundation—no one likes long loading times, right?",{"type":17,"tag":18,"props":666,"children":667},{},[668],{"type":33,"value":669},"Before diving into details, I want to highlight our annual village festival taking place from today until Sunday. The fire department is hosting the festival, so there will be a bit of a lull in terms of major updates this weekend.",{"type":17,"tag":18,"props":671,"children":672},{},[673],{"type":33,"value":674},"A warm welcome to all newcomers in our community! I appreciate your interest and participation. Despite the festival, I am available in the chat for any questions and discussions.",{"type":17,"tag":18,"props":676,"children":677},{},[678],{"type":17,"tag":162,"props":679,"children":680},{},[681],{"type":33,"value":682},"Your Opinion Matters",{"type":17,"tag":18,"props":684,"children":685},{},[686,688,693,695,699],{"type":33,"value":687},"Share your ideas and suggestions in the ",{"type":17,"tag":41,"props":689,"children":690},{},[691],{"type":33,"value":692},"#ideas",{"type":33,"value":694}," channel. Your feedback contributes to improving the game—whether it's about wishes for ",{"type":17,"tag":41,"props":696,"children":697},{},[698],{"type":33,"value":95},{"type":33,"value":700}," or aspects that you find less appealing.",{"title":8,"searchDepth":355,"depth":355,"links":702},[],"content:en:blog:2023:08:database-welcome-and-party.md","en/blog/2023/08/database-welcome-and-party.md",{"_path":706,"_dir":599,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":707,"description":708,"published_at":709,"cover":710,"body":711,"_type":364,"_id":736,"_source":366,"_file":737,"_extension":368},"/en/blog/2023/08/new-blog-website","The Blog in New Splendor","The website now features a blog for news, allowing updates to be tracked outside of Discord, while the Discord server remains a space for discussions.","2023-08-09","/images/blog/06-new-website.png",{"type":14,"children":712,"toc":734},[713,719,724,729],{"type":17,"tag":18,"props":714,"children":715},{},[716],{"type":17,"tag":22,"props":717,"children":718},{"alt":8,"src":710},[],{"type":17,"tag":28,"props":720,"children":722},{"id":721},"the-blog-in-new-splendor",[723],{"type":33,"value":707},{"type":17,"tag":18,"props":725,"children":726},{},[727],{"type":33,"value":728},"The website now boasts a new blog! Current news will not only be published on Discord but also directly on the website. This enables everyone to stay updated on the latest developments outside of Discord.",{"type":17,"tag":18,"props":730,"children":731},{},[732],{"type":33,"value":733},"Despite this expansion, the Discord server will continue to be the hub for discussions and the exchange of ideas. I aim to provide diverse communication channels to ensure that everyone stays informed and can actively participate.",{"title":8,"searchDepth":355,"depth":355,"links":735},[],"content:en:blog:2023:08:new-blog-website.md","en/blog/2023/08/new-blog-website.md",{"_path":739,"_dir":599,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":740,"description":644,"published_at":741,"cover":742,"body":743,"_type":364,"_id":793,"_source":366,"_file":794,"_extension":368},"/en/blog/2023/08/api-goes-live","First API Goes Live Today 🌍","2023-08-06","/images/blog/05-api-goes-live.png",{"type":14,"children":744,"toc":791},[745,751,756,761,780],{"type":17,"tag":18,"props":746,"children":747},{},[748],{"type":17,"tag":22,"props":749,"children":750},{"alt":8,"src":742},[],{"type":17,"tag":28,"props":752,"children":754},{"id":753},"first-api-goes-live-today",[755],{"type":33,"value":740},{"type":17,"tag":18,"props":757,"children":758},{},[759],{"type":33,"value":760},"Right from the start of the project, I've been working on the backend to create the foundation of the API and the overall game architecture. With the goal of quickly presenting results, the API is now live.",{"type":17,"tag":18,"props":762,"children":763},{},[764,766,771,773,778],{"type":33,"value":765},"At this point, it's possible to view all existing ",{"type":17,"tag":41,"props":767,"children":768},{},[769],{"type":33,"value":770},"Stations",{"type":33,"value":772}," and retrieve details for an individual ",{"type":17,"tag":41,"props":774,"children":775},{},[776],{"type":33,"value":777},"Station",{"type":33,"value":779}," (where a Station refers to a firefighting station). While this is just the beginning, it represents a significant first step.",{"type":17,"tag":18,"props":781,"children":782},{},[783,785],{"type":33,"value":784},"You can check out the API at the following link: ",{"type":17,"tag":325,"props":786,"children":789},{"href":787,"rel":788},"https://alpha.api.leitstelle.io/api/stations",[329],[790],{"type":33,"value":787},{"title":8,"searchDepth":355,"depth":355,"links":792},[],"content:en:blog:2023:08:api-goes-live.md","en/blog/2023/08/api-goes-live.md",{"_path":796,"_dir":599,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":797,"description":798,"published_at":799,"cover":800,"body":801,"_type":364,"_id":831,"_source":366,"_file":832,"_extension":368},"/en/blog/2023/08/next-osrm-and-auth","Next: OSRM and Authentication","I plan to create a Proof of Concept (POC) to test routing, real-time vehicle display in the backend and frontend, and vehicle simulation using OSRM. Simultaneously, I will integrate login and registration features in the frontend to seamlessly shift the POC there and optimize the overall functionality of the project.","2023-08-05","/images/blog/04-next-osrm-and-auth.png",{"type":14,"children":802,"toc":829},[803,809,814,819,824],{"type":17,"tag":18,"props":804,"children":805},{},[806],{"type":17,"tag":22,"props":807,"children":808},{"alt":8,"src":800},[],{"type":17,"tag":28,"props":810,"children":812},{"id":811},"next-osrm-and-authentication",[813],{"type":33,"value":797},{"type":17,"tag":18,"props":815,"children":816},{},[817],{"type":33,"value":818},"My upcoming steps involve creating a Proof of Concept (POC), where I will initially test routing and real-time vehicle display in both the backend and frontend.",{"type":17,"tag":18,"props":820,"children":821},{},[822],{"type":33,"value":823},"To achieve this goal, I plan to implement OSRM (Open Source Routing Machine) and simultaneously work on a solution for vehicle simulation. I will leverage OSRM and explore various approaches to vehicle simulation to achieve the best possible results.",{"type":17,"tag":18,"props":825,"children":826},{},[827],{"type":33,"value":828},"Additionally, I am preparing the frontend by incorporating login and registration features. This will enable me to seamlessly shift the POC there and provide the entire functionality of the project for a comprehensive evaluation. I am excited to see how these advancements will impact the project and look forward to optimizing both the technical implementation and user experience.",{"title":8,"searchDepth":355,"depth":355,"links":830},[],"content:en:blog:2023:08:next-osrm-and-auth.md","en/blog/2023/08/next-osrm-and-auth.md",{"_path":834,"_dir":599,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":835,"description":836,"published_at":837,"cover":838,"body":839,"_type":364,"_id":870,"_source":366,"_file":871,"_extension":368},"/en/blog/2023/08/first-landing-page","The 'Website' is live ✨","The provisional website is online, feedback is welcome, and the focus is on achieving quick and practical results.","2023-08-04","/images/blog/03-first-landing-page.png",{"type":14,"children":840,"toc":868},[841,847,853,858,863],{"type":17,"tag":18,"props":842,"children":843},{},[844],{"type":17,"tag":22,"props":845,"children":846},{"alt":8,"src":838},[],{"type":17,"tag":28,"props":848,"children":850},{"id":849},"the-website-is-live",[851],{"type":33,"value":852},"The \"Website\" is live ✨",{"type":17,"tag":18,"props":854,"children":855},{},[856],{"type":33,"value":857},"The provisional website is now accessible! It may not be a masterpiece, but it serves its purpose for now. Your feedback is extremely valuable. Please let me know how I can improve the site for you and what information you would like to find on it.",{"type":17,"tag":18,"props":859,"children":860},{},[861],{"type":33,"value":862},"In contrast to my usual projects, my goal here is to achieve results quickly and pragmatically.",{"type":17,"tag":18,"props":864,"children":865},{},[866],{"type":33,"value":867},"I'm already working on a second version of this website 👀",{"title":8,"searchDepth":355,"depth":355,"links":869},[],"content:en:blog:2023:08:first-landing-page.md","en/blog/2023/08/first-landing-page.md",{"_path":873,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":874,"description":875,"published_at":876,"body":877,"_type":364,"_id":914,"_source":366,"_file":915,"_extension":368},"/en/blog/2022/10/the-domain","Idea → Domain","Despite several years passing between the conception and implementation, along with the usual challenges in project planning, the original idea has evolved. It has been concretized through the acquisition of a domain and invites interested individuals to be part of a firefighting enthusiast game project.","2022-10-30",{"type":14,"children":878,"toc":912},[879,884,889,907],{"type":17,"tag":28,"props":880,"children":882},{"id":881},"idea-domain",[883],{"type":33,"value":874},{"type":17,"tag":18,"props":885,"children":886},{},[887],{"type":33,"value":888},"As can be easily seen, several years have passed between the conception and the current time. Every project requires thorough consideration and planning before it can even be initiated. Additionally, ideas often exist only on paper and may never be put into action.",{"type":17,"tag":18,"props":890,"children":891},{},[892,894,899,901,905],{"type":33,"value":893},"Nevertheless, the original idea has evolved, and I have decided to acquire a domain. This, in a way, represents the initial step for all my projects and can now even be considered a kind of hobby. Originally, this endeavor had a domain long before the actual idea, but for various reasons, I had sold the planned address ",{"type":17,"tag":41,"props":895,"children":896},{},[897],{"type":33,"value":898},"firefighters.io",{"type":33,"value":900},". Right after the sale, I couldn't resist the temptation to search for an adequate replacement. After hours of research, I came across the domain ",{"type":17,"tag":41,"props":902,"children":903},{},[904],{"type":33,"value":95},{"type":33,"value":906},".",{"type":17,"tag":18,"props":908,"children":909},{},[910],{"type":33,"value":911},"The selection of the domain now officially marks the beginning of this project. It invites you to participate in this journey—whether as a co-developer, potential player, or simply as someone who shares the passion for firefighting and games.",{"title":8,"searchDepth":355,"depth":355,"links":913},[],"content:en:blog:2022:10:the-domain.md","en/blog/2022/10/the-domain.md",{"_path":917,"_dir":371,"_draft":7,"_partial":7,"_locale":8,"_empty":7,"title":918,"description":919,"published_at":920,"body":921,"_type":364,"_id":1002,"_source":366,"_file":1003,"_extension":368},"/en/blog/2015/01/the-dream","A Personal Firefighting Game?","I dreamed of creating my own firefighting game, inspired by existing ones, and now invite you to be part of this vision at my project leitstelle.io, supported by my development and gaming experience.","2015-01-01",{"type":14,"children":922,"toc":1000},[923,928,960,965,991,996],{"type":17,"tag":28,"props":924,"children":926},{"id":925},"a-personal-firefighting-game",[927],{"type":33,"value":918},{"type":17,"tag":18,"props":929,"children":930},{},[931,933,938,940,945,946,951,953,958],{"type":33,"value":932},"A few years ago, the dream of developing my own firefighting game started within me. The captivating world of ",{"type":17,"tag":41,"props":934,"children":935},{},[936],{"type":33,"value":937},"Emergency 1-4,",{"type":33,"value":939}," ",{"type":17,"tag":41,"props":941,"children":942},{},[943],{"type":33,"value":944},"Feuerwache.net,",{"type":33,"value":939},{"type":17,"tag":41,"props":947,"children":948},{},[949],{"type":33,"value":950},"LstSim.de,",{"type":33,"value":952}," and most recently, ",{"type":17,"tag":41,"props":954,"children":955},{},[956],{"type":33,"value":957},"Leitstellenspiel.de,",{"type":33,"value":959}," fueled my enthusiasm for firefighting and gaming.",{"type":17,"tag":18,"props":961,"children":962},{},[963],{"type":33,"value":964},"These games intensified my long-standing desire to create a realistic firefighting experience. Now is the time when I warmly invite you to be part of this exciting journey and witness firsthand how my vision becomes a reality.",{"type":17,"tag":18,"props":966,"children":967},{},[968,970,975,977,982,984,989],{"type":33,"value":969},"With years of experience in software development and active participation in ",{"type":17,"tag":41,"props":971,"children":972},{},[973],{"type":33,"value":974},"Leitstellenspiel,",{"type":33,"value":976}," I am now ready to launch the project ",{"type":17,"tag":41,"props":978,"children":979},{},[980],{"type":33,"value":981},"leitstelle.io.",{"type":33,"value":983}," I also had the privilege of developing an extension called ",{"type":17,"tag":41,"props":985,"children":986},{},[987],{"type":33,"value":988},"LSS-Manager",{"type":33,"value":990},", which has been used by over 20,000 players and is still actively used by several thousand players today.",{"type":17,"tag":18,"props":992,"children":993},{},[994],{"type":33,"value":995},"With this background, the first cornerstone is laid to share my passion with you and embark on this journey. Keeping you regularly updated on the development and walking this exciting path together is of utmost importance to me. Together, we will create the firefighting game we've always dreamed of. Let's ignite the spark of enthusiasm and create something great together. Join me as dreams turn into reality!",{"type":17,"tag":18,"props":997,"children":998},{},[999],{"type":33,"value":353},{"title":8,"searchDepth":355,"depth":355,"links":1001},[],"content:en:blog:2015:01:the-dream.md","en/blog/2015/01/the-dream.md",1793824786053]