[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fsRns-t_4LC_F39HMIOS1Rl5DioecOafMN5HF528Ly_4":3},{"item":4,"related":48},{"id":5,"type":6,"title":7,"slug":8,"summary":9,"body":10,"coverUrl":11,"productScreenshots":12,"productLinks":13,"authorName":14,"authorUrl":15,"authorSubject":16,"category":17,"tags":22,"sourceLabel":37,"sourceName":38,"sourceUrl":39,"status":40,"seoTitle":41,"seoDescription":41,"canonicalUrl":41,"isFeatured":42,"sno":43,"sortOrder":44,"publishedAt":45,"updatedAt":46,"createdAt":47},"eec54a98-e74a-4ea9-9957-4f8dda6bc92a","article","从简单的尝试到三十万次下载","minecraft-mods-300k","一些最初靠着网页对话框和代码编辑器反复复制粘贴完成的 Minecraft 小模组，下载量突破了 30 万","看到模组总下载量突破 30 万的时候，我的第一反应其实不是特别激动，而是出乎意料地平静，淡淡的。\n\n可能是因为这段时间一直在看下载量慢慢增长，也可能是因为直到数字真正越过 30 万，我还是很难把它和自己联系起来。\n\n毕竟最开始做这些东西的时候，我从来没有想过会有这么多人使用。\n\n## 起点\n\n最初只是玩 Minecraft 时，发现了一些让我不太舒服的地方。比如界面不够直观，想查看时间、天气和季节时总觉得少了点什么。\n\n于是我打开代码编辑器，借助 AI 做出了第一个试玩版。\n\n那时候还没有现在这些可以自己读项目、修改代码、运行测试的 Agent。电脑屏幕一边是网页对话框，一边是代码编辑器。AI 生成一段，我复制一段；出现报错，再把报错贴回去问它；改完以后进入游戏测试，不对就退出，继续修改。\n\n现在回头看，那种开发方式也太傻了，但第一个版本就是这样一点点拼出来的。\n\n## 不断打磨\n\n最早的 StardewHUD 是想把《星露谷物语》里那种清晰、温暖的 HUD 带进 Minecraft，我不断地打磨日期、时间、天气、季节、自定义物品计数和运势信息；配置界面也加入了位置、缩放、字体和组件开关等选项。\n\n再后来，我又做了 LuckyFishingRod、Totem of Luck 等不同的小模组，把游戏过程中冒出来的想法一个个变成实际功能。\n\n它们一开始都只是很普通的个人项目。没有完整的开发计划，也没有想过会获得多少关注，更没有想过有一天会被世界各地的玩家装进自己的游戏。\n\n真正困难的往往也不是把功能“做出来”，而是把它做得能够正常使用。\n\n为了让一个 HUD 元素看起来顺眼，我可能会反复调整几个小时；为了同时支持 Fabric、Forge 和 NeoForge，需要分别维护不同的项目；Minecraft 更新版本后，又要重新处理依赖和兼容问题。\n\nStardewHUD 还要适配不同的季节模组、季节天数和运势显示。一个看起来很小的问题，背后可能涉及渲染、配置、资源文件或不同加载器之间的差异。经常是进游戏、发现问题、退出游戏、修改代码，再重新启动。\n\n这些过程有时候确实很累，但现在回想起来，也挺有意思。\n\n> 因为我能够很直观地看到，一个原本只存在于脑海里的想法，是怎样经过一次次修改，最后真的出现在游戏画面里的。\n\n## 社区贡献\n\n有时候更新做到一半，我也会怀疑：\n\n“真的有人会在意这个功能吗？”\n\n“为了这么小的细节花这么多时间，值得吗？”\n\n但每当看到玩家留下反馈，这些怀疑往往又会暂时消失。\n\n有人提交 Bug，让我发现自己测试时没有遇到的问题；有人提出建议，让功能慢慢变得更完整；有人分享安装模组后的游戏画面，让我第一次以旁观者的角度看到，自己写的东西正在别人的世界里运行。\n\n> 甚至还有玩家主动在 GitHub 上提交了俄语翻译。\n\n看到那次提交时，我的感觉很特别。\n\n这意味着有人不只是下载以后玩了一下，而是愿意打开仓库、找到语言文件、完成翻译，再把自己的修改提交回来，让更多说俄语的玩家能够使用这个模组。\n\n从那一刻开始，这件事就不再只是“我做了一个东西，然后其他人下载”这么简单了。\n\n一个最初完全出于个人兴趣的项目，开始被不同地方的人看到、使用、讨论和完善。它依然是我维护的作品，但其中也留下了其他玩家参与过的痕迹。\n\n## 最后\n\n30 万次下载对我来说，最大的意义并不是证明这些模组有多成功。\n\n它更像是在提醒我：当初那个很小、甚至有些随意的想法，真的穿过了我的电脑屏幕，进入了许多素未谋面的玩家的 Minecraft 世界。\n\n从最开始只有自己测试，到后来需要维护多个模组、不同版本和不同加载器；从一个人在网页对话框和 IDE 之间复制粘贴代码，到有人主动提交反馈、建议和翻译——这个过程比下载数字本身更让我觉得奇妙。\n\n代码还是那些代码，项目也还是那些项目。\n\n只是它们连接到的人，已经比我最初想象的多了很多。\n\n感谢每一个下载和使用这些模组的玩家。\n\n感谢那些愿意花时间反馈问题、提出建议、提交翻译和参与改进的朋友。\n\n也感谢最开始那个只是因为玩游戏时有点“不爽”，便决定打开 IDE 试一试的自己。\n\n如果对我的模组感兴趣，可以去看看：\n\nhttps:\u002F\u002Fmodrinth.com\u002Fuser\u002FWeatheraintbad","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-24\u002Fc886b0f0-cc36-41ad-a187-db373db9c42e.jpg",[],[],"龙家轩","https:\u002F\u002Fweatheraintbad.com","f39339b1-aaa6-4e86-b0c2-a6e6a21113b5",{"id":18,"name":19,"slug":20,"description":21},"8649729c-92bf-4ec7-b98b-3bae4271318b","思考","thought","从项目或实操经验中延伸出的思考",[23,27,31,35],{"id":24,"name":25,"slug":26},"0848beb4-db26-4fb8-b391-f852a11be192","AI编程","ai-coding",{"id":28,"name":29,"slug":30},"1404d044-7b7e-4cdc-b703-a5e6df8fda50","游戏","game",{"id":32,"name":33,"slug":34},"541aaa1f-7a45-4fd7-b0f4-8798d3cef066","《我的世界》","minecraft",{"id":36,"name":19,"slug":20},"68cedb55-2cac-412f-8f81-fda8c7d686dd","前往下载","Modrinth","https:\u002F\u002Fmodrinth.com\u002Fuser\u002FWeatheraintbad","published",null,false,2,0,"2026-07-24T00:00:00.000Z","2026-08-17T15:16:55.263Z","2026-07-24T10:33:37.919Z",[49,58,68],{"id":50,"type":6,"title":51,"slug":52,"summary":53,"coverUrl":54,"authorName":14,"sno":55,"publishedAt":56,"createdAt":57},"1f746915-fff0-4199-86e5-df8ad6c3f272","半年，从复制粘贴到Agent管项目","copypaste-to-agent","当执行逐渐交给 agent，开发者真正重要的能力从“写得快”变成了“判断、调度和决定下一步做什么”","\u002Fuploads\u002F2026-09-02\u002F09b76b2e-8398-496c-be1b-eacabe357613.jpg",5,"2026-09-02T00:00:00.000Z","2026-09-02T06:54:38.282Z",{"id":59,"type":6,"title":60,"slug":61,"summary":62,"coverUrl":63,"authorName":64,"sno":65,"publishedAt":66,"createdAt":67},"190a2a0d-4b47-40f7-902a-00ac69ce1b15","AI 编程时代，为什么 Git 和 Pull Request 更重要了","ai-coding-git-pull-request-safety-net","AI 让改动出现得更快，也让变化更难凭记忆追踪。本文解释小提交、Pull Request、自动检查和人工批准如何把 AI 编程变成可比较、可验证、可回滚的协作流程。","\u002Fuploads\u002F2026-09-13\u002F95ac3b51-0915-4200-8130-4ba3195fd935.jpg","Foundit",40,"2026-09-13T00:00:00.000Z","2026-09-13T11:56:01.900Z",{"id":69,"type":6,"title":70,"slug":71,"summary":72,"coverUrl":73,"authorName":64,"sno":74,"publishedAt":75,"createdAt":76},"3e2a7e9e-a123-4ed6-b886-455e76649df1","AI 编程为什么需要“证据链”？","ai-coding-evidence-chain-logs-tests","AI 说“功能已完成”只是声明，真正可靠的结果还需要 diff、终端日志、测试结果和真实操作共同证明。本文解释不同证据能说明什么，以及如何设计任务收尾模板。","\u002Fuploads\u002F2026-09-14\u002F34be8dc4-3692-47ab-8f7c-226dd203c805.jpg",44,"2026-09-14T00:00:00.000Z","2026-09-14T11:00:03.458Z"]