duangsuse::Echo
961 subscribers
4.93K photos
157 videos
588 files
7.27K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
duangsuse::Echo
#game https://github.com/RedLynx101/Blockwild 7.5号Claude起步的MC克隆,在内存较多时可以打开。居然没有一个人star,而AI发现了友军的成品就拿来加 render() 层了 😅 基本上TS脚本和操作+Rust体素引擎零依赖,源码近40万行,基本上只能靠AI的case study和HITL继续开发 📚 https://github.com/RedLynx101/Blockwild/blob/main/BLOCKWILD_AGENTIC_AU…
昨天作者无意中修好了crash,大致试玩了一下,发现内存占用200M

因为是Agent自己Loop,完成度还挺高的,只是无论代码或玩法都过于复杂

图为Codex对MC替代品的无脑大杂烩——“没影龙”? (房子内部空的)

商店没有MOD系统就内置了,人机协作必须自带Wiki。那 Skill, Spell 这些过度多余的系统有七八个

天气、武器、AI纯音乐和光方块都有,但方块太少了,操作也非常不顺畅(比如Ctrl+方向是奔跑,Shift却是下降.. 😓)

基本上是Claude把MC为用,大杂烩为体(但哪个正经游戏要wiki才会玩啊),你进去后有种【只读访问】的感觉

#vibe #game ps. 这个游戏目前基本只有Agent们知道名字…… 虽然域名都有了 0 star
这个cave生成模式还挺有趣的,像葫芦一样,也可以说是bug。感觉需要配合藤蔓来探索

不要对体素游戏的玩法有太多刻板印象。可是AI又不懂乐趣,我觉得 Creative Coding 上包容AI犯的错,将错就错会更值得一看
游戏玩法设计非常失败,完全被法学博士牵着走了,一堆莫名其妙(冷门MOD级别)的野生玩法

神™还做了 Capture Orb contract,和任天堂的《Pokémon Pokopia》一比就知道滥用AI,啥都不砍会怎么样了……

这种东西放repo里就是占用开发者的精力。 参考上图的玩家口袋,找不到几个正常的方块,拾取也不方便

🌲 比较满意的创新:生物/植物面板。把seedgen的规则可视化为HTML内容,让云原生相比于Java/Rust的优势展露出来(点开即玩也是主要优势)

确实不能像2D体素能用GIMP那样拿Blender去调教噪声seedgen,所以有界线感。但这地图质量也没很高啊..)
duangsuse::Echo
这个cave生成模式还挺有趣的,像葫芦一样,也可以说是bug。
真正的bug除了玩法和操作的调教很差(以及AIGC的生物模型/动画有些古怪)

就是seedgen性能太拉垮了(可以在左上角看到minimap)。 一个柱面要半分钟,在这之前玩家都是穿模的

#algor
(其实也不必看seedgen看的太高,API上就是把无头画板+pixelArt推广到3D,处理下就成MC了。

其中基于几何/噪音/分布的可以免费升维,种树凿河开洞之类/管线依赖自动机的要重选,理解为瞎JB甩墨水然后抹一下,叠几层也可以。重点在边叠边(咋)变样

https://duangsuse.github.io/NebulaRemix/

物件碰撞检测xyz网格hash就够了,为了防止挤出bug,MC有挤压窒息伤害。箭还要单独防穿墙。


体素游戏中 XZ-pillar 和 xyzb2vert 的实现思路:

XZP(16x16xH lazyload) 和 X2V(Airy blocks) 都属于RLE思路。就像Blender右上角Gizmo那样,对柱子转到3个视角,让它的背面往 not Airy 那边挤,拉宽

X2V的过程就是把数组 [1110011110] 变成 [A1B] [] [A2B] [] 的创建指令以addQuad,考虑到贴图ID和朝向

如果完全被遮住则可以剔除,否则材质/渲染阴影属性稍有不同则保留,开启下一条。一般用64bitstruct调用GL而不存浮点

玻璃、透明,原木、方向性贴图。 水草火把、AO,台阶、半砖和流体高度,这些,需要多态存储而不只是贴图ID

如果完全被遮住则可以剔除,否则材质/渲染阴影属性稍有不同则保留,开启下一条。
此外贴图可以用palette优化,编辑防抖可以存连续数组,只要碰撞检测OK大体上就行;近处加载和TNT爆炸优化,光照传播、流体更新也是坑


MC 1.0 通常是在一个world.H/2的海拔高度以下生成水,水边生成一圈沙子。海岸线残的。洞穴空气是多个球形或椭球+CA蚀刻,形不成矿脉。远不及后来的3D噪声洞穴。草地树木完全同理

fogleman/craft 使用 fBM 2D Simplex 打底,3D Simplex Noise 瑞士奶酪生成洞穴内空气,tree_noise(x, z) 种树,模型直接硬编码,但 (x, y, z) -> b 是纯函数图层混合 cave无需跨 Chunk 边界画完,直接省了上游的轮询
😂 🎮
#code #vibe

其实作者并非 AI boys 所说毫无专业训练和准备。在初次开源时,就有了完整的世界观设定
..
当时这个地图生成是2k行,已经是无限流了 。同时是复杂指标top1的文件

[svg] 8MB,感觉是把Codex做爽了

标准的「无头控制大头」,像nerdfonts那样的数量去生成草图,堆料看起来很满,最后不具备可玩性...

游戏生物AI算法也很拉垮,但这就算了。 表面上看起来和《生存战争》好像一样的质量

不清楚是不是方块facestrip太卡,站在卡出透明的块上,没有直接掉下基岩,甚至感觉超平坦


🤔 又是一个复杂度的教训呢。P1所示的文件,历史上曾超过2MB (尝试conv2rust),后来也没搅碎
..足足有1.6M,没有什么设计模式,就硬分模块。至于codecov就不得而知了,反正Agent也是可以联机进去,就是没看是不是vLLM协议
duangsuse::Echo
就是seedgen性能太拉垮了(可以在左上角看到minimap)
虽然确实拉垮,但也比开源11k star Craft.exe 好不少,而且超过了MC1.0
< 真的让人怀念2MB可以达1080 200fps的SQL存档版MC啊,它也支持光效,就差个WebUI和生物圈

可惜一个是render展示(甚至还有把字刻在石头上+把方块设为光源 的快捷键)毫无操作,一个只有seedgen,操作有但反人类,而且卡到没脸看。 前者套个MC import 还能拿11k star

你至今分不清是体素gen+facestrip里的哪步导致边走边卡进虚空。新手还以为是Rust内核的bitstruct,就当它是xyzb2vert优化太差吧(生成又不是不能用)


fyi.
https://github.com/SRombauts/SimplexNoise
GL ❤️ L-System种树/DomainWarping分布/冲刷侵蚀 在ShaderToy上有许多片段. 山脊山谷。河床和冲积扇。“S”形河道。这些纯fBM高程图噪音画不出

https://sites.google.com/site/letsmakeavoxelengine/home/chunk-optimizations
C++ 实现沙盒游戏

人家HUD再拉有JS世界扛着,相比200fps的纯C就有人玩一些(虽然明显不如VeloREN #rust ,哈哈) 😅

什么叫选择大于努力—— 纯C写的再好,背快捷键也是残废,只能当内核。默认情况下缺乏丰富度

别折腾,不如相信原神