我大约一年前就曾经进行过类似的实验。它很好,基本上很 frustrate,偶尔会有好的时刻,但我没有保留任何东西。 我想尝试再次使用当前的工具生成器并找出现在的天花板。所以我从PixiJS中取出了我的老版本,移到Three.js,并使它成为真正的多人游戏。 有权威的服务器,固定时间,区域感兴趣管理,WebSocket上的二进制协议,客户端预测和重合。 我使用Claude Code和Codex,并给自己一个硬性约束:零资产。 没有精灵, 没有纹理, 没有模型, 没有音频文件。 每个视觉都是几何学, 粒子和着色器在运行时生成。 每个声音都是从振荡器合成的。 部分原因是,我无法绘制, 大部分原因是,我想知道代码内容是否实际有效,我不想再玩精灵表或模型了。 游戏是什么 ARPG抽取跑者。 有一个持久的中心, 你可以在那里分类你的 loot 和你的构建, 并从那里进入无尽的跑步。 一场风暴从后面追赶你,所以站立不动不是一个选择。 你越深入, 你就越好, 每个检查点都会问同一个问题: 将你拥有的东西存入银行并离开, 还是推动一个更深的层次。 角色的力量来自可收集的专家灵魂, 其技能可以升级,而不是固定的类别。 什么工作得很好 领域驱动设计,真的是。 我在编写任何东西之前就命名了领域。 中心, 跑步, 飓风, 检查点, 灵魂石, 跑步石, 修饰符。 一旦这个词汇在代码中生存下来,你和模型就在谈论同样的东西,一条指令就可以落在你想要的地方。 这比我尝试的任何提示技巧都更有效。 金色规则, 在每个阶段都检查。 这是我会将其交给任何开始类似的事情的人的。 我在一开始就写了一份非可谈判的规则清单, 每个任务在每个阶段都要检查, 不仅仅是在审查阶段。 我的一些规则包括: - 一个规则(伤害公式,物品滚动,状态派生)在服务器和客户端都存在, 并且在两者中都使用。 如果你感到复制逻辑的冲动,你就抽象它。 - 没有艺术资产。 如果它不能在代码中生成, 就不应该发布。 - 新内容(一个怪物,一个修饰符,一个技能,一个跑步类型)是数据注册表中的数据。 添加内容永远不应该需要触摸引擎代码。 - 从一开始就假设有成百上千个并发玩家。 客户端永远不被信任。 没有设计决策可以假设单人游戏。 - 每个升级都有可视化影响。 一个技能等级的+1必须在渲染时可见地改变。 没有两个等级看起来一样。 这包括游戏中的每个升级。 - 立即做正确的事情。 即使干净的修复需要触摸十个文件,也不应该发布任何捷径。 一致性是一个大型代码库中的一个重要因素,规则使我没有完全丢失(完全)。 它们也可以立即解决争论,这比它听起来的重要性更大。 建立一个标准,然后在其上构建。 每个关注点都有一个良好命名的组件, 并且在整个项目中都被重用, 从不有第二个实现。 从PixiJS到Three.js的转换几乎是乏味的。 我预计会有真实的痛苦,但实际上是整个项目的轻松部分。 完全的移植需要约24小时, 我真的很惊讶。 开发工具几乎是免费的。 这是我将永远告诉人们的东西。 我有一个地图绘制器和生成器, 一堆测试设置和桩, 以及一个短片创建者来记录片段。 如果我必须手动编写它们, 我们都不会存在,因为它们没有价值。 现在它们甚至不需要花费一个下午。 没有做得很好的东西 角色。 宠物非常棒(我想)。 怪物出来不错, 我对它们大部分都很满意, 有一些是真正的笑话。 玩家角色我与之战斗并且我仍然不满意。 不知道我是否会完全达成目标,如果我花更多时间在上面。 如果有人有一个不涉及资产的工作流程,请分享! 与一年前相比 它不是一个增量改进,它是一个不同的活动。 去年我花了时间来纠正输出。 这年我花了时间来决定应该存在什么。 这就是区别, 而且是更好的工作。 我有点惊讶地看到仅仅一年内就有多大的变化, 并且已经开始思考2027年左右会如何。 如果你想看 我把原型放在了 idlerunner.com 上, 可以让任何人看。 浏览器, 免费, 无下载, 游客登录。 我会将其在几小时内关闭。 愿意回答有关架构或工作流程的任何问题。 链接:https://idlerunner.com/