开源项目 Arnis 用 OpenStreetMap 数据把地球任意地点生成 Minecraft 世界
Louis Erbkamm 自 2022 年开发的开源项目 Arnis,用 OpenStreetMap 等真实地理数据把任意地点生成可探索的 Minecraft 世界,已获近 90 万次 GitHub 下载和约 70 位贡献者。
GitHub Blog· Alex Perrault·2026-11-04 00:00· 24 分钟前AI 评分63
Arnis 将地球上任意地点变成 Minecraft 世界
AI 导读
GitHub Blog 介绍了 Louis Erbkamm 自 2022 年起开发的开源项目 Arnis,它用 OpenStreetMap 等真实地理数据把任意地点生成可探索的 Minecraft 世界,已从 GitHub 获得近 90 万次下载、约 70 位贡献者。
正文 · 原文
Louis Erbkamm 对德国最小城镇 Arnis 了如指掌,却从未踏足那里。
我知道商店在哪里,船在哪里……我对这座城市相当熟悉,但我还没去过那里。
Louis Erbkamm, maintainer of Arnis
Arnis 也是他开源项目的名字,该项目从 OpenStreetMap 和其他来源获取真实世界数据,把你熟悉的地方变成可以自由探索的 Minecraft 世界。自 Louis 于 2022 年启动 Arnis 以来,它已从 GitHub 获得近 90 万次下载和约 70 位贡献者。
两周与一个缓慢的原型
Louis 从小玩 Minecraft,13 岁开始写代码,一直想方设法把代码带入游戏。Arnis 最初只是一个将 Minecraft 与地理空间数据结合的有趣消遣,后来被放到了 GitHub 上,他原本就把自己的业余项目放在那里。他在学校放假期间用两周时间完成了第一个原型。
第一个版本是手写的 Python,仅基于 OpenStreetMap 构建,生成一个城镇需要一段时间。他需要真实的地方来测试,于是查找他居住的德国的城镇,找到了 Arnis。在早期生成速度缓慢时,一个小镇很有帮助。
Arnis 有很多建筑,有街道,有水域,有各种不同的元素,这些对测试很有用。
Louis
这个项目当时还没有名字,于是借用了这个城镇独特的名字。
一个带来自己创意的社区
当 Arnis 加入高程数据后,它的世界不再是平的,来自各地的地理空间专家纷纷带着如何最好地整合它的想法出现。他们自己发起了讨论,Louis 说这正是他所需要的。
更大的讨论也在公开场合进行:在将 Arnis 从 Python 移植到 Rust 之前,Louis 在 GitHub 上发起讨论以听取不同观点。此后,贡献者们将 Arnis 翻译成约 20 种语言,并自行构建了重要功能。
对我来说最好的事情基本上就是 GitHub 上这个庞大的社区,看到来自各个不同领域的人们聚集在一起,为我作为业余项目开始的东西而努力。
Louis
垃圾桶如何进入 Minecraft
有些功能始于一次散步。Louis 注意到他的城市里有很多垃圾桶,而他生成的世界里一个也没有。
Minecraft 没有专门的垃圾桶,所以他把这个问题带到社区,大家一起找到了一个合适的方块。放置一个垃圾桶遵循与其他一切相同的路径:对于用户选择的区域,Arnis 向 OpenStreetMap 查询每一个已映射的元素,然后查找每个元素的坐标和类型。
如果一个元素没有被映射,Arnis 就无法放置它。对于地图无法描述的过于精细的结构,比如纽约的自由女神像或里约热内卢的救世基督像,Arnis 会将 3D 模型转换为 Minecraft 方块。
一位维护者,一堆拉取请求
作为唯一的维护者,Louis 亲自审查每一个拉取请求,它们会堆积起来。他通常利用晚上或周末的时间开发 Arnis,这意味着社区必须等他完成当天的工作。
他使用 GitHub Copilot 来了解最新版本中未解决的问题和缺陷的概况,查看有多少人遇到这些问题,追踪某个缺陷在代码库中的来源,并创建修复方案。他说,自从将 AI 引入项目以来,代码审查和文档都有所增加。
我可以把那些烦人又无聊的任务交给 Copilot,同时我仍然可以关注那些与开发相关的真正有趣的话题。
Louis
寻找回归问题的子代理
大型功能以大型拉取请求的形式到来。
Louis 在 GitHub Copilot 应用中打开一个大型拉取请求,进行初步概览和性能审查,同时 Copilot 在后台运行,寻找可以减少内存占用或生成时间的小改动。
例如,路灯中只要有一处计算错误,就会让整座城市的生成时间慢得多。
Louis
他还牢记一份代码库中需要特别留意的区域清单,每当有人改动这些区域时,他都会手写同样的警告,一遍又一遍。
我正在用 GitHub Copilot 应用启动几个子代理,专门查看这些情况,并想出一些边界情况来测试,以确保我们不会在新版本中引入任何回归问题。
Louis
他喜欢终端、文件、代码改动和拉取请求都集中在一个应用里,就在聊天窗口旁边。
一间意想不到的教室
Louis 最喜欢 Arnis 的用途是在学校里,老师们用它生成了自己所在的城市或社区公园。
有些人把它变成了一场比赛:每个学生都从同一个生成的区域开始,使用 Arnis 和 Minecraft 改进附近的公园或游乐场,然后全班一起查看结果。
Arnis 的下一步
最近的版本已经超越了地球的边界,加入了月球和火星。Louis 希望 Arnis 在更接近现实的同时保持易于使用,用更少的时间呈现更多细节,他还希望它出现在更多学校里。
从你的家乡开始
从 github.com/louis-e/arnis 下载 Arnis,在地图上选一个地点,选择出生点,然后点击 Start Generation:几分钟内,世界就准备好可以在 Minecraft 中打开了。Louis 建议选一个你熟悉的地方,比如你的家乡或你去过的某个难忘的地方,比如大峡谷或尼亚加拉大瀑布。然后看看缺少了什么。
所以也许你看到一张长椅,它明明在那里却没有被生成出来。
Louis
在 OpenStreetMap 上标注它,或者告诉 Louis 这是不是一个缺陷,他会修复它。
文章 Arnis 将地球上的任何地方变成 Minecraft 世界 首次出现在 The GitHub Blog。
来源:GitHub Blog · github.blog
来源:RadarAI · aihot.news