3 Punkte von GN⁺ 2025-01-01 | 1 Kommentare | Auf WhatsApp teilen
  • Arnis ist ein kostenloses Open-Source-Projekt, das Welten für Minecraft Java Edition 1.17+ und Bedrock Edition erzeugt, die reale Geografie, Topografie und Architektur widerspiegeln
  • Der Generierungsalgorithmus verarbeitet Geodaten von OpenStreetMap sowie Höhendaten, um Gelände und Gebäude in Minecraft genauer nachzubilden
  • Nutzer können auf der Karte mit dem Rechteck-Werkzeug ein Gebiet auswählen, eine Minecraft-Welt festlegen und anschließend Start Generation drücken; Einstellungen wie Weltmaßstab, Spawnpunkt und die Generierung von Gebäudeinnenräumen lassen sich ebenfalls anpassen
  • Wer Welten ohne Installation im Browser erstellen möchte oder größere Kartengrößen und mobile Generierung benötigt, kann MapSmith nutzen
  • Offizielle Downloadquellen sind ausschließlich arnismc.com und das GitHub-Repository; Arnis-Downloads von anderen Websites sind inoffiziell und können schädlich sein

Von Arnis erzeugte Minecraft-Welten

  • Arnis erzeugt Minecraft-Welten, die Geografie, Topografie und Architektur der realen Welt widerspiegeln
    • Unterstützt werden Minecraft Java Edition 1.17+ und Bedrock Edition
    • Reale Orte wie die eigene Heimatstadt, Großstädte oder Naturlandschaften lassen sich als Minecraft-Welten erstellen
  • Das Projekt ist ein kostenloses Open-Source-Tool, das für den Umgang mit großen realen Geodatenmengen entwickelt wurde
  • Der Generierungsprozess nutzt Geodaten von OpenStreetMap zusammen mit Höhendaten
    • Ziel ist es, Gelände und Gebäude in Minecraft genauer darzustellen

Nutzung

  • Nutzer können das neueste Release herunterladen oder das Projekt selbst bauen
  • In der GUI wählt man auf der Karte mit dem Rechteck-Werkzeug das gewünschte Gebiet aus, legt eine Minecraft-Welt fest und klickt auf Start Generation
  • Für die Generierung lassen sich mehrere Einstellungen anpassen
    • Weltmaßstab
    • Spawnpunkt
    • Generierung von Gebäudeinnenräumen
  • Wenn mobile Generierung oder größere Kartengrößen benötigt werden, erzeugt MapSmith Welten ohne Installation direkt im Browser

Dokumentation und Entwicklungsziele

  • Die vollständige Dokumentation ist im GitHub Wiki verfügbar
    • Technische Erläuterungen
    • FAQ
    • Beitragsrichtlinien
    • Roadmap
  • Die zentralen Ziele des Projekts sind Modularität, Performance, Dokumentation, Benutzerfreundlichkeit und Cross-Platform-Unterstützung
    • Durch eine klare Trennung von Datenimport, Verarbeitung und Welterzeugung sollen Wartbarkeit und Erweiterbarkeit verbessert werden
    • Performance-Optimierungen für eine schnelle Welterzeugung haben hohe Priorität
    • Interne Code-Dokumentation soll Struktur und Logik verständlich machen
    • Ziel ist eine für Endnutzer leicht zugängliche Nutzungserfahrung
    • Das Projekt soll reibungslos unter Windows, macOS und Linux laufen

Build und Beiträge

  • Das Projekt nimmt Beiträge auf allen Ebenen an, darunter Bugfixes, Performance-Verbesserungen, neue Funktionen und Dokumentationsverbesserungen
  • Der übliche Beitragsprozess besteht darin, das Repository zu forken, Änderungen vorzunehmen und anschließend einen Pull Request einzureichen
  • Ein Beispiel für einen Build über die Kommandozeile:
    • cargo run --no-default-features -- --terrain --path="C:/YOUR_PATH/.minecraft/saves/worldname" --bbox="min_lat,min_lng,max_lat,max_lng"
  • Der GUI-Build wird mit folgendem Befehl ausgeführt:
    • cargo run
  • Nix-Nutzer können das Projekt wie folgt direkt ausführen:
    • nix run github:louis-e/arnis -- --terrain --path=YOUR_PATH/.minecraft/saves/worldname --bbox="min_lat,min_lng,max_lat,max_lng"
  • Sobald ein Pull Request gemergt wurde, werden die Änderungen in ein reguläres Update-Release aufgenommen

Bekanntheit, Lizenz und offizielle Quellen

1 Kommentare

 
GN⁺ 2025-01-01
Meinungen auf Hacker News
  • Ich finde es wirklich großartig, dass das OpenStreetMap-Ökosystem ausgereifte Tools bereitstellt, mit denen jeder Geodaten nutzen kann.
    Vor über zehn Jahren habe ich maps4cim entwickelt, ein Open-Source-Projekt für einen Stadtgenerator für Cities in Motion 2; Straßen und Gebäude stammten aus OSM-Daten, Höhen aus NASA-SRTM-Daten.
    Die OSM-Seite ist deutlich komplexer und die Daten ändern sich täglich, aber wenn man dieselbe Anfrage an die Overpass API schickt, bekommt man weiterhin aktuelle Daten im erwarteten Format.
    NASA dagegen hat irgendwann den öffentlichen Zugriff auf die gemeinfreien SRTM-Daten geschlossen und sie hinter einem nicht-REST-basierten Webservice versteckt, der nur registrierten Nutzern zugänglich ist.
    Wären die Daten nicht frei und einfach zugänglich gewesen, hätte ich so ein Open-Source-Projekt gar nicht erst begonnen; sobald Einstiegshürden entstehen, verlieren wir all die guten Werkzeuge, die auf den Schultern von Riesen hätten entstehen können.
    Ich wünsche mir, dass Projekte wie OSM, die den Open-Data-Gedanken praktisch umsetzen, noch stärker werden.
    1: https://github.com/Klamann/maps4cim
    • Beizutragen ist ebenfalls erstaunlich einfach.
      Dank der gamifizierten Quests von StreetComplete oder des browserbasierten Editors auf osm.org kann jeder mit Internetzugang innerhalb weniger Minuten Orte in der Umgebung korrigieren.
      Dass es aber überall, wo man hinkommt, noch etwas zu verbessern gibt, bedeutet auch, dass es nicht genug Mitwirkende gibt.
      Das große Problem ist, dass es keine führende App gibt, die Menschen ständig nutzen und in der sie dabei Fehler entdecken; mit Organic Maps ändert sich das langsam, und ich habe gehört, dass Teslas automatisches Einparken ebenfalls neue Leute zum Mapping bringt.
    • Es scheint möglich zu sein, den gesamten SRTM-Datensatz herunterzuladen; ich frage mich, ob das nicht ausreicht.
      https://www.reddit.com/r/gis/comments/qg4b6j/is_it_possible_...
      Geonames bietet ebenfalls einen Dienst zur Höhenabfrage auf Basis von SRTM und anderen Daten an: http://www.geonames.org/export/web-services.html
      Wenn man große Gebiete sehr fein abtasten muss, kann man allerdings an API-Limits stoßen oder den Dienst überlasten.
      Trotzdem zeigt es, dass Dritte den Datensatz vorhalten und darauf eine API anbieten können.
  • Ich könnte unsere Nachbarschaft in Minecraft bauen, sie meinem achtjährigen Kind zeigen und so tun, als hätte ich sie selbst gemacht.
    Soweit ich weiß, enthält die GPL keine Klausel gegen falsches Heldentum.
    • Die GPL schränkt nicht ein, wie man ein Programm verwendet; das entspricht Freiheit 0.
      Ausnahmen gibt es allerdings, wenn Ausgaben Teile des Quellcodes des Programms selbst enthalten, wie bei Lexer-/Parser-Generatoren; die GNU-Bison-Lizenz enthält dafür eine ausdrückliche Ausnahme.
      In Minecraft gibt es Redstone und Command Blocks, und Leute haben damit auch Dinge wie einen 8086 oder Tetris gebaut.
      Ich frage mich, ob es Grenzfälle gibt, in denen eine von so einem Weltgenerator erzeugte Welt von der GPL „infiziert“ wird.
      Persönlich bevorzuge ich aus solchen Gründen BSD-/MIT-Lizenzen. Ich möchte keine Anwaltskosten für einfache Fragen wie „Darf ich dieses Programm tatsächlich benutzen?“ verursachen.
  • Es wäre wirklich toll, wenn an Kreuzungen sogar Straßenschilder generiert würden.
    Ich würde das gern nutzen, damit meine Kinder sich in unserer Nachbarschaft besser auskennen.
    Ich bin es leid, ständig nach Straßennamen zu fragen oder danach, wo ich abbiegen muss; manchmal lasse ich mir sogar eine vollständige Turn-by-Turn-Navigation geben.
    Bisher haben wir uns nur ein paar Mal verfahren.
  • Die französische öffentliche Einrichtung IGN bietet ebenfalls einen Dienst an, der Minecraft-Karten aus realen Orten erzeugt.
    Vermutlich ist er aber nicht so detailliert wie dieses Projekt.
    [0]: https://minecraft.ign.fr/
  • Dieses Projekt scheint bei jeder Gelegenheit ziemlich zu betonen, dass es in Rust geschrieben wurde.
    • Es heißt dort: „Um die Sprache weiter zu lernen und die Performance der Algorithmen weiter auszureizen, habe ich beschlossen, das Projekt nach Rust zu portieren. In Python näherte ich mich den Grenzen der Optimierung, und Rusts Fähigkeiten ermöglichen bessere Performance und Effizienz.“
      Da es bereits eine Python-Implementierung gab, wirkt es vernünftig, gleich am Anfang zu erklären, warum diese Version anders ist.
    • Woran erkennt man einen Rust-Programmierer? Er sagt es einem.
    • Im Vergleich zu der Zeit, als alle in Java geschriebenen Libraries oder Anwendungen mit J anfingen, ist das noch gar nichts.
      Es waren nicht einmal echte Wörter, die mit J begannen; man hat einfach vor irgendeinen Namen ein J gesetzt.
    • Das sollte inzwischen in den Rust Style Guide aufgenommen werden.
    • Tatsächlich kommt „Rust“ im README sechsmal vor, und die Hälfte davon steht in einem FAQ-Abschnitt, der erklärt, warum von Python nach Rust portiert wurde.
      Python wird fast genauso oft erwähnt.
  • Es wäre schön, auch eine Version zu haben, die wie die neueren Flight-Simulator-Spiele von Microsoft Rennstrecken auf Basis realer Gegenden erstellt.
    • Oder GTA: Auburn, AL ginge auch.
  • Referenzlinks zu Echtzeitwetter, Fliegen, Verkehr, React-basiertem Cockpit, Open-Source-Google-Earth-GlTF-Daten und Flugsimulator-Apps wie MSFS und X-Plane: https://news.ycombinator.com/item?id=38437821
    Vielleicht wäre es sogar einfacher zu unterscheiden, ob Ortsverweise in Form von Wörtern oder (lat,long,game) Positionen im Spiel sind oder virtuelle Orte im Spiel mit demselben Namen.

In der Dokumentation zu Google Maps GlTF 3D Tiles https://developers.google.com/maps/documentation/tile/3d-til... steht, dass man zum Rendern der fotorealistischen Tiles von Google einen 3D-Tiles-Renderer verwenden muss, der Urheberrechtshinweise unterstützt; CesiumJS oder Cesium for Unreal können dafür genutzt werden.
Als Open-Source-Spiel im Minecraft-Stil mit Python-API gibt es sensorcraft; es basiert auf pyglet für OpenGL 3D und behandelt self.add_block(), Schwerkraft, KI, Schaltungen usw.
Ich frage mich auch, ob WebGL portabler ist als OpenGL und ob sich pyglet nach WASM kompilieren lässt.
Soweit ich weiß, lassen sich panda3d und godot leicht nach WASM kompilieren.
Als Python-Open-Source-Physik-Engine, die für einen Minecraft-Klon nützlich sein könnte, gibt es Genesis-Embodied-AI/Genesis: „Genesis: A Generative and Universal Physics Engine for Robotics and Beyond“ https://news.ycombinator.com/item?id=42457213#42457224
In „Approximating mathematical constants using Minecraft“ https://news.ycombinator.com/item?id=42319313 kommen auch luanti, minetest, mcpi und MCPI-Revival/minecraft-pi-reborn vor.

  • FlightGear hat etwas Ähnliches schon vor langer Zeit gemacht, allerdings betraf es nur die Karte.
  • Merkwürdigerweise wird meine Wohnanlage nicht gerendert, die umliegenden Gebäude und der Swimmingpool aber schon.
    Ich habe auch die OSM-Daten überprüft, was es noch seltsamer macht.
    Die Schule meines Kindes dagegen ist nicht weit entfernt und wird ziemlich detailliert gerendert.
    Bei weiterer Nachforschung scheint dieses Gebäude in OSM als Multipolygon mit zwei verschiedenen Layern gerendert zu werden, während der Rest offenbar auf Basis von Knotenmengen gerendert wird.
  • Sehr cool. Die Erzeugung der Chicago-L-Strecken scheint algorithmisch eine ziemliche Herausforderung gewesen zu sein.
  • Es wäre schön, die von Japan veröffentlichte Punktkarte mit OpenStreetMap abzugleichen, um detailliertere Gebäude zu erstellen.
    • Mich würde der Link zur Punktkarte interessieren.