Minecraft Fabric 开发小记
本文是我尝试 Minecraft 开发的笔记,我的目标很简单,从从单纯的新增方块,新增实体,一直到能够在 Minecraft 里面完成我大部分工作,即,如果能在 Minecraft 中运行像 Kitty 或 Alacritty 之类的终端,那我就能够在 Minecraft 中完成我大部分平时学习、休闲需要做到的任务了。
现在情况
可能鸽了,也许以后会继续做。
现在 AI 的浪潮已经把 Web 3.0、元宇宙这些概念淹没。但是把现实生活中的事物搬到虚拟世界本身就是元宇宙最朴素的思想。
其次,也可能是一个更重要的原因,Minecraft 开发和移动开发很相似,比如面对一系列 semi-transparent 的接口,event-driven 编程,如斯种种。我目前对移动开发比较缺少 inspiration,现在到 13 号上国产算力课也就两个星期,学点东西也不是坏事,谁叫它是暑假呢?
这篇文章也只写一些我的方向、指引(steering)性的想法。如果有后人要重新踏上我这段旅途的时候,愿我的经历能成为暗夜中的一丛流萤。毕竟 AI 时代已经很少有人从博客中学会“我该怎么做”了。
如何学?
- Fabric 的开发者文档:Developer Guides | Fabric Documentation
- Jetbrains 全系 IDE 中都可以装 AI 插件 JetBrains AI Assistant - IntelliJ IDEs Plugin | Marketplace
- 秉持一个思想:Java 是面向对象,事件驱动的开发,方块、物品都要注册相应的事件,做很多事情都可以用继承基类的方法得到
生命游戏、绿色圆圈、自定义唱片
我想到生命游戏主要是因为它是一个非常经典的数学模型,是“方块具有状态”的典型例子。生命游戏可以用 \(8\times 8\) 的红石电路来实现,但是在这里我想尝试使用模组去实现,提示词可以参考如下:
我想要创建一个 Conway 生命游戏灯,这个灯会根据周围方块的状态每当 Conway 方块收到一个特定信号就集体更新一步
有两个方块:
- 生命游戏灯,这个灯有亮和暗两种状态,对其按下“使用”键可以改变其状态
- 生命游戏控制方块,每当这个方块接受到一个红石信号(可以是上升沿或者下降沿),就更新所有生命游戏灯的状态
https://docs.fabricmc.net/develop/blocks/first-block
它需要用到这个文档中的哪些资料? 另外能不能帮我实现,把这个压缩土给替换掉
绿色圆圈就是一个吃了有概率反胃的食物;本来打算实现可以投掷的水杯但是发现这个功能喷溅式瞬间伤害药水就可以实现这个功能,所以就作罢了。
我还实现了一个一个播放《永恒的东风》的音乐唱片
总结一下:
- 生命游戏:类的继承,函数的重载(比如点击后发生什么)
- 绿色圆圈和自定义唱片:注册
最终效果:

在 MC 中打开终端/浏览器
已经有有名的 WebDisplays Mod 在做这件事情了(浏览器),甚至有人用 Claude 写了一个 Fabric 上的迁移,虽然终端做的人还是比较少
感觉做这件事我也学不到什么东西,可能光耗 AI 额度了。完成以后我应该也不会用很多。
鸽了,就以这首歌词作为我 Minecraft 模组开发的注脚吧:
不爱我的非要上
那么硬的南墙非要撞
是不是内心希望
头破血流就会让你想起
最爱我的时光
——《跳楼机》