OpenStreetMap ile Minecraft şehirleri oluşturma teknolojisi: Arnis
(github.com/louis-e)- Arnis, gerçek coğrafya, topoğrafya ve mimariyi yansıtan Minecraft Java Edition 1.17+ ve Bedrock Edition dünyaları oluşturan ücretsiz ve açık kaynaklı bir projedir
- Oluşturma algoritması, OpenStreetMap coğrafi veri kümelerini ve yükselti verilerini işleyerek araziyi ve yapıları Minecraft içinde daha doğru biçimde yeniden üretir
- Kullanıcılar haritada dikdörtgen aracıyla bir alan seçip Minecraft dünyasını belirledikten sonra
Start Generationdüğmesine basarak üretim yapabilir; dünya ölçeği, spawn noktası ve bina iç mekânı oluşturma gibi ayarlar da değiştirilebilir - Kurulum yapmadan tarayıcıda dünya oluşturmak veya daha büyük harita boyutları ve mobil üretim istemek için MapSmith kullanılabilir
- Resmî indirme kaynakları yalnızca arnismc.com ve GitHub deposudur; diğer sitelerdeki Arnis indirmeleri resmî değildir ve kötü amaçlı olabilir
Arnis'in oluşturduğu Minecraft dünyaları
- Arnis, gerçek dünyanın coğrafyasını, topoğrafyasını ve mimarisini yansıtan Minecraft dünyaları üretir
- Desteklenen sürümler Minecraft Java Edition 1.17+ ve Bedrock Edition'dır
- Memleketiniz, büyük şehirler veya doğal manzaralar gibi gerçek bölgeleri Minecraft dünyasına dönüştürebilirsiniz
- Proje, büyük ölçekli gerçek coğrafi verilerle çalışmak üzere tasarlanmış ücretsiz ve açık kaynaklı bir araçtır
- Oluşturma süreci, OpenStreetMap coğrafi verileri ile yükselti verilerini birlikte kullanır
- Amaç, arazinin ve yapıların Minecraft'taki temsilini daha doğru hâle getirmektir
Kullanım şekli
- Kullanıcılar en son sürümü indirebilir veya projeyi doğrudan kendileri derleyebilir
- GUI'de harita üzerinde dikdörtgen aracıyla istenen alan seçilir, ardından Minecraft dünyası belirtilir ve
Start Generationtıklanır - Oluşturma ayarlarında çeşitli seçenekler değiştirilebilir
- Dünya ölçeği
- Spawn noktası
- Bina iç mekânı oluşturma
- Mobil üretim ya da daha büyük harita boyutları gerekiyorsa MapSmith tarayıcıda kurulum gerektirmeden dünya oluşturur
Belgeler ve geliştirme hedefleri
- Tüm belgeler GitHub Wiki üzerinde sunulmaktadır
- Teknik açıklamalar
- SSS
- Katkı rehberi
- Yol haritası
- Projenin temel hedefleri modülerlik, performans, dokümantasyon, kullanılabilirlik ve çapraz platform desteğidir
- Veri içe aktarma, işleme ve dünya oluşturmayı net biçimde ayırarak bakım kolaylığını ve genişletilebilirliği artırmayı hedefler
- Hızlı dünya üretimi için performans optimizasyonuna önem verir
- Kod içi dokümantasyonla yapıyı ve mantığı daha anlaşılır kılmayı amaçlar
- Son kullanıcıların kolayca kullanabileceği bir deneyim hedefler
- Windows, macOS ve Linux üzerinde sorunsuz çalışması amaçlanır
Derleme ve katkı
- Proje; hata düzeltmeleri, performans iyileştirmeleri, yeni özellikler ve belge geliştirmeleri dâhil her seviyeden katkıyı kabul eder
- Katkı akışı, depoyu fork edip değişiklik yaptıktan sonra bir pull request göndermeye dayanır
- Komut satırı derleme örneği şöyledir
cargo run --no-default-features -- --terrain --path="C:/YOUR_PATH/.minecraft/saves/worldname" --bbox="min_lat,min_lng,max_lat,max_lng"
- GUI derlemesi şu komutla çalıştırılır
cargo run
- Nix kullanıcıları doğrudan şu şekilde çalıştırabilir
nix run github:louis-e/arnis -- --terrain --path=YOUR_PATH/.minecraft/saves/worldname --bbox="min_lat,min_lng,max_lat,max_lng"
- pull request birleştirildiğinde değişiklikler düzenli güncelleme sürümlerine dâhil edilir
Bilinirlik, lisans ve resmî kaynaklar
- Arnis, 2024 Aralık'tan sonra daha fazla ilgi görmeye başladı ve çeşitli akademik ile medya kaynaklarında yer aldı
- Building realistic Minecraft worlds with Open Data on AWS: How Arnis uses elevation datasets at scale
- Floodcraft: Game-based Interactive Learning Environment using Minecraft for Flood Mitigation and Preparedness for K-12 Education
- Hackaday: Bringing OpenStreetMap Data into Minecraft
- TomsHardware: Minecraft Tool Lets You Create Scale Replicas of Real-World Locations
- XDA Developers: Hometown Minecraft Map: Arnis
- Arnis, Apache License 2.0 ile dağıtılır
src/luanti_block_map.rsiçindeki Luanti blok adı eşlemesi MC2MT projesinden türetilmiştir ve GNU Lesser General Public License v2.1 veya üzeri lisansa tabidir- Resmî proje sitesi yalnızca arnismc.com ve GitHub deposudur
- Diğer sitelerdeki indirmeler resmî değildir ve kötü amaçlı olabilir
- Arnis, resmî bir Minecraft ürünü değildir ve Mojang ya da Microsoft tarafından onaylanmaz veya onlarla bağlantılı değildir
1 yorum
Hacker News görüşleri
10 yıldan uzun süre önce Cities in Motion 2 için şehir üreteci olan açık kaynak proje maps4cim’i geliştirmiştim; yollar ve binalar için OSM verilerini, yükseklik için NASA SRTM verilerini kullanıyordu
OSM tarafı çok daha karmaşık ve veriler de her gün değişiyor, ama Overpass API’ye aynı sorguyu gönderdiğinizde hâlâ güncel verileri beklenen biçimde alabiliyorsunuz
Buna karşılık NASA, bir noktada kamu malı olan SRTM verilerine açık erişimi kapatıp bunları yalnızca kayıtlı kullanıcıların erişebildiği, REST olmayan bir web servisinin arkasına gizledi
Veriler ücretsiz ve kolayca erişilebilir olmasaydı en başta böyle bir açık kaynak projeye başlamazdım; giriş bariyerleri oluştuğunda da devlerin omuzları üzerinde inşa edilebilecek iyi araçların hepsini kaybederiz
OSM gibi açık veri ruhunu hayata geçiren projelerin daha da güçlenmesini isterim
1: https://github.com/Klamann/maps4cim
StreetComplete’in oyunlaştırılmış görevleri ya da osm.org’un tarayıcı tabanlı düzenleyicisi sayesinde interneti olan herkes birkaç dakika içinde çevresindeki yerleri düzeltebilir
Öte yandan nereye giderseniz gidin düzeltilecek şeylerin kalmış olması, yeterince katkıcı olmadığı anlamına da geliyor
Büyük sorun, insanların sürekli kullanırken hatalarla karşılaşacağı ana uygulamanın olmaması; ancak Organic Maps ile bu yavaş yavaş değişiyor ve Tesla otomatik park yüzünden yeni haritalama yapan kişilerin de ortaya çıktığını duydum
https://www.reddit.com/r/gis/comments/qg4b6j/is_it_possible_...
Geonames de SRTM ve diğer verilere dayalı bir yükseklik sorgulama servisi sunuyor: http://www.geonames.org/export/web-services.html
Ancak geniş bölgeleri ayrıntılı biçimde örneklemeniz gerekiyorsa API sınırlarına takılabilir ya da servisi aşırı yükleyebilirsiniz
Yine de üçüncü tarafların veri kümesini edinip bunun üzerine API sunmasının mümkün olduğunu gösteriyor
Bildiğim kadarıyla GPL’de sahte kahraman yaratmayı yasaklayan bir madde yok
Ancak lexer/parser üreteçlerinde olduğu gibi çıktıya programın kendi kaynak kodunun bir kısmı dahil oluyorsa istisnalar var; GNU Bison lisansı buna izin veren açık bir istisna içeriyor
Minecraft’ta Redstone ve Command Blocks var; insanlar 8086 ya da Tetris gibi şeyler bile yaptılar
Böyle dünya üretme araçlarıyla oluşturulan dünyaların GPL ile “kirlenip kirlenmeyeceği” konusunda sınır durumlar olup olmadığını merak ediyorum
Şahsen bu yüzden BSD/MIT lisanslarını tercih ediyorum. “Bu programı gerçekten kullanabilir miyim?” gibi basit bir soru için avukat masrafı çıkarmak istemem
Çocukların mahallemize daha aşina olması için kullanmak isterim
Sürekli yol adlarını ya da nereden dönmeleri gerektiğini sormaktan yoruldum; bazen eksiksiz adım adım navigasyon bile yapıyorum
Şimdiye kadar yalnızca birkaç kez kayboldular
Ancak muhtemelen bu proje kadar ayrıntılı değildir
[0]: https://minecraft.ign.fr/
https://youtube.com/watch?v=vl_MExz52jA
Bir de aynı içeriğe çocuk gibi görünen bir anlatım eklenmiş video:
https://youtu.be/7JYjxSfvJQk?feature=shared
Zaten mevcut bir Python uygulaması olduğu için, başta bu sürümün neden farklı olduğunu anlatmaları makul görünüyor
Üstelik gerçekten J ile başlayan kelimeler de değildi; herhangi bir adın başına J ekleniyordu
Python’dan bahsedilme sayısı da neredeyse aynı
Bir atın ya da
(lat,long,game)biçimindeki konum referansının oyun içi bir konum mu, yoksa aynı ada sahip oyundaki kurgusal bir konum mu olduğunu ayırt etmek daha kolay olabilirGoogle Maps GlTF 3D döşemeleriyle ilgili belgede https://developers.google.com/maps/documentation/tile/3d-til..., Google’ın fotogerçekçi döşemelerini render etmek için telif hakkı gösterimini destekleyen bir 3D Tiles renderer kullanmak gerektiği ve CesiumJS ya da Cesium for Unreal kullanılabileceği belirtiliyor
Python API’si olan açık kaynak Minecraft benzeri oyunlar arasında sensorcraft var; OpenGL 3D için pyglet tabanlı ve
self.add_block(), yerçekimi, AI, devreler vb. konuları ele alıyorWebGL’in OpenGL’e göre daha taşınabilir olduğunu ve pyglet’in WASM’e derlenip derlenemeyeceğini de merak ediyorum
panda3d ve godot’un WASM’e kolayca derlenebildiğini biliyorum
Minecraft klonları için faydalı olabilecek Python açık kaynak fizik motoru olarak Genesis-Embodied-AI/Genesis var: “Genesis: A Generative and Universal Physics Engine for Robotics and Beyond” https://news.ycombinator.com/item?id=42457213#42457224
“Approximating mathematical constants using Minecraft” https://news.ycombinator.com/item?id=42319313 içinde
luanti,minetest,mcpi,MCPI-Revival/minecraft-pi-rebornda geçiyorOSM verisini de kontrol ettim, bu yüzden daha da tuhaf
Buna karşılık çocuğumun okulu çok uzak değil ve oldukça ayrıntılı render ediliyor
Biraz daha kurcalayınca o binanın OSM’de iki farklı katmana sahip bir multipolygon olarak render edildiğini, diğerlerinin ise düğüm kümeleri temelinde render ediliyor gibi göründüğünü fark ettim