新体验:万圣节夜晚的新游戏!--愤怒的南瓜

news2024/11/16 7:43:39

引言:
Chatgpt4.0 所带来的冲击似乎远超出人们想象,网页小游戏《愤怒的南瓜》在昨日(万圣节夜晚)火爆了外网。一位名为 Javi Lopez 的外国小哥使用 Midjourney、DALL•E 3 和 GPT-4 打开了一个无限可能的世界,重新演绎了无数 80、90 后青春回忆中的经典游戏“愤怒的小鸟”,推出了其翻版——“愤怒的南瓜”(Angry Pumpkins)。把草图变网站,用几秒复现一款经典小游戏…随着 GPT-4 与 Midjourney、DALL•E 3 等 AIGC 工具的强强联合,其带给游戏行业的震撼不是一星半点。

打开谷歌搜索,搜索作者Javi Lopez Angry puckins 就能看到他的小游戏博客:

在这里插入图片描述

整个过程使用到了不足 600 行的代码,Javi Lepez 坦言,「没有一行是自己写的,但这却是最具挑战性的部分」。那么,他到底是怎么做的?


新体验:万圣节夜晚的新游戏!--愤怒的南瓜

  • 1. 简介
    • 1.1 框架
    • 1.2 Midjourney AI 生成工具
    • 1.3 DALL-E AI生成工具
  • 2. Angry Puckins 代码部分
  • 参考资料

1. 简介

1.1 框架

  • 图形(graphics):Midjourney / DALLE
  • 代码 (coding):GPT-4

1.2 Midjourney AI 生成工具

Midjourney是一款AI制图工具,只要关键字,就能透过AI算法生成相对应的图片,只需要不到一分钟。
可以选择不同画家的艺术风格,例如安迪华荷、达芬奇、达利和毕加索等,还能识别特定镜头或摄影术语。
有别于谷歌的 Imagen和OpenAI的DALL.E,Midjourney是第一个快速生成AI制图并开放予大众申请使用的平台。
在这里插入图片描述

1.3 DALL-E AI生成工具

2021 年初,OpenAI 发布了一款名为 DALL-E 的图像生成模型,该模型说白了就是可以根据用户提供的文本描述自动生成对应的图像。

  • 技术原理
    DALL-E 的技术原理主要基于 GPT-3 和 GAN 模型。GPT-3 我们都很熟悉,是一个大型的自然语言生成模型,可以根据用户提供的文本描述生成对应的文本内容。而 GAN 模型则是一种 生成对抗网络,可以通过两个神经网络进行训练,一个生成器网络负责生成图片,一个判别器网络负责判断生成的图片是否真实。通过反复迭代训练,GAN模型可以生成逼真的图片。
  • 编码阶段
    DALL-E的工作原理可以分为两个步骤:编码和解码。在编码阶段,DALL-E 将输入的文字转换为向量表示。这里使用的是GPT-3模型,即利用大规模文本数据训练出来的预训练语言模型。GPT-3模型可以将输入的自然语言转换为一个高维向量,这个向量包含了输入文字的语义和语法信息。譬如,下述是一个用Pytorch的编码过程:
import torch
import transformers

tokenizer = transformers.GPT2Tokenizer.from_pretrained('gpt2')
model = transformers.GPT2Model.from_pretrained('gpt2')

text = "一只黄色的小狗在草地上奔跑"
input_ids = torch.tensor(tokenizer.encode(text)).unsqueeze(0)
outputs = model(input_ids)
vector = outputs[0][0].detach().numpy()

2. Angry Puckins 代码部分

完成第一步之后,Javi Lepez 开始借助 GPT-4 来生成所需的代码,游戏玩法类似于《愤怒的小鸟》,当点击鼠标向后拉动“南瓜”并松开时,“南瓜”会弹射出去撞击木箱、石块、骨头等物品,击打到“怪物精灵”,直至完全消除后进入下一关。因此,Javi Lepez 给 GPT-4 的提示词也是循序渐进,从简单的提问开始:我们现在能否使用 matter.js 和 p5.js 制作一个类似《愤怒的小鸟》风格的简单游戏?只需使用鼠标发射带有角度和力量的球,然后用 2D 物理碰撞来击中堆叠的方块。在尝试过程中,Javi Lepez 也发现,「迄今为止,我们还没有达到 GPT-4 只需一个提示就能生成完整游戏的程度」。这意味着 GPT-4 生成的代码并不能拿来即用,这对它的使用者的能力也提出了一定的要求,使用者需要明白每次出现问题时,都要清楚地解释错误并让 GPT-4 进一步去修复:现在,我问你:你知道《愤怒的小鸟》中是如何发射小鸟的吗?屏幕上的手指是干什么的?完全正确。使用鼠标将这个功能添加到游戏中。
我遇到了这个错误,请修复它:Uncaught ReferenceError: Constraint is not defined
我想要制作一个具有粒子效果的火炬。可以用 p5.js 做吗?请制作一个。
现在,将怪物变成圆形,并要非常小心:应用与矩形怪物相同的技术,涉及缩放和碰撞区域,不要像之前那样搞砸。Javi Lepez 表示,这部分花费了我们(我和 GPT-4)许多耐心以及多次迭代,最终得到了只有 600 行的代码。

参考资料

【1】设计的Angry Puckins Game网站
【2】CSDN-资讯-Angry Puckins

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1163827.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Centos7快速重置root密码

1、重新启动Centos7,5秒内按向下方向键,使其停留在开机界面,如下图。 2、按’e’键,进入如下界面,移动向下方向键至“linux16”开头的行。然后按向右的方向键移动,找到“ro”并将其修改为“rw init/sysroot/bin/bash…

[动态规划] (三) LeetCode 746. 使用最小花费爬楼梯

[动态规划] (三)LeetCode 746. 使用最小花费爬楼梯(两种解法) 文章目录 [动态规划] (三)LeetCode 746. 使用最小花费爬楼梯(两种解法)题目解析解题思路状态表示状态转移方程初始化和填表顺序返回值状态表示状态转移方程初始化和填表顺序返回值 代码实现总结 746. 使用最小花费爬…

建议没用过这个的社区人都来试试!

不是吧,还有社区工作者不知道这个好东西嘛? 就是这个——写作火火,是写报告、方案一把好手啊 直接输入想写的内容,几秒钟报名啊方案啊就来了,不满意可以重新写,直到你满意为止,真的很方便。 …

mybatisplus查询百万数据慢问题

1.遇到的问题 本次查询的数据是一个视图,查询的数据量也比较大,整体有百万数据。 错误提示: 2023-11-02 07:55:52 [http-nio-11605-exec-3] ERROR c.a.druid.filter.stat.StatFilter [] [] - slow sql 6568 millis. SELECT COUNT(1) FROM (…

乐鑫工程部署过程记录

一、获取编译环境 1、下载sdk,ESP-IDF 这里有很多发布版本,当前我选择的是4.4.6,可以选择下载压缩包,也可以git直接clone 2、配置编译环境 我选择的是Linux Ubuntu下部署开发环境 查看入门指南 选择对应的芯片,我…

C语言 每日一题 11

1.使用函数求素数和 本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。 素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。 函数接口定义: int prime(int p); int PrimeSum(int m, int n); 其中…

pip install python是关于 NMake Makefiles报错

CMake Error at CMakeLists.txt:2 (PROJECT):GeneratorNMake Makefilesdoes not support platform specification, but platformx64was specified. I cant install opencv-python because I dont have vs? - Stack Overflow 这样解决就行。

042-第三代软件开发-485通信

第三代软件开发-485通信 文章目录 第三代软件开发-485通信项目介绍485通信RS-485 简介RS-232 简介RS-485 与 RS-232 区别Qt 中使用485 总结一下 关键字: Qt、 Qml、 QSerialPort、 QSerialPort、 QThread 项目介绍 欢迎来到我们的 QML & C 项目&#xff01…

Keil uv5 MDK使用教程

目录 前言一、开发环境搭建1.1 Keil的安装1.2 其他工具安装1.3 注意事项 二、Keil基本使用2.1 新建工程模板2.1.1 基于固件库(先复制文件夹,后添加文件)2.1.2 基于寄存器2.1.3 基于HAL库 2.2 下载与调试2.3 工程目录下简介2.4 MDK使用技巧 前…

uniapp在APP端使用echarts用formatter设置y轴保留2位小数点不生效

uniapp使用echarts,在内置浏览器中,设置保留2位小数能正常显示(代码如下),但是在APP端这个设置不起作用。 yAxis: {type: value,axisLabel: {formatter: function (val) {return val.toFixed(2); //y轴始终保留小数点…

H桥电机驱动器MS35656可pin对pin兼容DRV8812

MS35656 是一款双通道 DMOS 全桥驱动器,可以驱动一个步进电机或者两个直流电机。每个全桥的驱动电流在 24V 电源下可以工作到 1.4A。MS35656 集成了固定关断时间的 PWM 电流校正器,以及一个 2bit 的非线性 DAC(数模转换器)&#x…

【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件

文章目录 1.MenuStrip2.ContextMenuStrip3.ToolStrip4.StatusStrip 1.MenuStrip MenuStrip作为一个容器可以包含多个菜单项。MenuStrip 的重要属性包括: Name:菜单的名字Dock:菜单的停靠位置Items:菜单项的集合 ToolStripMenuI…

WebDAV之π-Disk派盘 + 一叶日记

推荐一款操作方便、界面简洁,记录生活点滴与心情,具有诗情画意的日记软件。 一叶日记是一款记录日记的手机软件,在这款软件中它里面有着各种不同的工具,可以方便用户去随时随地的记录日记,同时里面还有着各种不同的主题背景,可以供用户去选择使用各种功能,给用户记录带…

精准努力,提升自己的核心竞争力——中国人民大学与加拿大女王大学金融硕士

步入职场,相信大家都想成为职场的宠儿。经过一番摸爬滚打后,在职场稳固了地位。但想叱咤职场,还需要精准努力,提升自己的核心竞争力。中国人民大学与加拿大女王大学金融硕士项目为你补给能量。 任何资产都有贬值的风险&#xff0…

超好用的IDEA插件推荐,写完代码直接调试接口

Apipost推出IDEA插件非常省时高效,写完代码直接可以进行调试,而且支持生成接口文档,真是后端神器啊! 可以点击下方链接安装更新或在插件商店中搜索安装 下载链接:https://plugins.jetbrains.com/plugin/22676-apipos…

解决postman打开一直转圈圈的问题

项目场景: 对于后端开发来说,Postman是经常使用的。特别是一些前后端分离的项目,后端开发测试接口就需要一款好用的接口测试工具,postman就是一款使用方便功能比较齐全的测试工具 问题描述 最近使用postman进行接口测试&#xf…

矢量图编辑_Inkscape裁剪与蒙版

文章目录 一、简介二、示例三、裁剪 Clipping四、蒙版 Masking 一、简介 裁剪(Clipping) 和 蒙版/遮罩(masking) 是限制对象(或对象组)哪一部分可见的方法。对于裁剪, 裁剪路径(cli…

window安装不同版本的mysql

引用:https://blog.csdn.net/weixin_45151960/article/details/113537526 当安装第二个的时候,,会有问题,, 下载mysql8 和 mysql5.7 : https://downloads.mysql.com/archives/community 下载之后&#xff…

项目实战:通过axios加载水果库存系统的首页数据

1、创建静态页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><link rel"stylesheet" href"style/index.css"><script src"script/axios.mi…

python调用飞书机器人发送文件

当前飞书webhook机器人还不支持发送文件类型的群消息&#xff0c;可以申请创建一个机器人应用来实现群发送文件消息。 创建机器人后&#xff0c;需要开通一系列权限&#xff0c;然后发布。由管理员审核通过后&#xff0c;才可使用。 包括如下的权限&#xff0c;可以获取群的c…