我之前用Claude Opus构建了一个2026年世界杯锦标赛游戏的原型版本——48个国家,12个小组,每组4支队伍,最佳第三名的资格赛,32强淘汰赛的抽签系统,全真实的比赛格式。 tournament 层的构建非常坚实。 问题在于:你在其中的 比赛 的实际表现……是……好的。功能良好,但不太有趣。
然后,我玩了一个Arkanoid灵感的游戏,名为 DESTRUCTURE:在碎片中,我意识到什么是缺失的:混乱、动量、以及每次碰撞都意味着什么的街机感觉。所以我又回去,让Claude Fable把比赛引擎完全拿掉,重建为更蠢、更有趣的东西——一个以鼠标为驱动的桌球-混合体,Arkanoid、Vampire Survivors和足球。 你是带着自己国家的旗帜的圆形球体,通过一群老奶奶、蟹和仙人掌的群体打破球,到达对手的球门。 Sonnet处理了后续的调整和 bug-squashing。
对于好奇的人:
这些都是纯粹的vanilla JS,一个单独的Canvas,零依赖。核心感觉来自速度基准的射击力——滑鼠跟随你,和每一帧的paddle位置的变化被注入球体的球。快速滑动,强力射击。所有东西都是根据pitch高度的单个因素进行缩放的,所以它在从手机的横屏到全屏桌面上都能玩得很好。敌人的群体使用一个廉价的boids-ish方法:每个单位都避开邻居,并向球体垂直移动,所以墙壁自然会扩展到填补你通过它的裂缝。
声音是意想不到的胜利。没有任何音频文件——所有东西(墙壁撞击、反弹、击球的冲击根据击球速度进行缩放、观众的欢呼/咒骂、裁判的哨音)都是使用Web Audio API进行实时合成的,使用振荡器和过滤的噪声爆发。整个AudioContext在Kick Off点击时被初始化,以满足浏览器的autoplay策略。锦标赛模拟器的底层是从原来的Opus构建中继承过来的:每场AI对AI的比赛都以权重加权的泊松分布的得分线来解决,每场比赛的所有小组比赛都同时进行,以便没有人能够在早期就溜过去。
来自AI方面的最大教训:指针锁定是一个陷阱,适用于轻度浏览器游戏(黑屏、权限奇怪——只使用一个隐藏的鼠标指针),整个项目中最狡猾的 bug 是一个缺少的 `requestAnimationFrame(loop)` 引导程序调用,导致逻辑是好的,但看起来死了。
在这里玩(最好在桌面电脑上用鼠标,但也可以在手机横屏上玩):
https://tripgeo.com/worstcup
第一到5球或全场最佳成绩,决赛阶段使用黄金球。
评论 (0)