游戏文化浓度也许很高的微型博客,还有审查观察和浅显的科普杂谈。每日 7:30 准时更新。明明很向往自由,却有着严格约束,和奇怪规则的频道。

由 gledos 创作的内容,如果没有另外声明,均为 CC-BY 4.0 许可协议。

gledos 无法保证内容正确,但会一直尝试追逐正确。

管理员: @gledos_green
Minecraft 中的强运

Minecraft 的附魔功能,使用了不够安全的随机数/种子设计。只要满足一定条件,就能观测、锁定和自定义这个种子值,从而将看似随机的附魔结果,引向玩家需要的。因为涉及操作随机数生成(Random Number Generation),所以也被称作 RNG 附魔。

比如只要操纵种子值,就能直接附魔出「锋利 IV、横扫之刃 III、击退 II、耐久 III、火焰附加 II、抢夺 III」的下界合金剑。

具体原理为,Minecraft 的 XP seed 1 和 2 并不会随意变化,而是玩家做出合成、冲刺、挖掘、丢弃等动作,随机数才会按照该行为而变化。

有玩家想到只要进行数次附魔,期间不做其他事情,仅将附魔时显示的内容,代入大量计算,就能穷举出当前游戏的种子。然后再丢弃背包中特定数量的物品,将种子调整到目标,然后就能得到目标附魔了。该软件托管在 GitHub:Earthcomputer/EnchantmentCracker,需要观看视频教程,也有 中文翻译 的视频教程。

附言:这种穷举种子的做法,有点类似「哈希靓号」,即通过穷举来生成好看的 PGP、Bitcoin 或是 Tor 地址。

附言 2:五重塔已经修好了,只是没有装修内饰。

#游戏 #原理 #minecraft
跟着 Minecraft 建筑视频搭建

想要在 Minecraft 服务器里修建一座木质高塔,随便找了个视频,是「THE拉麵」的「日式建築教學 - 五重塔」,便开始了搭建。

但开始搭建,就发现了问题。首先是视频作者使用创造模式来搭建,因为可以飞行,所以搭建逻辑不符合生存,还需要自己思考搭建方法。然后是材料需求很大,还需要不断花费时间搜集材料。但是已经开了个头,并且建筑完成后很美,所以还是坚持了下去。

这应该就算 沉没成本 吧。刚规划地基的时候,就发现建筑有点大了。但想着已经花费了时间来搭建,那么还是继续下去吧,不让付出的努力白费。想要中途换个建筑的念想,也会被沉没成本抑制,结果就被「套牢」了。

好在已经完成了两层的外部结构,理论上再来一天就能完成全部的外部结构,之后就是做内饰了。

附言:之后跟着建筑视频搭建,一定要看清楚教程搭建的形式(创造/生存),以及确认材料需求情况,避免难以完成的情况。

#游戏 #minecraft
Minecraft 山洞建筑学

Minecraft 的建筑很费心,但也有方法节省一半精力,只处理内部装饰,而几乎不用理会外部的设计,那就是在洞穴里修建房屋。

哔哩哔哩 UP 主「迷人Rui_」,就制作了山洞系列的生存建筑视频,并发布了教程《三年山顶洞人玩家教你山洞建筑学 附存档》。

山洞建筑的要点是层次以及模块化。前者是屋顶设计,用不同高度、透明度的方块做出层次感。后者需要预设计一些模块,之后塞进洞穴里就好。并且山洞建筑要扩建也很容易,因为不重新设计外形,只要挖掘一块新区域即可。

附言:封面图复刻自「迷人Rui_」的山洞建筑教学,光影为高性能的 photon

#游戏 #minecraft
收益与捐赠情况披露(2024年9月)

2024年9月,本频道通过捐赠获得了一些收益,情况如下:

+ 爱发电 捐赠:20 元/月
+ 1 个 telega 广告收益:7.87 USD

感谢大家的对频道的订阅,这些支持将帮助 gledos 继续运营频道。

#透明度
网络游戏出版合规讲座提到的游戏 其一

这场讲座分为三个主题,分别是:〈主题一:法律法规讲座〉〈主题二:合规案例分析讲座〉和〈主题三:二次元游戏合规要点〉。现已将〈主题一〉的部分文字化,对于研究应该会有帮助。

〈主题一:法律法规讲座〉提到或是截图中的游戏,共计出现 34 款或系列,排除掉过于冷门的手游,有:Coronavieus Attack、《隐密性动2》《闪点行动》《足球经理2005》《命令与征服:将军》《战地风云4》《使命召唤9:黑色行动2》《肮脏的中国餐馆》《卡斯特的复仇》《种族清理》《邪教模拟器》《烟火》《克苏鲁神话》《夺命邮差》(POSTAL、喋血街头)、HATRED、GTA 系列、Election Year Knockout、《赛博朋克2077》(通过强尼银手)、《女神异闻录5》(通过明智吾郎)、《江南百景图》《口袋妖怪:复刻》《集合啦!动物森友会》《勇者斗恶龙》《诸神之战》《黑道圣徒4》《地下城与勇士》《明日方舟》《原神》。

有趣的是 PPT 中出现了《卡斯特的复仇》(Custer's Revenge)这款游戏,这是雅达利 2600 上的游戏,被认为是第一款成人游戏,并涉及种族主义内容。具体玩法是玩家扮演牛仔,躲避印第安人的箭矢,目标是强奸地图尽头的裸体原住民。

但应该没有多少人玩过这款游戏,通常只有在介绍游戏史,比如色情游戏史或者游戏审查史时,会提到它。另外《肮脏的中国餐馆》(Dirty Chinese Restaurant)这款未发售游戏,之前有稍微研究过。

虽然 DCR 在介绍中有许多离谱内容,比如使用人肉充当的食材、侮辱顾客、克扣员工工资等。但应该是款黑色幽默、讽刺向的游戏,因为游戏还含有「业力」系统,任何恶行都会转化为惩罚。以此抑制玩家的恶行。

不过 DCR 毕竟不是华裔开发的游戏,之后引起澳大利亚议员和中华人民共和国驻多伦多总领馆关注,最终停止开发并道歉。如果是华人开发的游戏,也许就不会受到这方面的压力吧。

ggame
网络游戏出版合规讲座

最近「中共广州市黄埔区委宣传部」指导,「广州市黄埔区音像与数字出版协会」主办了「2024年广州市黄埔区动漫游戏产业发展系列活动——网络游戏出版合规讲座」。

其 PPT 页面被「游戏新知君」和「然岚」公开发布,但画质较差,并且顺序有些乱,不适合直接研究。于是花费了些时间整理,将 PPT 页面按照「然岚」拍摄的文件名称,以时间顺序排序。最终为这份 PPT 泄漏图片,添加了索引功能。

之后打算将每张 PPT 的内容,做一下 OCR 处理,并寻找有趣的内容。

ggame
Minecraft 的距离算法与密铺

Minecraft 使用了三种距离算法,作用在不同的机制中。比如水对 耕地 的湿润作用,是 切比雪夫距离 的 4 格。而 脚手架 的支撑范围,是 曼哈顿距离 的 6 格。

图片 1 展示了一格水对耕地的湿润情况,图片 2 与 3 是脚手架最远支撑范围的情况。如果使用最少的水来做普通农场,那么只需要制作多个这样的 9 × 9 农田,然后镶嵌在一起即可。这个问题的本质是正方形镶嵌。

脚手架同样也能这样密铺,实现最少的材料,铺出最大的面积。为了演示方便,这里使用曼哈顿距离为 1 格的甘蔗(甘蔗需要在水的四周 1 格,才能种植),作为演示。

图片 4 与 5 就是曼哈顿距离为 1 格的密铺方式(图片 5 来自维基人 Tomruen),更大的曼哈顿距离也是相同的原理。源自哔哩哔哩 UP 主「Azhu_233」视频的图片 6,是脚手架的密铺方法。

附言:剩下的是直线距离,即欧几里得距离。但主要与实体相关,比如刷怪距离、怪物视线距离等,与方块关系不大。

#游戏 #原理 #minecraft
适合倍速播放的音乐

2022年8月,YouTube 通过 博客,介绍了用户播放视频的速度。大多数人都是用的是默认一倍速,而第二多的速度为 1.5 倍速。虽然 YouTube 没公布喜欢倍速播放用户的比例,但既然写博客提到,那就是数量不少吧。

既然许多人都会倍速播放视频,那么视频创作者,是否需要注意这点。比如使用较慢速的 BGM,防止一些音乐加速后太吵?

哔哩哔哩 UP 主「迷人Rui_」,在「教你山洞建筑学」视频中特别调整了 BGM『新学期スタート!』,将其减慢到了 0.8 速率左右。这样即便以两倍速播放,音乐实际上也仅有 1.6 倍速,听起来不会很凌乱。

也许,之后会有人直接制作出适合各种速度播放的音乐。亦或者让视频的音轨分离,让人声与 BGM 分离,这样播放器在不同速率播放时,能播放固定速率的 BGM 音轨。

#杂谈
从一,不……从零开始——为什么许多编程语言,从零开始计数?

如题,许多编程语言的数组,都是从零开始计数。比如 JavaScript 中写个简单的数组,并获取 index 为零的值:

const 水果 = ["香蕉", "苹果", "桃子"];
console.log(水果[0]);


则会返回 `"香蕉"`。这种设计的流行,往往会追溯到 C 语言。C 语言虽然算是高级语言,但为了性能,还是有许多低级语言的特点。而数组在 C 语言的描述中,其本质是指向内存地址,而数字表示偏移值。因此没有偏移的 0,表示第一个,即 0 = 1。

之后许多高级语言使用索引概念,来表示数组序号,但受到 C 语言的影响,同样沿用了「从零开始」。只有少量较边缘的语言,比如 Lua 和 MATLAB 使用了从 1 开始的数组序号,即 1 = 1。

所以,程序员不一定都习惯从零开始计数,只是因为历史惯性,不得不沿用这个有些反直觉的计数方法。但这又因为这仅仅是历史惯性,所以存在一些矛盾,比如代码行号。

大多数编辑器的默认设置,和语言的规范中,代码行号均是从 1 开始。比如 Python 的错误报告,只有在从 1 开始行号的编辑器上,才能找到对应的错误,即 1 = 1。

而游戏 Mindustry 里的编程语言 mlog,使用的是从零开始的行号,并具有实用性,因为在执行 jump(goto)指令时就需要指定准确的行号,即 0 = 1。

这种一会儿 0 = 1,1 = 1 混杂的情况,有些令人头大。于是有 VSCode 编辑器的使用者,想要让其支持从零开始行号的设置,而发起功能请求。但来自微软的开发者,以其他编辑器没有支持该功能为理由,关闭了此功能请求。说明历史惯性,对这些问题的影响很大……

灵感和部分内容来自哔哩哔哩 UP 主「原子能」的视频《那些无解的计算机问题【让编程再次伟大#16】》。

#考据 #杂谈
Back to Top