跳转到内容

Vibe Coding(氛围编程)实践

氛围编程介绍

  • 什么是氛围编程:

    • 氛围编程的本质是,创作者使用自然语言向AI描述需求,由AI生成代码。
  • 氛围编程的优势是什么:

    • 创作者使用自然语言与大模型进行交互,零基础创作者无需掌握代码编写,极大降低编程门槛。
    • 创作者只需要专注创意与问题解决,减少重复机械劳动。
    • 对比传统编程,可以高效产出原型,快速验证创意。
  • 氛围编程的局限是什么:

    • AI生成的代码不保证一次正确,需要创作者进行测试验证。
    • AI对复杂业务逻辑、边界条件的理解可能有偏差,需求描述越精确,结果越好。
    • AI可能编造不存在的 API,创作者需对照官方 API 文档进行核验。
  • 氛围编程的一般流程:

    • 描述需求:使用自然语言清晰描述需求,说明功能、输入输出、约束等信息。
    • AI生成:由AI分析、规划需求,然后分步骤实现。
    • 测试:测试游戏看效果是否符合需求。
    • 反馈迭代:通过多轮对话形式,说明需要修改的内容,让AI反复迭代。
    • 验收完成:反复测试和迭代,直到功能符合预期。
  • 需求编写指南:

    • 请参考《提示词工程》章节教程,对AI呈现清晰而非模糊的提示词。
    • 推荐创作者储备氛围编程的约束文档、游戏需求文档,方便复用和迭代,而不是单纯依赖多轮对话来实现需求。
      • 如果您制作的游戏有参考游戏或玩法,那么可以明确指出,降低AI的认知成本。
      • 推荐AI将代码保存在独立的文件夹中,尽量避免修改工程中其他脚本。
      • 游戏规则需求文档尽量结构清晰、无歧义、明确约束,避免AI自由发挥。
        • 规则需求文档越细致,撰写所需时间也就越多。如果您对部分游戏规则没有严格要求,那么也可以请AI来补充完善细节。
      • 先说目标,再说细节,分模块、分步骤描述。
以下是一个【编程约束】文档示例,建议创作者将类似内容保存为独立文件,固定一套可复用的约束模板、需求文档结构,在AI对话中作为上下文提供。
备注:该提示词完成于2026年初,随着AI编程工具不断完善,创作者可以尝试更简易的工作流程或提示词。
  • 在编程元件环境下实现一个完整的游戏。
  • 在工程 src 目录下新建Game文件夹,所有游戏相关代码必须放在此文件夹内,禁止在其他目录新建 / 修改代码文件。
  • 阅读当前工程现有代码,确保掌握如何操作元梦接口,掌握如何实现客户端与服务器通信的逻辑。
  • 只在必要情况下修改工程原有代码。
  • 对于重要的步骤或逻辑,输出日志,方便测试后通过日志排查问题。
  • 游戏编写完成后,检查IDE的问题输出,确保没有阻塞游戏运行的问题。
  • 禁止添加本文档未明确规定的任何功能、玩法、游戏元素、特效、音效、道具系统等,所有代码必须严格围绕文档定义的规则实现,无额外扩展内容。如必须添加新功能,需作者确认。
  • 反馈迭代阶段的建议:

    • 如果测试时发现问题,尽量精确描述问题现象、复现步骤、期望行为。
    • 可以将报错日志、控制台输出直接粘贴给AI,帮助其定位问题。
    • 一次反馈聚焦一个问题,避免同时提出多个不相关的修改。
    • 如果AI连续多轮无法解决同一问题,考虑换一种描述方式,或者将问题拆解为更小的子任务。
  • 使用氛围编程创作《元梦之星》星世界游戏的注意事项:

    • 请确保已经完成了前置的环境配置准备工作。
      • 如果尚未完成,那么请参考《AI编程辅助-环境配置》章节内容。
    • 确保AI可以引用正确的编程元件API声明。
      • 推荐参考《AI编程辅助-编程元件API声明》章节内容,将其配置为规则(rule)。
    • 因为现阶段AI无法直接操作元梦编辑器的系统功能(如创建 UI 控件、编写任务或技能等),所以针对这部分内容,需要首先在编辑器编辑,然后向AI说明如何调用。

氛围编程实战

场景一:使用AI实现《入门游戏案例》

创作者在初次接触编程元件时,《入门游戏案例》是推荐的上手指南。那么现在我们使用AI,来帮助我们完成这个例子。

《入门游戏案例》成品如左侧视频所示。
请按照下面的步骤来练习使用AI创作游戏吧!
image9 首先,在元梦编辑器建立地图,并且在场景中摆放一个信号触发盒、一个生物。
摆放在场景后,可以参考《入门游戏案例》进行设置。
image18 在界面编辑器,摆放一个文本控件。
image11 在场景摆放一个编程元件,并且导入脚本。
如果您还对这个步骤不熟悉,那么请参考《快速上手》章节的教程,学习如何使用编程元件。
【编程约束】
  • 在 src 目录下新建FirstGame文件夹,所有游戏相关代码必须放在此文件夹内,禁止在其他目录新建 / 修改代码文件。
  • 只在必要情况下修改工程原有代码。
  • 这是一款单机游戏,游戏逻辑可以完全运行在客户端。
【游戏规则】
  • 在开始游戏时:
    • 给玩家添加一个道具尖叫鸭,道具Id=1106022000000000
  • 当玩家进入场景中的触发盒时:
    • 场景中触发盒实例Id=222
    • 复制一个生物,生物在场景的实例Id=223
    • 生物创建后,让生物跟随玩家
  • 定时补充道具:
    • 每隔2秒向玩家添加道具尖叫鸭。
  • 当生物受到伤害前:
    • 在生物位置创建特效,特效Id=137
    • 击中生物的计数加1,并且显示在文本控件Id=100046上,文本拼接显示,格式为"当前分数为{计数}"
准备好一份需求提示词,如左图所示,包含了常规的【编程约束】和针对当前游戏的【规则文档】。
作为练习,您可以复制左侧的提示词文本直接使用。
备注:请注意核对提示词中的元件、生物、文本控件等Id是否和您场景中使用到的对象实例Id匹配。
备注:左侧的提示词完成于2026年初,随着AI编程工具不断完善,创作者可以尝试更简易的工作流程或提示词。
image12 (本示例采用CodeBuddy,您也可以使用其他AI编程工具)
在AI编程对话框粘贴准备好的文档文本。
在下方选择好要使用的模型,切换至Craft模式,右下角点击按钮发送(send),AI就开始执行任务了。
备注:因为这个小游戏功能较为简单,所以直接使用Craft模式即可。
请再次确认:
  • 已经完成了前置的环境配置准备工作。
    • 如果尚未完成,那么请参考《AI编程辅助-环境配置》章节内容。
  • 确保AI可以引用正确的编程元件API声明。
    • 推荐参考《AI编程辅助-编程元件API声明》章节内容,将其配置为规则(rule)。
image13 等待一段时间,直至完成所有任务。
此时系统会提示任务完成,同时对话框会提示修改了若干文件,请点击【保留】。
image14 将新代码导入到编程元件。
image15 试玩游戏,来看看效果吧。
备注:预期效果是,玩家进入触发盒会创建一个生物;生物会跟随玩家;玩家可以使用尖叫鸭攻击生物,每次击中增加一次计数。每隔2秒会给玩家添加尖叫鸭道具。
image16 如果不符合预期(或需要迭代需求),那么可以向AI说明目前的问题,由AI进行更新。

场景二:简易小游戏《石头剪子布》

最终《石头剪子布》成品如左侧视频所示。
请跟随下面的步骤练习吧,不需要写任何代码,也可以创作游戏!
image17 首先,在元梦编辑器建立地图,摆放好如左图所示的控件(并清晰命名)。
然后在场景放置编程元件,完成编辑器一侧的准备工作。
image2 建立或打开工程,确保工程与地图开启联动环境,并将控件树状结构导出至工程文件夹。
如果您不知道如何导出界面树状结构,请参考教程《编程元件常用功能与术语——获取界面结构》章节内容。
【编程约束】
  • 在编程元件环境下实现一个完整的游戏。
  • 在 src 目录下新建GuessGame文件夹,所有游戏相关代码必须放在此文件夹内,禁止在其他目录新建 / 修改代码文件。
  • 阅读工程现有代码,确保掌握如何操作元梦接口,掌握如何实现客户端与服务器通信的逻辑。
  • 只在必要情况下修改工程原有代码。
  • 游戏规则严格依照下文的【游戏规则】内容制作。
  • 对于重要的步骤或逻辑,输出日志,方便测试后通过日志排查问题。
  • 游戏编写完成后,检查IDE的问题输出,确保没有阻塞游戏运行的问题。
  • 禁止添加本文档未明确规定的任何功能、玩法、游戏元素、特效、音效、道具系统等,所有代码必须严格围绕文档定义的规则实现,无额外扩展内容。如必须添加新功能,需作者确认。
【游戏规则】
  • 制作一款《石头剪子布》游戏。石头剪刀布的规则很简单:两个人选择"石头""剪刀""布"三种选项中的一种,遵循"石头赢剪刀、剪刀赢布、布赢石头"的输赢逻辑,如果选项相同则是平局。
  • 这是一款单机游戏,游戏逻辑可以完全运行在客户端。
  • 对手由AI控制,每局随机从三种选项中选择一个。
  • 数值【对局次数】:每完成一局(无论输赢平)+1,初始值为 0。
  • 数值【胜利次数】:仅玩家获胜时 + 1,初始值为 0。
  • 每局游戏的流程:
    • 玩家点击【布按钮】【剪子按钮】【石头按钮】中任意一个按钮后,立即隐藏所有三个选择按钮,并将选择展示在【我的样式】文本控件。
    • 立即在【对手样式】控件显示 AI 的选择;
    • 立即判断胜负,更新【胜利次数文本】和【对局次数文本】;
    • 立即将【提示文本】更新为结果提示;延迟 2 秒后,自动重置界面:【提示文本】回到初始提示;【对手样式】清空;
    • 重新启用所有三个选择按钮,等待玩家开始下一局。
【界面功能说明】
  • 界面控件的示例Id,位于src\Data\CustomUIData.lua文件中,请根据文档中描述的按钮文本,获取对应的控件_uid。
    • 例如,【布按钮】,对应["布按钮"] = {_uid = 100048,},其实例Id=100048
  • 【提示文本】文本控件,用于显示系统提示文本。
    • 初始状态显示"请选择手势"。
    • 如果玩家获胜,显示"你赢了"。
    • 如果玩家失败,显示"你输了"。
    • 如果平局,显示"平局"。
  • 【对手样式】文本控件,用于显示对手的选项,例如"石头"。初始状态显示为空。
  • 【我的样式】文本控件,用于显示玩家的选项,例如"石头"。初始状态显示为空。
  • 【胜利次数文本】文本控件,用于显示数值【胜利次数】。初始状态显示初始值。
  • 【对局次数文本】文本控件,用于显示数值【对局次数】。初始状态显示初始值。
  • 【布按钮】按钮控件,用于玩家选择【布】。初始状态可点击。
  • 【剪子按钮】按钮控件,用于玩家选择【剪子】。初始状态可点击。
  • 【石头按钮】按钮控件,用于玩家选择【石头】。初始状态可点击。
准备好一份完整的需求文档,如左图所示,包含了常规的【编程约束】和针对当前游戏的【规则文档】。
作为练习,您可以复制左侧的文本直接使用。
备注:左侧的提示词完成于2026年初,随着AI编程工具不断完善,创作者可以尝试更简易的工作流程或提示词。
image3 (本示例采用CodeBuddy,您也可以使用其他AI编程工具)
在对话框粘贴准备好的文档文本。
在下方选择好要使用的模型,切换至Plan模式,右下角点击按钮发送(send)。
image4 等待一段时间,计划完成后,系统会提示"请确认是否按此计划执行?"。
此时查看系统给出的计划文档,如无问题那么点击紫色按钮【Build】开始执行计划。
image5 等待一段时间,直至完成所有任务。
此时系统会提示任务完成,同时对话框会提示修改了若干文件,请点击【保留】。
image6 检查【问题】栏中是否还有阻塞问题,如果无误,那么将脚本导入到地图。
image7 试玩游戏,来看看效果吧。
image8 如果不符合预期(或需要迭代需求),那么可以将AI切换至【Craft】模式,向AI说明目前的问题,由AI进行更新。