
Louis Erbkamm 开发 Arnis,将真实地点转为 Minecraft 世界
来源标题:Arnis turns any place on Earth into a Minecraft world
Louis Erbkamm 开发的开源项目 Arnis 利用 OpenStreetMap 等真实数据,将现实地点转化为可自由探索的 Minecraft 世界。项目自 2022 年启动以来,GitHub 下载量已接近 90 万次,吸引约 70 名贡献者。首个原型由他用两周业余时间完成,如今依靠 GitHub Copilot 独自维护。
以下正文由 AI 翻译自 GitHub Blog(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
Louis Erbkamm 对德国最小的城镇 Arnis 了如指掌,但他从未踏足那里。
我知道商店在哪里。船在哪里……我对这座城相当熟悉,但我还没去过那里。
Louis Erbkamm,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 来概览最新版本中未解决的问题和 bug,了解有多少人遇到这些问题,追踪 bug 在代码库中的来源,并创建修复。他说,自从把 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 这是个 bug,他会修复它。
文章 Arnis turns any place on Earth into a Minecraft world 首次发表于 The GitHub Blog。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。