大家好!我一直在打造一款名为**Bitiverse**的浏览器内置多人在线角色扮演游戏(RPG),游戏中的一切都以一位为单位,所有人都缺乏经验,而恶灵却奇迹般地进入了高层管理。整个项目中,我一直将人工智能(AI)作为开发伙伴。有趣的部分不是让它“为我制作一款游戏”,而是在分解游戏成小系统并制定严格的规则后,让AI帮助实现、测试和压力测试每个系统。 Bitiverse具有随机生成的共享世界、实时多人在线、战斗、咒语、采集、打造、住宿、地下城、交易、公会、任务、玩家商店、银行、支持工具和令人惊讶的椅子获取方式等功能。客户端在浏览器中运行,而游戏服务器是 TypeScript 模块,运行在 SpacetimeDB 中。其中一个最大的教训是,当我给AI提供不变量而不是模糊的功能要求时,它才会发挥最佳作用。地形生成必须在客户端和服务器上都保持完美的确定性。数据库存储世界的变化,但不存储基础世界本身。定时系统必须在没有在线玩家时暂停。服务器从不信任客户端提供的坐标。一旦那些规则被写下来,AI就可以帮助扩展游戏,而不需要悄悄地将架构变成汤。它也对那些不那么光鲜的工作很有用:生成测试、追踪多人在线状态错误、检查安全边界、在交易和库存操作中找到边缘情况、建立管理员和支持工具。然而,我仍然需要做出设计决策并拒绝不合适的想法。AI可以在给予足够自由的情况下产生大量的技术上合法但实际上是无用的内容。游戏的视觉资产并非由AI生成;游戏使用CC0 Urizen的一位为单位的图块集。 生成AI的部分是开发工作流:架构讨论、实现、调试、测试和反复问,“玩家可能会用这个减少器做什么可怕的事情?”我很想知道其他开发者如何在项目中保持AI协助的项目的一致性。您是否依赖架构文档、自动化测试、严格任务边界还是只是盯着代码直到它害怕您?您可以在这里玩Bitiverse:https://fortisq.itch.io/bitiverse 微小的像素。巨大的世界。可悲的决定。