乐于分享
好东西不私藏

AI时代,做游戏还有必要学“古法编程”吗?

AI时代,做游戏还有必要学“古法编程”吗?

打开AI编程工具,输入一句话:

帮我写一个Unity角色移动脚本,支持跳跃、冲刺和动画切换。

几秒钟后,一段看起来结构完整的代码便出现在屏幕上。

继续告诉它“加上体力系统”“改成联机同步”“再优化一下性能”,AI似乎也能迅速完成。

于是,一个越来越现实的问题出现了:

AI都能写代码了,做游戏还有必要从变量、循环、类和算法开始学习吗?还需要自己读懂代码吗?

答案可以先说在前面:

手写每一行代码的重要性正在下降,但理解代码、判断代码和控制系统的能力,反而变得更加重要。

AI改变的不是“是否需要技术”,而是技术能力的重心。

过去,程序员的主要任务之一是把解决方案翻译成代码;现在,AI可以承担越来越多翻译和实现工作。人的价值开始向需求定义、架构设计、结果验证、问题诊断和风险控制转移。

这意味着,传统编程的学习方式需要改变,但编程基础本身并没有失去价值。


一、什么是“古法编程”?

“古法编程”并不是严格的技术概念,它更像AI时代的一种调侃:

  • 自己查文档;
  • 自己设计类;
  • 自己写函数;
  • 自己处理报错;
  • 自己逐行调试;
  • 自己完成重构;
  • 自己理解项目中的每一段逻辑。

在AI编程工具出现之前,这是软件开发的常态。

今天,开发者可以直接描述目标,让AI生成代码、查找问题、补充测试,甚至修改整个项目。传统工作中大量重复、机械和可模式化的部分,确实正在被自动化。

比如:

  • 创建基础角色控制器;
  • 编写常见数据结构;
  • 生成编辑器工具;
  • 批量修改接口;
  • 完成格式转换;
  • 编写样板代码;
  • 解释报错;
  • 补充注释;
  • 生成单元测试;
  • 调用成熟API。

如果仍然要求开发者完全脱离AI,逐字手写所有代码,并以此证明“基本功”,显然已经完全不符合现实。

但问题在于:

AI能够生成代码,不等于它能够自动承担代码产生的全部后果。


二、会生成代码,不等于会完成游戏

一个游戏功能从想法到上线,并不是“写出一段能运行的代码”这么简单。

以角色移动为例,AI很容易生成一个基础脚本。但进入真实项目后,还需要回答:

  • 移动使用物理系统还是直接修改坐标?
  • 输入采样应该放在哪个生命周期?
  • 跳跃如何避免连续触发?
  • 斜坡和台阶怎样处理?
  • 不同帧率下速度是否一致?
  • 动画根运动是否参与位移?
  • 摄像机旋转如何影响移动方向?
  • 手柄和触屏怎样兼容?
  • 联机时由客户端还是服务器决定位置?
  • 断线重连后如何恢复状态?
  • 大量角色同时存在时性能是否可接受?

AI可以针对每个问题给出方案,但这些方案之间可能互相冲突。

例如,AI第一次让角色通过刚体移动,第二次加入冲刺时却直接修改Transform;随后添加联机同步,又引入一套位置校正逻辑。

三个功能单独看都“能用”,组合后却可能出现抖动、穿墙、状态覆盖和网络瞬移。

这正是游戏开发的本质难点:

难的不是生成一个函数,而是让大量系统长期稳定地共同工作。


三、AI时代,最不应该放弃的是“读懂代码”

很多人认为,既然AI可以写代码,那么人只需要描述需求。

这在小型实验中可能成立,在长期项目中却非常危险

因为只要你无法读懂AI生成的代码,就无法可靠回答三个问题:

  1. 它是否真的实现了需求?
  2. 它为什么能够运行?
  3. 它在什么条件下会出问题?

无法回答这三个问题,开发过程就会逐渐变成“提示词抽奖”。

代码报错时继续问AI,修改后出现新问题,再把新问题交给AI。项目可能暂时向前推进,但开发者对系统的控制力越来越弱。

最终,代码量不断增加,功能之间高度耦合,任何改动都可能引发新的异常。

这类项目最典型的状态是:

  • 演示版本很快;
  • 功能越加越慢;
  • Bug反复出现;
  • AI每次都修改不同位置;
  • 没有人知道哪段代码可以安全删除;
  • 最后只能推倒重来。

所以,AI时代真正危险的不是“不会手写代码”,而是:

看不懂,却敢于合并;没验证,却敢于发布;不理解系统,却持续让AI扩建系统。


四、AI写出的代码,为什么仍然需要检查?

AI编程工具已经非常强大,但它依然存在几个结构性限制。

1. AI不知道完整需求

用户描述的是“增加一个背包系统”,但真实项目中可能还涉及:

  • 道具堆叠;
  • 装备槽;
  • 拆分数量;
  • 存档;
  • 联机同步;
  • 交易;
  • 任务追踪;
  • UI刷新;
  • 版本兼容;
  • 反作弊。

如果上下文中没有明确说明,AI就只能做出假设。

代码可能没有语法错误,却在需求层面实现了错误的系统。

2. AI看到的项目上下文可能不完整

大型游戏项目可能包含数十万甚至数百万行代码,以及大量场景、资源、配置和第三方插件。

即使AI能够读取整个代码仓库,它也不一定理解所有隐含约定:

  • 哪些接口不能修改;
  • 哪些资源由编辑器自动生成;
  • 哪些逻辑依赖执行顺序;
  • 哪些系统正在迁移;
  • 哪些“奇怪写法”是在规避历史问题;
  • 哪些平台存在特殊限制。

AI越缺少上下文,生成“局部正确、整体错误”代码的概率越高。

3. 能运行不代表质量合格

一段代码可以正常运行,却仍然存在:

  • 性能浪费;
  • 内存泄漏;
  • 并发问题;
  • 安全漏洞;
  • 难以维护;
  • 错误的异常处理;
  • 隐蔽的边界问题;
  • 对引擎生命周期的误用。

游戏尤其容易出现“看起来没问题”的缺陷。

例如,一个查询操作放在每帧更新中,测试场景里只有十个对象时十分流畅;正式关卡出现上千个对象后,帧率才突然下降。

AI可以帮助优化,但前提是有人知道应该测量什么。

4. AI也会非常自信地犯错

2025年Stack Overflow开发者调查显示,AI工具使用率持续增长,但开发者对输出准确性的信任并未同步增加:46%的受访者表示不信任AI输出的准确性,87%对准确性存在担忧,81%担心安全和隐私问题。

这种“不完全信任”并不代表AI没有价值,反而说明行业正在形成更成熟的使用方式:

使用AI,但不把判断权交给AI。


五、AI一定能提高开发效率吗?

不能一概而论。

GitHub发布的一项随机对照研究认为,使用Copilot完成特定任务的代码在可读性、可靠性、可维护性和简洁性等指标上取得了小幅改善。

但METR在2025年针对成熟开源项目进行的随机对照实验,却发现参与研究的资深开发者在使用当时的AI工具后,完成任务平均多用了约19%的时间。值得注意的是,开发者自己却认为AI让他们变快了。

这两个结论并不真正矛盾。

AI的效果高度依赖:

  • 任务是否清晰;
  • 项目是否成熟;
  • 开发者是否熟悉代码库;
  • AI能否获得足够上下文;
  • 生成结果需要多少审查;
  • 使用者是否掌握有效的协作方式;
  • 工具能力处于什么发展阶段。

在独立、标准化、边界明确的任务中,AI往往表现出色;在历史复杂、约束众多、需要深入理解的系统中,审查和纠错成本可能抵消生成速度。

所以,不能用“AI十秒生成了五百行代码”衡量生产力。

真正的生产力应该计算:

需求澄清+ 代码生成+ 人工审查+ 测试验证+ 问题修复+ 后期维护

代码生成得快,只代表其中一个环节变快。


六、做游戏究竟还要不要学语法?

要学,但不必再用过去的方式学。

变量、条件判断、循环、函数、类、继承、接口和数据结构仍然需要理解,因为它们构成了阅读代码的基础语言。

但学习目标不必是:

脱离任何工具,默写所有语法和API。

更有价值的目标是:

  • 看懂一段代码在做什么;
  • 判断数据从哪里来、到哪里去;
  • 知道某个函数何时执行;
  • 理解对象之间如何依赖;
  • 发现明显的边界错误;
  • 能够修改和验证AI生成的实现;
  • 遇到问题时知道怎样缩小范围。

API文档解放了程序员的记忆力,AI代码生成解放了程序员的打字力,但两者都没有解放程序员的判断力

语法从“生产能力”逐渐变成了“阅读能力”。

它类似自然语言中的词汇和语法:你不必自己写小说,但如果完全不识字,就无法判断别人交给你的合同是否可靠。


七、哪些“传统基本功”仍然不可替代?

1. 拆解问题

“做一个战斗系统”不是可直接执行的任务。

开发者需要把它拆解为:

  • 输入;
  • 状态;
    -技能;
  • 目标选择;
  • 命中检测;
  • 伤害计算;
  • 动画;
  • 特效;
  • 音频;
  • UI;
  • 存档;
  • 网络同步。

AI擅长完成边界清晰的任务,但任务边界通常需要人定义。

2. 数据流理解

游戏中的Bug经常不是某行代码写错,而是数据在多个系统之间流动时出现问题。

例如角色血量可能同时受到:

  • 战斗系统修改;
  • 装备系统加成;
  • 状态效果影响;
  • UI系统读取;
  • 存档系统保存;
  • 网络系统同步。

如果不理解数据所有权,AI可能让多个模块直接修改同一个状态,最终造成不可预测的结果。

3. 调试能力

真正的调试不是把报错信息复制给AI,而是建立证据链:

  • 问题是否稳定复现?
  • 从哪个版本开始出现?
  • 输入状态是否正确?
  • 哪个变量首次偏离预期?
  • 问题发生在客户端还是服务器?
  • 是逻辑错误、资源错误还是时序问题?
  • 修改后是否引发回归?

AI可以帮助分析证据,但证据需要通过日志、断点、性能分析器和最小复现来获得。

4. 架构与边界

AI很容易增加代码,却不天然擅长控制系统复杂度。

如果每次需求都让AI直接“找一个位置加功能”,项目就会逐渐形成隐性依赖。

开发者需要决定:

  • 谁拥有这份数据;
  • 哪个模块可以修改它;
  • 系统之间通过什么接口通信;
  • 哪些逻辑可以复用;
  • 哪些功能应该隔离;
  • 哪些技术债必须尽快处理。

这类决策决定项目能走多远。

5. 性能意识

游戏是实时软件。

普通应用晚100毫秒响应,用户可能没有感觉;游戏如果持续掉帧,操作体验会立即恶化。

开发者需要理解:

  • 主线程;
  • CPU与GPU分工;
  • 每帧更新;
  • 内存分配;
  • 垃圾回收;
  • Draw Call;
  • 资源加载;
  • 网络带宽;
  • 算法复杂度。

AI可以提出优化建议,但它不能仅凭代码片段准确知道真实瓶颈。优化必须建立在测量结果上。

6. 安全与责任

AI不会替开发者承担上线责任。

如果AI生成的联机逻辑信任客户端,玩家可能作弊;如果存档更新逻辑有误,玩家进度可能丢失;如果使用了不适当的第三方代码,还可能产生许可证风险。

最终对产品负责的仍然是开发团队。


八、游戏开发中,哪些工作最适合交给AI?

AI最适合处理“目标清楚、边界明确、结果容易验证”的工作。

例如:

  • 生成数据类和基础结构;
  • 编写编辑器批处理工具;
  • 创建配置读取代码;
  • 补充重复接口;
  • 生成基础Shader或脚本框架;
  • 编写测试用例;
  • 解释陌生代码;
  • 查找可能的空引用;
  • 重构小范围重复逻辑;
  • 将伪代码转化为实现;
  • 为现有模块补充日志;
  • 根据明确规范生成序列化代码。

这些任务拥有一个共同特点:

对错可以通过编译、测试或清晰规则快速判断。

AI不太适合在缺少监督的情况下独立决定:

  • 整个项目架构;
  • 核心战斗框架;
  • 网络权威边界;
  • 大规模资源管理方案;
  • 经济系统安全规则;
  • 高风险性能优化;
  • 跨模块数据迁移;
  • 正式环境中的破坏性操作。

不是因为AI永远做不到,而是因为一旦判断错误,影响范围很大,验证成本也很高。


九、“氛围编程”适合做游戏吗?

所谓“氛围编程”,通常是指开发者主要用自然语言描述需求,由AI生成和修改代码,自己很少直接阅读实现。

这种方式非常适合:

  • 游戏创意验证;
  • Game Jam;
  • 小型原型;
  • 一次性工具;
  • 交互演示;
  • 非核心功能试验。

它让不熟悉编程的人也能快速看到想法运行起来,这是非常有价值的能力。

但从原型进入正式产品后,情况会发生变化。

游戏需要面对:

  • 持续增加的内容;
  • 多个平台;
  • 不同硬件;
  • 存档兼容;
  • 版本升级;
  • 性能优化;
  • 玩家异常操作;
  • 长期维护;
  • 联机与安全问题。

此时,项目的核心问题从“能否做出来”变成“能否稳定扩展”。

如果开发者完全无法理解底层代码,氛围编程很容易遇到复杂度天花板。

因此,更稳妥的方式是:

用氛围编程快速验证创意,用工程化方法完成正式产品。


十、新手还应该从“Hello World”学起吗?

不一定要按照传统教材,从大量抽象语法开始。

更适合AI时代的学习方式,是以真实游戏功能为主线。

例如,制作一个最小可玩的项目:

  1. 让角色移动;
  2. 增加碰撞;
  3. 添加敌人;
  4. 处理伤害;
  5. 显示血量;
  6. 保存进度;
  7. 加入简单菜单;
  8. 导出并运行。

AI可以参与每一步,但学习者必须追问:

  • 这段代码由谁调用?
  • 为什么写在这里?
  • 这个变量保存了什么?
  • 删除这一行会发生什么?
  • 如果对象不存在怎么办?
  • 每帧执行的成本是多少?
  • 怎样证明功能确实正确?

这样学到的不是语法记忆,而是代码与游戏行为之间的因果关系。


十一、AI时代更合理的能力分层

未来的游戏开发者,可以把技术能力分成四个层次。

第一层:让AI生成代码

能够描述需求,并让AI输出一个可运行的版本。

这是起点,但不是终点。

第二层:读懂并修改代码

能够理解主要逻辑、调整参数、修复简单问题,并判断AI是否偏离需求。

这是一名独立开发者至少应该具备的能力。

第三层:设计系统和验证结果

能够定义模块边界、数据流、测试方法和性能标准,再让AI完成部分实现。

这是AI时代的核心工程能力。

第四层:控制大型项目复杂度

能够处理多人协作、长期演进、网络架构、性能瓶颈、技术债和线上风险。

这一层不会因为AI出现而消失。相反,当AI让代码生产速度大幅提升后,控制复杂度会变得更加重要。


十二、不同角色应该学到什么程度?

游戏策划

不一定需要独立完成复杂系统,但应该能理解变量、条件、事件、状态机和数据结构。

这样才能编写可落地的规则,也能判断AI原型是否符合设计目标。

游戏美术与技术美术

需要理解材质、Shader、资源规范、渲染流程和基础脚本。

AI可以辅助生成工具和Shader,但视觉错误、性能问题和资源管线仍需要专业判断。

独立开发者

至少应达到“能阅读、能调试、能验证”的水平。

因为独立开发者没有完整技术团队兜底,完全依赖AI会放大项目风险。

游戏程序

代码生成只是基本工具,更重要的是系统设计、性能、安全、网络、工具链和复杂问题诊断。

程序岗位不会简单消失,但只负责写样板代码的价值会继续下降。


十三、怎样正确地和AI一起写游戏代码?

可以采用一套更可靠的流程。

第一步:先定义目标和边界

不要只说“帮我做一个背包系统”,而要明确:

  • 支持哪些操作;
  • 数据由谁维护;
  • 是否需要存档;
  • 是否需要联机;
  • 目标平台是什么;
  • 哪些现有接口不能修改。

第二步:要求AI先解释方案

在生成大量代码之前,先让AI给出:

  • 模块划分;
  • 数据结构;
  • 调用流程;
  • 关键风险;
  • 测试方法。

方案错误时,修改文字比修改一千行代码便宜得多。

第三步:小步实现

一次只实现一个可验证单元。

例如,先完成道具数据,再完成容器逻辑,然后接入UI,最后处理存档。不要让AI一次生成整个大型系统。

第四步:逐段审查

确认:

  • 代码修改了哪些文件;
  • 为什么需要这些改动;
  • 是否引入新的依赖;
  • 是否破坏已有接口;
  • 是否存在重复实现。

第五步:运行测试和性能分析

不要把“编译通过”当作完成。

还要测试边界条件、异常输入、长时间运行、低性能设备和多人环境。

第六步:保留版本记录

每次只提交一个清晰改动,出现问题时才能定位和回退。

AI可以很快改动大量文件,版本控制因此比过去更加重要。


十四、未来真正稀缺的,不是代码,而是判断力

当代码生成成本下降,项目中可能出现更多代码,而不是更少。

每个人都能快速添加功能后,新的问题将变成:

  • 哪些功能根本不该做?
  • 哪些代码应该删除?
  • 哪种架构能够继续扩展?
  • 哪个AI方案值得采用?
  • 哪些风险必须由人确认?
  • 如何证明产品足够稳定?

过去,代码昂贵,团队会谨慎决定是否实现一个功能。

未来,代码越来越便宜,但集成、验证、维护和承担后果仍然昂贵。

因此,AI时代最有价值的开发者,不一定是手速最快、语法背得最多的人,而是能够:

  • 把模糊问题变清楚;
  • 把复杂系统拆开;
  • 识别AI的错误;
  • 用证据验证结果;
  • 在速度与质量之间做出正确取舍。

结语:不必迷信手写,但必须保留理解

AI已经改变了游戏开发。

它让原型更快,让小团队拥有过去难以获得的生产力,也让更多非程序人员能够把想法变成可运行的作品。

因此,我们确实不必再把“从零手写每一行代码”视为专业性的唯一证明。

但如果因此得出“以后不需要读代码”,结论恰恰相反。

AI越能生成代码,人就越需要判断:

  • 生成的是什么;
  • 为什么这样生成;
  • 是否符合项目约束;
  • 出错后如何定位;
  • 上线后由谁负责。

所以,AI时代做游戏,未必还需要坚持完整的“古法编程”,但仍然需要编程思维,也必须具备基本的代码阅读能力。

更准确地说:

过去,开发者通过写代码创造系统;未来,开发者将更多地通过设计、审查和驾驭代码控制系统。

工具正在改变,人的工作重心也在改变。

但只要游戏仍然是一套需要长期运行、不断扩展并对玩家负责的软件系统,理解代码就不会过时。

真正会被AI淘汰的,可能不是“会编程的人”,而是既不理解技术,也不愿意对AI结果进行判断的人。