Hacker News 中文摘要

RSS订阅

Show HN:我用AI编写了一款塔防游戏并记录了整个过程 -- Show HN: I AI-coded a tower defense game and documented the whole process

文章摘要

该项目是一个由maciej-trebacz开发的塔防类游戏,名为“Tower of Time”,专为游戏开发竞赛(game jam)而制作。游戏采用“vibe coded”风格,代码托管在GitHub上,开发者通过该平台展示了游戏的相关内容和开发过程。

文章总结

文章主要内容总结

项目名称: Tower of Time
项目类型: 塔防类游戏
项目背景: 该项目是为2025年夏季的“Beginner's Jam”游戏开发比赛而制作的,结合了时间旅行元素的塔防游戏。

游戏简介

  • 游戏玩法: 玩家需要保卫基地,抵御一波又一波的敌人。游戏的核心机制是时间倒流,当敌人突破防线时,玩家可以倒转时间,重新制定策略。
  • 主要特点:
    • 时间倒流: 允许玩家回退时间,重新部署防御。
    • 多种塔类型: 包括基础炮塔、狙击塔、减速塔和范围伤害塔。
    • 能量系统: 管理能量以建造塔和倒流时间。

技术栈

  • 引擎: Phaser 3 (v3.90.0) 与 Phaser Editor v4
  • 编程语言: TypeScript
  • 构建工具: Vite

开发过程

  • AI辅助开发: 约95%的代码由AI生成,使用了以下工具:
    • Augment Code: 提供高级代码库上下文和AI编码辅助。
    • Cursor: AI驱动的代码编辑器,主要使用Agent模式。
    • Claude Sonnet 4: 作为主要的LLM(大型语言模型),偶尔使用OpenAI o3和Claude Opus 4。
  • 开发经验:
    • AI可以快速进行原型设计,但在从原型到最终游戏的过渡中需要谨慎。
    • AI倾向于编写大量代码,项目代码量可能可以减少一半。
    • 当AI遇到困难时,建议添加调试日志或重新表述提示。

项目结构

  • src/: 包含游戏的主要代码,如场景、预制件、系统、组件、UI和工具。
  • public/: 包含资源文件,如图像、声音、字体和基本CSS样式。
  • index.html: 游戏入口点。

控制方式

  • 键盘和手柄: 支持键盘和游戏手柄操作。
    • 移动: 方向键 / 手柄模拟摇杆
    • 动作: 空格键 / PlayStation的Cross键 / Xbox的A键
    • 倒流: 退格键 / 左扳机键

项目资源

  • 艺术资产: 包括来自不同艺术家的太空站、怪物、飞船、宝石和背景等。
  • 音乐: 由Amnesia Fortnight提供,测试和平衡由deathunitesus完成。

许可证

  • MIT许可证: 项目采用MIT许可证,详细信息见LICENSE文件。

项目链接

图片保留

  • 封面图: Tower of Time
  • 游戏截图: Screenshot

总结

Tower of Time是一款结合了时间旅行元素的塔防游戏,展示了AI在游戏开发中的强大辅助能力。项目通过AI工具快速实现了原型设计,并在开发过程中积累了宝贵的经验。游戏支持键盘和手柄操作,提供了多种塔类型和能量管理系统,玩家可以通过倒流时间来重新制定策略。项目采用MIT许可证,所有代码和资源均可公开访问。

评论总结

主要观点总结:

  1. 游戏体验与创新

    • 正面评价:多位评论者认为游戏设计新颖,特别是“时间倒流”机制和键盘操作令人印象深刻。例如,评论1提到:“This is a pretty cool game! I love the twists of rewinding time and playing with the keyboard.”(这游戏很棒!我喜欢时间倒流和键盘操作的创意。)
    • 负面反馈:有评论指出游戏存在Bug,如评论7提到:“A bug in the intro: in the first round in the first playthrough my turret destroyed one of the critter and the other reached the tower.”(游戏开头有个Bug:在第一轮中,我的炮塔摧毁了一个敌人,但另一个敌人到达了塔,游戏没有提示,只能重启。)
  2. AI编程工具的使用与评价

    • 支持观点:部分评论者认为AI编程工具能显著提高效率,但需要清晰的指令和结构。评论4提到:“My impression is the leverage you get out of it is exponentially proportional to the quality of your instructions.”(我的印象是,AI的效用与指令质量呈指数关系。)
    • 质疑观点:有评论者对AI工具的实际效果表示怀疑,认为其效率不如预期。评论13指出:“After a full two minutes into this ‘AI assistance’ process, the AI finally tells him to just call a ‘canBuildAtCurrentPosition’ method.”(经过两分钟的“AI辅助”过程,AI最终只是告诉他调用一个已存在的方法。)
  3. 游戏开发与AI的结合

    • 积极展望:有评论者认为AI工具可以显著提升游戏开发的效率和质量。评论9提到:“Part of me thinks Rockstar delayed the release of GTA 6 because they realized they can polish the game by a significant margin using the latest AI tools.”(我认为Rockstar推迟GTA 6发布是因为他们意识到可以通过最新的AI工具大幅提升游戏质量。)
    • 实际经验:部分开发者分享了使用AI工具的经验,强调清晰的指令和架构设计的重要性。评论11提到:“But the prompts used for this project match my experience of what works best with AI-coding: a strong and thorough idea of what you want.”(这个项目使用的提示符与我的经验一致:AI编程最有效的方式是明确且详细的需求。)
  4. 工具选择与成本

    • 工具选择:有评论者询问为何选择特定AI工具及其效果。评论10提到:“This is the first I’ve heard of Augment Code. What does it do? Why did you pick that tool, versus alternatives?”(这是我第一次听说Augment Code。它有什么功能?你为什么选择它而不是其他工具?)
    • 成本问题:部分评论者关注使用AI工具的成本,但未得到明确回应。评论16提到:“I didn’t find any mention to the costs spent on Claude.”(我没有找到任何关于Claude成本的提及。)

总结:

评论者对游戏的创新设计和AI编程工具的使用持有不同看法。部分人认为AI工具能显著提升开发效率,但也有人对其实际效果表示怀疑。此外,工具选择和成本问题也引发了讨论。