Data+AI时代,如何打造下一代数智平台? 了解详情
写点什么

ChatGPT 按提示词数秒完成游戏开发,程序员们该慌了

Lance Ulanoff

  • 2024-12-10
    北京
  • 本文字数:2551 字

    阅读完需:约 8 分钟

大小:1.26M时长:07:20
ChatGPT按提示词数秒完成游戏开发,程序员们该慌了

作者 | Lance Ulanoff

编译 | 核子可乐

策划 | 华卫

 

ChatGPT 的发展速度真是令人震惊。

 

在距离第一次要求生成式 AI 聊天机器人帮我开发游戏的近两年之后,我使用完全相同的提示词再次测试了 ChatGPT 4o,结果让我大为震撼。

 

去年首次用 GPT 编写游戏:浪费了几小时

 

自从 OpenAI 的这套生成式 AI 平台问世以来,人们一直想靠它帮助处理自己不愿做的任务,甚至在某些情况下执行自己做不到的工作。我是作家出身,所以不会要求 ChatGPT 创作散文;我的艺术设计能力也尚可,所以只用生成式图像来自娱自乐。但我确实不会编程,虽然之前学过 HTML、JavaScript 甚至是 BASIC 编程,但现在我已经彻底生疏、用不起来了。

 

之前(2023 年初)我曾要求 ChatGPT 帮我制作一款名为 Tic-Tac-Go 的游戏,基本规则跟井字棋类似,只是更加高级。我设想的棋盘是一个 12 x 12 的网格,获胜需要将六个“X”标或者六个“O”标连成一条线。

 

我想创建一种基于井字棋的变体,但规则更为复杂:棋盘网格应该为 12 x 12,仍使用 X 和 O 作为双方棋子。双方玩家均可使用自己的“X”和“O”摆放进任意网格来阻止对方的当前或者后续棋步。游戏目标是在抢在对手之前,在任意行、列或者对角线上将六个“X”或“O”摆成一条线。请注意,一方玩家执“X”、另一方玩家执“O”,请使用简单的 HTML 和 JavaScript 编写此程序。

 

我们将游戏命名为:Tic-Tac-Go。虽然这个项目的开发难度不是特别高,但至少也涉及嵌套表还有浏览器内交互,反正单凭我自己的开发能力肯定搞不定。

 

第一次尝试就取得了成功,ChatGPT 不仅提供了 CSS、JavaScript 还有 HTML 文件,而且几乎每部分代码都附有大量注释。但受到内置字符限制(4096)的影响,它给出的大部分内容都不完整。我只能一直要求 ChatGPT 继续提供其余代码,但它总会重复之前已经给出过的部分。

 

这里肯定有我自己的失误,但我也意识到 ChatGPT 1.0 并不足以弥补我个人的开发能力空白。最终,我们没能完成游戏构建,经过几个小时测试后无奈放弃。

 


这是去年的成果

 

用 GPT 4o 试建同款游戏:几秒内跃升 2.0 版

 

在过去这 20 个月里,ChatGPT 的功能迎来了巨大飞跃。我最近开始使用 ChatGPT 搜索,并发现它确实比谷歌更能有效提供优质答案。ChatGPT 4o 也摆脱了我在第一版中发现的几乎所有限制。我开始好奇它的能力边界究竟在哪里。

 

另外,同事在 Slack 频道上也提到了一些新的 AI 分布式计算平台,比如能够帮助程序员快速开发游戏的 Oasis AI。我当时是不信的,但也想起了曾经失败的 ChatGPT 游戏开发尝试。在聊了自己的经历后,同事回复说“不知道现在这些新的 AI 工具,能不能更轻松地做好这项工作。”

 

好主意!ChatGPT 4o 能不能在当年初版 ChatGPT 跌倒的地方爬起,创造新的神话?

 

构思整理到游戏运行,一次成功

为了公平起见,我没有对提示词做任何调整,只是将前文中的提示文本直接粘贴到了 ChatGPT 4o 当中。我很快就意识到,现在的 4o 跟当年的 1.0 根本就不是一个量级。如果说 ChatGPT 1 最多算是小学水平的智能,那 ChatGPT 4o 至少是名大学生。

 

ChatGPT 4o 首先将我的游戏构思整理成了更简洁的形式:在 12 x 12 网格的棋盘上创建一款更复杂的井字棋变体,名为 Tic-Tac-Go。可以使用 HTMl 和 JavaScript 实现。在此游戏中,双方玩家轮流放置标记(X 或 O),尝试在行、列或对角线上将六个标记摆成一条线。可通过放置标记阻挡对方的连线策略。

 


之后它开始快速生成 HTML 和 JavaScript 代码,而且相当完整。于是我得到了从开关“html”到末尾“/html”的所有内容。在代码之后,ChatGPT 又对其工作原理和游戏的相关功能做出了四点解释。除 HTML 和 JavaScript 之外,另有一个“复制代码”的按钮。

 

我把代码复制下来,并询问 ChatGPT 要如何在网络浏览器中进行测试(当然,这是故意发问)。它建议我打开 TextEdit 之类的文本编辑器,粘贴代码,再使用“.html”扩展名将其保存。完成之后,我尝试用 Chrome 和 Safari 浏览器加载该文件,却发现这并不是游戏,只是一堆代码加个一个“重启游戏”的按钮。

 

我把情况反馈给 ChatGPT,并询问是否需要将 JavaScript 保存成单独的文件。它告诉我不需要,并提醒我检查文件的扩展名是否正确、有没有禁用 RichText。它还提供了其他一些建议,比如使用开发者工具检查 JavaScript 能否正常工作。

 


这时候我又有了新点子。我直接把报错网页截图发给了 ChatGPT,问它能不能分析图像。这种多模态功能在初版 ChatGPT 中根本无法想象,但如今却已毫无难度。

 

ChatGPT 回答道,“看起来您的文件显示的是 RTF(富文本格式)标记,而非 HTML。如果将文件保存为 RTF 文档、而非纯文本,通常就会发生这种情况。”之后它还解释了个中原理,以及具体修复方法。

 

我重新粘贴了代码,将 TextEdit 设置为 PlainText,再将其重新保存为 HTML 文件。最后,我用 Chrome 打开了文件。

 


程序顺利运行,整个游戏跟我想象的完全一样。棋盘上共有 144 个空格,还有轮流放置“X”和“O”标记的双玩家系统。

 


一键就能更新至多人在线游戏

接下来,我又意识到新手在面对棋盘时肯定不知道该怎么做,所以我问 ChatGPT 能不能在游戏画面下方加上规则。ChatGPT 马上输出了包含游戏规则的新代码。

 

在初版 ChatGPT 中,每当我要求它重新输出代码,过程中都会有一些东西消失无踪。但这次不会,20 个月的迭代让它在效率、明确性和记忆力都远超自己先前的版本。

 


这时候又一个大胆的想法冒了出来,但也是非常合乎逻辑的游戏更新方向:在线游戏功能。现在的设计只允许两个人并肩坐在电脑前对弈,但我想要实现在线比赛功能。

 

 “要将其打造成多人在线游戏,您需要设置一个服务器来袒管理游戏状态及玩家互动。以下是必要步骤的概括表述和部分代码示例,希望能帮助您快速上手……”

 

ChatGPT 为我提供了详细的说明以及设置服务器所需要的全部代码。其中涉及到 Node.js 和 WebSockets 之类的东西,反正我读着读着感觉血压都上来了,完全无法理解。但 ChatGPT 明显很清楚自己在做什么,而且是真的拥有独立完成整项任务的能力。

 

也就是说,我只需要出个主意,ChatGPT 4o 就能把余下的工作都搞定。好样的,AI,这项技术真的在短时间内取得了长足进步。我坚信 AI 辅助编程有着光明的未来,只是不确定人类程序员的未来还光不光明。

 

原文链接:

https://www.techradar.com/computing/artificial-intelligence/chatgpt-coded-a-game-for-me-in-seconds-and-i-am-simply-astounded-and-coders-should-be-very-worried

2024-12-10 10:385834

评论

发布
暂无评论
发现更多内容

物联网技术在物联网产业格局的分布与应用

AIRIOT

低代码 物联网 低代码,项目开发

Seata 多语言体系建设

SOFAStack

开源项目 seata 开源软件 多编程语言 项目共建

连接无限·协同无界|融云首届全球企业通信云大会 WECC 来了

融云 RongCloud

通信云

如何将 NFT 元数据从 IPFS 转移到智能合约中

devpoint

智能合约 NFT Metaverse 7月月更

如何搭建清晰易懂的数据看板?

字节跳动数据平台

字节跳动 BI BI 分析工具 sentinel dashboard 可视化看板

DeFi 2.0的LaaS协议,重振DeFi赛道发展的关键

BlockChain先知

nacos注册中心之服务地址的查询

急需上岸的小谢

7月月更

Baklib:分享一些关于建设企业知识管理(KM)的方法

Baklib

你的技术leader不懂这个?没有它就是没有设计的完成思考过程

田晓亮

方法论 架构设计

Docker 搭建 MySQL 主从复制

宁在春

MySQL Docker 主从复制 7月月更

Linux并不是一个操作系统

冯亮

Linux GNU

承上启下继往开来,Python3上下文管理器(ContextManagers)与With关键字的迷思

刘悦的技术博客

Python 数据库 Python3 上下文 上下文管理器

架构实战营第7模块作业

Geek_53787a

典型的数据湖应用案例

五分钟学大数据

数据湖 7月月更

力扣第三题——无重复字符的最长子串

为自己带盐

力扣

文档协同工具推荐

Baklib

IMPALA2.12环境安装

怀瑾握瑜的嘉与嘉

7月月更

基于 SPICE 协议的硬编推流整合方案在云游戏中的应用

字节跳动视频云技术团队

视频编解码 云游戏

Paper Time 回顾|MB2:为自治数据库建立行为模型

OceanBase 数据库

【Docker 那些事儿】容器监控系统,来自Docker的暴击

Albert Edison

Docker 云计算 Kubernetes 云原生 7月月更

学生思维VS职场思维

KEY.L

连续最大和与判断回文

未见花闻

7月月更

论文领读|面向机器翻译的多语言预训练技术哪家强?最新进展一睹为快!

澜舟孟子开源社区

人工智能 自然语言处理 机器学习 后端 机器翻译

React Native 跨端框架与小程序混编的方法

Geek_99967b

小程序

【刷题记录】15.三数之和

WangNing

7月月更

王者荣耀商城异地多活架构设计

joak

openharmony萌新贡献指南

坚果

开源 HarmonyOS OpenHarmony 7月月更

我有 7种 实现web实时消息推送的方案,7种!

程序员小富

Java springboot websocket 消息系统

深度遍历:统计最高分的节点数目 🐟

空城机

算法题 7月月更

👈🏻👈🏻👈🏻你来追我呀!Flutter 实现追逐动画

岛上码农

flutter ios 移动端开发 安卓开发 7月月更

ChatGPT按提示词数秒完成游戏开发,程序员们该慌了_生成式 AI_InfoQ精选文章