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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
游戏玩法设计非常失败,完全被法学博士牵着走了,一堆莫名其妙(冷门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写的再好,背快捷键也是残废,只能当内核。默认情况下缺乏丰富度

别折腾,不如相信原神
duangsuse::Echo
这似乎在开源软件(Luanti; BlockWild.app )上改了不少? #game 刚刚说这个, #bilibili 就有人一条对话线升级了 #CG , 轻松到甚至懒得发视频 Astra:不是使用逆向编译或泄露的 Minecraft 源码,而是复用了独立开发的开源引擎 Luanti 和玩法项目 Mineclonia,再做中文界面、光影配置等修改。 云层、树冠和远景一起重新调整。 让天空真正参与照明。水面重点处理了重复高光与反射失真 (水体深度吸收、菲涅尔反射与天空盒、方块AO) Astra…
#game #bash

Linux 在体素沙盒上可以说是成功的,甚至是超越性的。 MC是因为知名所以成功

VoxelLibre(Luanti.org) 采用了存档和游戏/MOD混合下载的内容DB,已经不是从前地形清奇的 Minetest

Veloren 采用了可以捏脸的方块精度LoD, 地形偏向宏大,是对 #rust 生成器和shader的秀肌肉(可惜audio似乎没有隔离,PC稍逊就破音败笔)

LLM 的过度工程则说明了这些游戏原理并不复杂,只是即便灵感合理(做成Pokemon那样),被Codex带偏就会表面OK能跑,实则万劫不复
#game 光影shader也不是闭源hackers的专利 🌦

https://terasology.org/gallery/2/ #java

只要游戏类型稍微【开放世界】一点,开源世界在技术力(甚至内容丰富度)上绝对不输给商业

当然因为受JavaFX影响,是不敢于和Rust那样生成一个细到像真山一样的山了…… Velo是真的牛

Terasology的特色也在生物——生物占一个格子,不清楚骨骼动画的质量。但它至少做出来了,而vibe? Codex的复杂度会把自己砸死…… 🦞