Arnis biến dữ liệu bản đồ ngoài đời thành thế giới Minecraft

Công nghệ03 tháng 11, 2026·6 phút đọc

Dự án mã nguồn mở Arnis dùng dữ liệu OpenStreetMap và các nguồn khác để dựng những địa điểm có thật thành thế giới Minecraft có thể khám phá. Sau khi đạt gần 900.000 lượt tải từ GitHub và thu hút khoảng 70 người đóng góp, dự án được nhà phát triển Louis Erbkamm duy trì với sự hỗ trợ của GitHub Copilot.

Arnis biến dữ liệu bản đồ ngoài đời thành thế giới Minecraft

Dự án mã nguồn mở Arnis chuyển dữ liệu địa lý ngoài đời thành những thế giới Minecraft có thể khám phá. Bắt đầu như một dự án làm thêm của Louis Erbkamm vào năm 2022, Arnis hiện đạt gần 900.000 lượt tải từ GitHub và có khoảng 70 người đóng góp.

Erbkamm biết khá rõ thị trấn Arnis, nơi dự án được đặt tên theo, dù anh chưa từng đến đó. Dữ liệu bản đồ cho phép anh nắm được vị trí các cửa hàng, bến thuyền và nhiều địa điểm khác trong thị trấn.

Từ nguyên mẫu hai tuần đến cộng đồng đóng góp

Erbkamm lớn lên cùng Minecraft và bắt đầu lập trình từ năm 13 tuổi. Anh tạo Arnis như một cách kết hợp trò chơi với dữ liệu địa lý. Nguyên mẫu đầu tiên được viết bằng Python trong hai tuần nghỉ học, chỉ dùng dữ liệu từ OpenStreetMap.

Vì quá trình dựng bản đồ ban đầu chậm, Erbkamm chọn một thị trấn nhỏ ở Đức để thử nghiệm. Nơi này có đủ nhà cửa, đường phố và mặt nước để kiểm tra các thành phần của dự án. Arnis chưa có tên riêng vào thời điểm đó, nên anh mượn tên thị trấn.

Khi Arnis bổ sung độ cao địa hình, các thế giới tạo ra không còn bằng phẳng. Những chuyên gia về dữ liệu địa lý bắt đầu đề xuất cách tích hợp tính năng này. Trước những thay đổi lớn, như chuyển dự án từ Python sang Rust, Erbkamm cũng mở thảo luận trên GitHub để nghe ý kiến cộng đồng.

Người đóng góp đã dịch Arnis sang khoảng 20 ngôn ngữ và tự xây dựng nhiều tính năng quan trọng. Theo Erbkamm, sự tham gia của những người thuộc nhiều lĩnh vực khác nhau là một trong những điều đáng quý nhất mà dự án mang lại.

Từ thùng rác ngoài phố đến công trình 3D

Một số ý tưởng bắt đầu từ những quan sát đời thường. Erbkamm nhận thấy thành phố mình có nhiều thùng rác, trong khi các thế giới do Arnis tạo ra lại không có chúng. Minecraft không có khối dành riêng cho thùng rác, nên anh cùng cộng đồng tìm một khối phù hợp.

Để dựng một khu vực, Arnis truy vấn OpenStreetMap theo phạm vi người dùng chọn, sau đó lấy tọa độ và loại của từng đối tượng trên bản đồ. Nếu một đối tượng chưa được ghi lại, Arnis không thể đưa nó vào thế giới được tạo.

Với những công trình quá phức tạp để bản đồ mô tả, chẳng hạn Tượng Nữ thần Tự do ở New York hay tượng Chúa Cứu Thế ở Rio de Janeiro, dự án chuyển mô hình 3D thành các khối Minecraft.

GitHub Copilot hỗ trợ nhà duy trì duy nhất

Erbkamm là nhà duy trì duy nhất của Arnis và tự xem xét mọi đề xuất hợp nhất mã. Vì anh thường chỉ làm dự án vào buổi tối hoặc cuối tuần, các vấn đề và lỗi đôi khi phải chờ đến khi anh có thời gian xử lý.

Anh dùng GitHub Copilot để tổng hợp các vấn đề đang mở và lỗi trong bản phát hành mới nhất, xem có bao nhiêu người gặp phải chúng, lần theo nguyên nhân trong mã nguồn rồi tạo bản sửa. Erbkamm cho biết kể từ khi đưa công cụ trí tuệ nhân tạo vào quy trình, số lượt rà soát mã và tài liệu dự án đều tăng lên.

Tôi có thể giao những việc nhàm chán cho Copilot, còn mình tập trung vào những chủ đề thú vị liên quan đến quá trình phát triển.

Với các thay đổi lớn, Erbkamm đưa đề xuất hợp nhất mã vào ứng dụng GitHub Copilot để có cái nhìn tổng quan và đánh giá hiệu năng. Công cụ có thể rà soát trong lúc làm việc, tìm những thay đổi nhỏ giúp giảm mức dùng bộ nhớ hoặc rút ngắn thời gian tạo thế giới. Chỉ một phép tính sai ở hệ thống đèn đường, chẳng hạn, cũng có thể khiến việc dựng cả thành phố chậm đi đáng kể.

Erbkamm còn dùng các tác tử phụ để kiểm tra những khu vực mã nguồn cần thận trọng, đồng thời tìm các tình huống đặc biệt có thể gây lỗi hồi quy — tức lỗi cũ xuất hiện trở lại sau khi cập nhật. Anh đánh giá cao việc có thể xem thiết bị đầu cuối, tệp tin, thay đổi mã và đề xuất hợp nhất trong cùng một ứng dụng.

Được sử dụng trong lớp học, hướng đến Mặt Trăng và Sao Hỏa

Một trong những cách Erbkamm yêu thích để sử dụng Arnis là trong trường học. Giáo viên có thể tạo bản đồ thành phố hoặc công viên trong khu phố. Có lớp tổ chức cuộc thi, trong đó mỗi học sinh bắt đầu từ cùng một khu vực đã dựng, cải thiện công viên hoặc sân chơi gần đó bằng Arnis và Minecraft, rồi cả lớp cùng xem kết quả.

Các bản phát hành gần đây đã mở rộng phạm vi của Arnis ra ngoài Trái Đất, bổ sung Mặt Trăng và Sao Hỏa. Erbkamm muốn dự án tiếp tục dễ sử dụng, đồng thời tái hiện thế giới thực chi tiết hơn trong thời gian ngắn hơn và được dùng ở nhiều trường học hơn.

Người dùng có thể tải Arnis từ github.com/louis-e/arnis, chọn một địa điểm trên bản đồ, chọn nơi xuất hiện rồi bắt đầu tạo thế giới. Theo Erbkamm, chỉ mất vài phút để thế giới sẵn sàng mở trong Minecraft. Anh gợi ý bắt đầu bằng quê nhà hoặc một nơi đáng nhớ như Grand Canyon hay thác Niagara, rồi kiểm tra xem chi tiết nào còn thiếu. Nếu phát hiện ghế băng có thật nhưng chưa xuất hiện, người dùng có thể bổ sung nó lên OpenStreetMap hoặc báo lỗi cho Erbkamm.

Góc nhìn

Arnis cho thấy dữ liệu bản đồ mở có thể trở thành đầu vào cho một trải nghiệm tương tác, thay vì chỉ phục vụ việc tra cứu địa điểm. Với nhà phát triển, dự án cũng là ví dụ về cách cộng đồng có thể mở rộng một nguyên mẫu cá nhân bằng dữ liệu, bản dịch và tính năng do nhiều người cùng đóng góp.

Trường hợp của Erbkamm đồng thời cho thấy công cụ trí tuệ nhân tạo có thể hỗ trợ nhà duy trì đơn lẻ xử lý rà soát, tài liệu và kiểm thử lỗi hồi quy. Tuy nhiên, các quyết định về mã nguồn và những phần cần chú ý vẫn gắn với hiểu biết của người duy trì và cộng đồng.

Nguồn: github.blog · Quy trình biên tập

Chia sẻ:FacebookX