Arnis, công nghệ tạo thành phố Minecraft bằng OpenStreetMap
(github.com/louis-e)- Arnis là một dự án mã nguồn mở miễn phí tạo thế giới Minecraft Java Edition 1.17+ và Bedrock Edition phản ánh địa lý, địa hình và kiến trúc thực tế
- Thuật toán tạo xử lý dữ liệu không gian địa lý OpenStreetMap cùng dữ liệu độ cao để tái hiện địa hình và công trình kiến trúc trong Minecraft chính xác hơn
- Người dùng có thể chọn khu vực bằng công cụ hình chữ nhật trên bản đồ, chọn thế giới Minecraft rồi nhấn
Start Generationđể tạo; cũng có thể điều chỉnh các thiết lập như tỉ lệ thế giới, điểm spawn và tạo nội thất tòa nhà - Nếu muốn tạo thế giới trên trình duyệt mà không cần cài đặt, hoặc cần kích thước bản đồ lớn hơn và tạo trên di động, có thể dùng MapSmith
- Kênh tải xuống chính thức chỉ gồm arnismc.com và kho GitHub; các bản tải Arnis từ website khác là không chính thức và có thể chứa mã độc
Thế giới Minecraft do Arnis tạo ra
- Arnis tạo các thế giới Minecraft phản ánh địa lý, địa hình và kiến trúc của thế giới thực
- Hỗ trợ Minecraft Java Edition 1.17+ và Bedrock Edition
- Có thể biến các khu vực thực như quê nhà, đô thị lớn hay cảnh quan thiên nhiên thành thế giới Minecraft
- Dự án là công cụ mã nguồn mở miễn phí được thiết kế để xử lý dữ liệu địa lý thực tế ở quy mô lớn
- Quá trình tạo sử dụng kết hợp dữ liệu không gian địa lý và dữ liệu độ cao của OpenStreetMap
- Mục tiêu là tạo biểu diễn địa hình và công trình kiến trúc trong Minecraft chính xác hơn
Cách sử dụng
- Người dùng có thể tải bản phát hành mới nhất hoặc tự build
- Trong GUI, chọn khu vực mong muốn trên bản đồ bằng công cụ hình chữ nhật, chỉ định thế giới Minecraft rồi bấm
Start Generation - Có thể điều chỉnh nhiều mục trong cấu hình tạo
- Tỉ lệ thế giới
- Điểm spawn
- Tạo nội thất tòa nhà
- Nếu cần tạo trên di động hoặc kích thước bản đồ lớn hơn, MapSmith có thể tạo thế giới ngay trên trình duyệt mà không cần cài đặt
Tài liệu và mục tiêu phát triển
- Tài liệu đầy đủ được cung cấp trên GitHub Wiki
- Giải thích kỹ thuật
- FAQ
- Hướng dẫn đóng góp
- Lộ trình
- Các mục tiêu cốt lõi của dự án là tính mô-đun, hiệu năng, tài liệu hóa, khả năng sử dụng và hỗ trợ đa nền tảng
- Muốn tách bạch rõ ràng việc nhập dữ liệu, xử lý và tạo thế giới để tăng khả năng bảo trì và mở rộng
- Chú trọng tối ưu hiệu năng để tạo thế giới nhanh
- Muốn làm rõ cấu trúc và logic thông qua tài liệu hóa bên trong mã nguồn
- Hướng tới trải nghiệm dễ dùng cho người dùng cuối
- Nhắm tới việc hoạt động mượt mà trên Windows, macOS và Linux
Build và đóng góp
- Dự án nhận đóng góp ở mọi cấp độ, bao gồm sửa lỗi, cải thiện hiệu năng, thêm tính năng mới và cải thiện tài liệu
- Quy trình đóng góp là fork kho, thực hiện thay đổi rồi gửi pull request
- Ví dụ build bằng dòng lệnh như sau
cargo run --no-default-features -- --terrain --path="C:/YOUR_PATH/.minecraft/saves/worldname" --bbox="min_lat,min_lng,max_lat,max_lng"
- Build GUI được chạy bằng lệnh sau
cargo run
- Người dùng Nix có thể chạy trực tiếp như sau
nix run github:louis-e/arnis -- --terrain --path=YOUR_PATH/.minecraft/saves/worldname --bbox="min_lat,min_lng,max_lat,max_lng"
- Khi pull request được merge, các thay đổi sẽ được đưa vào các bản phát hành cập nhật định kỳ
Mức độ nhận biết, giấy phép và nguồn chính thức
- Arnis thu hút nhiều sự chú ý hơn từ sau tháng 12/2024 và đã được đề cập trong nhiều tài liệu học thuật, truyền thông
- 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 được phân phối theo Apache License 2.0
- Ánh xạ tên khối Luanti trong
src/luanti_block_map.rsđược phái sinh từ MC2MT và tuân theo giấy phép GNU Lesser General Public License v2.1 trở lên - Website dự án chính thức chỉ gồm arnismc.com và kho GitHub
- Các bản tải xuống từ website khác là không chính thức và có thể chứa mã độc
- Arnis không phải là sản phẩm Minecraft chính thức và không được Mojang hoặc Microsoft phê duyệt hay liên kết
1 bình luận
Ý kiến Hacker News
Hơn 10 năm trước, tôi đã tạo maps4cim, một dự án mã nguồn mở là trình tạo thành phố cho Cities in Motion 2, trong đó đường sá và tòa nhà dùng dữ liệu OSM, còn độ cao dùng dữ liệu NASA SRTM
Phía OSM phức tạp hơn nhiều và dữ liệu cũng thay đổi hằng ngày, nhưng nếu gửi cùng một truy vấn tới Overpass API thì vẫn có thể nhận được dữ liệu mới nhất theo đúng định dạng mong đợi
Trong khi đó, vào một thời điểm nào đó NASA đã đóng quyền truy cập công khai vào dữ liệu SRTM vốn thuộc phạm vi công cộng, rồi giấu nó sau một dịch vụ web không phải REST chỉ cho người dùng đã đăng ký truy cập
Nếu dữ liệu không miễn phí và dễ truy cập thì ngay từ đầu tôi đã không bắt đầu những dự án mã nguồn mở như thế này, và khi xuất hiện rào cản gia nhập thì chúng ta sẽ mất đi tất cả những công cụ tốt lẽ ra có thể được xây dựng trên vai người khổng lồ
Tôi hy vọng sẽ có thêm nhiều dự án thực hành tinh thần dữ liệu mở như OSM nhận được sức mạnh lớn hơn
1: https://github.com/Klamann/maps4cim
Nhờ các nhiệm vụ được game hóa của StreetComplete và trình chỉnh sửa chạy trong trình duyệt của osm.org, bất kỳ ai có Internet cũng có thể chỉnh sửa các địa điểm xung quanh mình chỉ trong vài phút
Tuy vậy, việc đi đến đâu cũng vẫn còn thứ để sửa cũng đồng nghĩa là chưa có đủ người đóng góp
Vấn đề lớn là chưa có ứng dụng chủ lực mà mọi người dùng thường xuyên rồi phát hiện lỗi, nhưng điều này dường như đang dần thay đổi với Organic Maps, và tôi cũng nghe nói có những người mới bắt đầu lập bản đồ vì tính năng tự đỗ xe của Tesla
https://www.reddit.com/r/gis/comments/qg4b6j/is_it_possible_...
Geonames cũng cung cấp dịch vụ tra cứu độ cao dựa trên SRTM và các dữ liệu khác: http://www.geonames.org/export/web-services.html
Nhưng nếu cần lấy mẫu chi tiết trên một khu vực rộng thì có thể đụng giới hạn API hoặc làm quá tải dịch vụ
Dù vậy, điều đó vẫn cho thấy bên thứ ba hoàn toàn có thể nắm giữ bộ dữ liệu và cung cấp API dựa trên nó
Theo như tôi biết thì GPL không có điều khoản nào cấm tạo anh hùng giả
Tuy nhiên vẫn có ngoại lệ, chẳng hạn như với trình tạo lexer/parser nơi đầu ra có thể chứa một phần mã nguồn của chính chương trình, và giấy phép GNU Bison có thêm ngoại lệ minh thị cho phép điều đó
Minecraft có Redstone và Command Blocks, và mọi người thậm chí còn làm ra cả 8086 hay Tetris
Tôi tự hỏi liệu có trường hợp biên nào mà một thế giới được tạo ra từ công cụ kiểu này lại bị GPL lây nhiễm hay không
Cá nhân tôi thích giấy phép BSD/MIT hơn vì lý do này. Tôi không muốn một câu hỏi đơn giản như “liệu mình có thực sự được dùng chương trình này không?” lại khiến ai đó phải tốn tiền thuê luật sư
Tôi muốn dùng nó để giúp bọn trẻ quen hơn với khu phố của mình
Tôi đã mệt vì cứ phải liên tục trả lời tên đường là gì hay phải rẽ ở đâu, và đôi khi tôi còn đưa cả chỉ dẫn rẽ từng chặng hoàn chỉnh
Cho tới giờ thì chúng chỉ bị lạc có vài lần
Tuy nhiên có lẽ nó không chi tiết bằng dự án này
[0]: https://minecraft.ign.fr/
https://youtube.com/watch?v=vl_MExz52jA
Và một video cùng nội dung nhưng có phần thuyết minh nghe như dành cho trẻ em:
https://youtu.be/7JYjxSfvJQk?feature=shared
Vì đã có sẵn một bản triển khai bằng Python từ trước, nên việc nói rõ ở phần đầu phiên bản này khác gì là điều hợp lý
Thậm chí đó còn chẳng phải từ thực sự bắt đầu bằng J, mà chỉ là kiểu gắn J vào trước mọi cái tên
Số lần nhắc tới Python cũng gần như tương đương
Có lẽ cách dễ hơn là phân biệt xem tham chiếu vị trí dưới dạng lời nói hoặc
(lat,long,game)là vị trí trong game hay là một địa điểm hư cấu trong game trùng tên với ngoài đờiTài liệu liên quan đến Google Maps GlTF 3D Tiles https://developers.google.com/maps/documentation/tile/3d-til... cho biết để render các tile chân thực của Google thì phải dùng trình render 3D Tiles hỗ trợ hiển thị bản quyền, và có thể dùng CesiumJS hoặc Cesium for Unreal
Trong số các game mã nguồn mở kiểu Minecraft có Python API thì có sensorcraft, dựa trên pyglet cho OpenGL 3D, và xử lý
self.add_block(), trọng lực, AI, mạch điện, v.v.Tôi cũng tò mò liệu WebGL có tính di động tốt hơn OpenGL hay không, và liệu có thể biên dịch pyglet sang WASM không
Tôi biết panda3d và godot có thể được biên dịch sang WASM khá dễ dàng
Một physics engine mã nguồn mở bằng Python có thể hữu ích cho các bản clone Minecraft là Genesis-Embodied-AI/Genesis: “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 cũng nhắc đến
luanti,minetest,mcpi,MCPI-Revival/minecraft-pi-rebornTôi cũng đã kiểm tra dữ liệu OSM nên lại càng thấy lạ hơn
Trong khi đó, trường học của con tôi ở không xa và được render khá chi tiết
Đào sâu hơn thì có vẻ tòa nhà đó được render dưới dạng multipolygon với hai layer khác nhau trong OSM, còn các tòa nhà khác thì được render dựa trên tập hợp node