We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode 我找到了一位“有才华”的画家,想跟他从0开始,做一个游戏出来,名字叫《齐天大圣》

我找到了一位“有才华”的画家,想跟他从0开始,做一个游戏出来,名字叫《齐天大圣》

2024/12/20
logo of podcast 忽软忽硬

忽软忽硬

AI Deep Dive AI Insights AI Chapters Transcript
People
栋哥
Topics
栋哥:与画家合作,利用AI工具MarsCode辅助开发一款名为《齐天大圣》的2D游戏。游戏灵感源于《黑神话悟空》和《塞尔达传说》,并参考了《八方旅人》的风格。游戏主角设定为孙悟空,美术方面由画家负责,程序方面则结合自身编程经验和AI辅助进行开发。在开发过程中,栋哥充分利用了AI代码生成能力,但同时也指出了AI在代码质量、性能优化以及对复杂逻辑处理上的局限性。他认为AI更适合作为编程的辅助工具,而非完全替代程序员。程序员仍然需要具备扎实的编程功底,才能更好地驾驭AI工具,并最终完成高质量的游戏开发。栋哥在视频中分享了使用AI工具的经验,并表达了对AI在编程领域巨大作用的认可,同时也强调了编程的乐趣以及程序员自身能力的重要性。他认为,即使未来AI技术发展到可以完全替代人工编程的地步,编程的乐趣依然存在。在游戏开发中,栋哥不仅使用了AI辅助生成代码,也结合自身经验对代码进行修改和优化,力求达到最佳效果。他特别提到在处理游戏背景方面,为了追求更复杂的视觉效果,他使用了多线程技术,并对AI生成的代码进行了调整。最终,栋哥希望通过这次游戏开发,留下一些有意义的东西。

Deep Dive

Key Insights

为什么选择《齐天大圣》作为游戏的名字?

游戏的主角是孙悟空,这个名字既符合主题,也具有文化象征意义。

画家和程序员在游戏开发中的主要区别是什么?

画家想法多、女朋友多、游戏玩得多,而程序员主要专注于写代码。

为什么选择《塞尔达传说》风格而不是《八方旅人》风格?

虽然《八方旅人》风格也很吸引人,但《塞尔达传说》风格更简单,且符合程序员的偏好。

程序员之前做过哪些游戏相关的项目?

程序员曾写过一本关于Java语言的书,并在书中实现了一个模仿马里奥的2D游戏。

为什么程序员选择孙悟空作为游戏主角?

程序员原本想模仿马里奥,但考虑到版权问题,选择了孙悟空作为替代角色。

程序员如何看待AI在编程中的作用?

程序员认为AI在编程中是一个有用的帮手,但仍然需要程序员自己编写和调整代码,AI无法完全替代人类的创造力和判断力。

程序员在使用AI工具时遇到了哪些问题?

AI生成的代码有时过于粗糙,不符合程序员的预期,且在某些情况下会重复使用不合适的编程方法。

程序员如何看待AI生成的美术资源?

程序员认为AI很难生成复杂的美术资源,尤其是动态的2D图像,因此美术部分主要由画家手工完成。

程序员对未来AI在编程中的发展有何看法?

程序员认为AI可能会在未来变得更加智能,但编程本身的乐趣和创造性不会被完全取代。

Chapters
本期播客介绍了博主与一位画家合作开发游戏《齐天大圣》的历程。从最初的想法,到利用AI工具辅助编程,以及对AI在编程中的作用和局限性的思考,都做了详细的阐述。
  • 与画家合作开发游戏《齐天大圣》
  • 使用AI辅助编程,代码完成率约30%-40%
  • AI在简单游戏开发中表现良好,但在复杂游戏中存在局限性
  • 认为程序员仍然需要掌握编程技能,AI是辅助工具

Shownotes Transcript

大家好这一期呢是没有访谈按道理说是要有访谈的但是这几天我实在是没空剪这个电台已经录好了实在是没空剪而且我本来一直是要给这些听众给这个嘉宾要审核一下万一人家在电台里说了什么不该说的我至少应该剪出来是吧我觉得这是比较合理的但是我实在是没有时间所以呢这一期呢我就呃

录一个自己做的事情也算是给自己做个广告我跟画家就是电台采访第一期那个家伙然后做了一个游戏我们准备把他的名字叫做齐天大圣

他画家呢他结束访谈的时候不就说了吗是吧那个美术生嘛然后肯定是不像是我这种老实巴交的程序员他有三多嘛是吧想法多女朋友多然后游戏玩的也多我呢只是写代码比较多我跟他访谈之后啊然后后来不是出了这个黑神话悟空吗黑神黑神话这个游戏然后呢我就想哎好像是跟我想的我也买了哈嗯

然后我也玩通关了但是呢我又觉得好像是哎呀要是我能做一个类似于实现我想法的游戏就更好了是吧所以呢就在我不是有个论坛吗然后然后就就一直谈这个黑神话他就在画家呢就在论坛里写了一个对中国游戏的一些思考是吧其中也提到了这个黑神话但还还提到过很多了

在那个帖子里我就留言我说要不我们一起做一个游戏吧他当时喜欢的风格是那个八方旅人那样的我不知道大家有没有玩过这个八方旅人但是呢我更加倾向于做一个更简单一点的但八方旅人看起来也不是很难但是八方旅人实在是太考验这个化工了嘛但是我更喜欢做一个类似于就是塞尔达传说

那样的游戏但是呢这个游戏的主人公是孙悟空然后实现我们想想实现的一些功能我之前不是写过一本书吗就是用加瓦我写了四本书我不是说要卖电子版第一本书是加瓦语言第二本书我就说要做一个游戏那个电子书上的那个游戏实际上是我做的那个玛里奥然后就是说模仿一下玛里奥但是

我想想如果我万一出名了这个马里奥这个任天堂肯定不太好搞是吧当时我就在想要做什么后来我想想要不要搞个悟空啊但我也不会画画既然这样的话我可以稍微的替换一下内容也是差不多的我准备就是把这个马里奥替换成孙悟空然后再发布因为这个画家跟我打关子的话咱不怕他是吧

单身电脑的话就比较怕它了然后在那个电子书里在我写的那个原来马里娃的电子书里实际上我就是做了一个什么做了一个 2D 游戏的引擎就是做游戏引擎的

其实呢把那些代码改一下改一下实际上再做一个 2D 的游戏应该是不成什么问题的我当时就是这个想法我就跟画家讨论我们并不是讨论技术上的问题只是在讨论应该怎么进行但就是这种东西讨论起来是没头的后来正好这个豆包就是叫 MaskCode 那边举办一个活动活动的内容呢就是说你可以借助这个 MaskCode 来写代码我就参加了一下

我就写代码的时候实际上我也是经常与这个大元模型对话但是我是古老一点的程序员嘛不像现在现在不是大家都会说我一行代码都不写但是呢我实际上还是写代码但是我还是尽量与他交流然后呢我大概利用的这个代码率可能是 40%或者 30%因为我写的会比较多然后有时候我会觉得 MaskCode 或者是类似于这种大元模型写的是不是很好

因为参加了这个活动嘛所以呢我就用视频的方式要记录一下怎么去使用 MaskCode 然后来讲一下我做了什么东西然后我就把它再上传到 B 站的这个视频上现在我已经上传了一期了最后一点感慨呢就是说我前面也刚刚讲过就很多人都说嘛人工智能肯定是要取代程序员嘛基于这种理论的话很多人都是录什么视频录那种我一行代码也不写然后呢就让 AI 来完成一个软件

但是完成的软件都是相对来说比较简单的比如说你给我整个探测所呀或者是俄罗斯方块啊或者是一些记单词的这种

就是说你自己写也会很快写出来的这些代码嘛这种软件嘛但是你实际上很难说我一号代码也不写然后实现一个类似于马里奥这样的是比较难的所以呢我觉得程序员还是需要会写一点代码的但我是认可 AI 就是在编程上的巨大作用但是我仍然会觉得编程本身它就很有趣尤其对我这种人来说我觉得

编程很有趣然后我觉得下项题也很有趣包括踢球也很有趣但是你说你不让我下题你说现在 AI 都已经可以代替下题了但是我仍然觉得下题很有趣编程也是这个样子包括足球也是这样我喜欢踢足球你说现在你看机器人踢足球也许在某一天会变得非常厉害但是我仍然能从中获得快乐就踢球的时候我本身就很快乐

编程也是这个样子我本身是觉得编程比较有趣我一点都不希望说我这样说一句话然后你把它给我整出来我自己整出来的同时我就觉得它已经很有趣了我更倾向于是说编程的 AI 成为我的一个帮手帮我少打一点字比如说我要做我会告诉他你给我生成一个线程然后处理一些什么东西然后他帮我生成了这个线程而不是

而不是说一些很宽泛的事情说哦或者你插一根电极到我的脑子里是吧然后这个游戏就出来了嘛你想什么他就可以做出来但是我觉得我也尝试这个做有人说你画一个这个嗯

突进用户界面它就可以生成实际上是不可能的实际上是非常非常难至少我是觉得非常难而且目前的 AI 还没有达到说与我心心相通的一个水平吧至少是马斯克那边的这个电极好像是还处于成功或者不成功之间吧将来也许会成功然后会插到我们脑子里你就可以编成了是吧想什么所想即所得但是它今天还是剥夺了一些乐趣是吧

我在实现的时候因为也是参加这个活动所以我就说 Masko 的还可以我说的还可以是什么我们经常会去比较的话尤其对我这种老派一点的成员就是我来自于完全是自己写代码或者是到 Stack Overflow 上去搜一下然后再运行现在的情况是你就是描述一下然后再运行

我在用它做实现的时候我发现了这个 AI 还是有很多的局限它确实给你一个可以运行的代码

但是呢写的非常粗糙并且也不是我喜欢的那个样子比如说我要做现成的话我要不停的告诉他我说哥们啊你不要给我实现一个不要用继承的方法来做现成为什么因为这个加瓦中啊它只有一个可以继承的你继承了现成的话我以后再继承怎么办我要控制它我就是要用一个接口他说好的然后他再实现的话又给你整成了这个整成了继承是吧所以

有时候你要给他解释为什么你不要再给我用这个继承了他是好的然后他就真的是会用一个实现一个 runable 这样的接口但是待等到改的时候他又忘了这件事情了或者等到后天或者大后天他还忘了这件事情那他又给你用继承再生成一个有时候就觉得哎呀非常的非常的累是吧他就是可以跑你说会怎么样子呢我也不知道

不太清楚但是我确实不习惯于它这样去实现所以有时候很多的代码我都是它生成之后我稍微改一下包括你每秒钟跑 60 帧或者是什么它确实会比较省力的做出它的一个版本但这个版本实际上是非常不好的人类也很容易就做出这个版本了比如说我们

现在电脑实在太快了嘛你很难说我要保持在 60 帧尤其是做 2D 来说它给你跑个 120 帧或者 240 帧都是非常非常有可能的超过了这个硬件的一个硬件的一个标准比如说我们这个显示器高刷也好好像跑不了那么多嘛但是由于现在这个电脑实在太快了哈

我试了好几个 AI 包括这个 MaskCode 它都会给你一个超简单的就是说你不刷 60 帧吗我就把它一秒钟然后分成 60 帧然后呢期间用一个非常非常简单的算法然后比如说我就让你睡一下嘛因为我知道你很快反正呢我就睡这么多然后就可以但实际上这是非常取巧的一个方式嘛我就不是很喜欢这种补全的方式作为一个老派的程序员我是经常

尽量自己写吧这种地方让它生成个大概然后尽量自己写包括背景也是这个样子背景的话因为我画家是画的一个背景图有几层然后我又想实现一下看起来像 3D 的样子大家有空可以去看一下看一下这个视频的样子

然后你通过这个背景图如果加载其实电脑就很这个 MASCO 的这种它就很容易给你加载上你就有背景图但是我希望是更复杂一点比如说我希望它有一点点我把这个背景有两个线程去写写两次我让它移动的这个速度不一样当你这个前面的人在移动的话这个精灵在移动的话

因为它两层背景两个线层在写背景然后把它速度移动的实际上是不同的话你就会觉得有一点点 3D 效果其实它不是 3D 的但是是有一点 3D 的效果所以我就是说也是对自己的要求也是我写书的时候会解释一下这个原理我不希望就是说就这样跟它说一下然后它生成一大堆代码然后你这样一运行就跑

因为越来越大的话我怕它控制不住啊但是我也相信那个网上讲的是我一行代码都不写嗯也可以运行但是呢我相信

对程序员来说你还是稍微的懂一点也许不用懂得那么精通你至少知道大概的一个机制大概的一个机制怎么去做所以我最后从美工上来说我们是完全是画不是我们画家自己画这个是不存在说完全是 AI 生成的这个 AI 很难去生成

这种纷争土嘛这个跑起来的这种他很难去生成其次一点的话是我

我是用的 AI 是比较多的这个 Maskord 是比较多的对对他来说还是用的比较少所以呢我们就尽量的去做这样一件事情吧就是我将来可能会在他画的时候我会不停的推进这件事情不只是参加这个活动然后我们尽量的做出一个自己心目中也许可以可以留下一点点什么东西的一个游戏吧

好嘞这一期呢我就简短的介绍一下我做的这个事情因为我们要举行一个比赛嘛所以你如果看公众号的话你可以复制一下这个链接然后帮我们去投一票因为实在是 22 号就结束了嘛如果你是 22 号台收听的还可以如果你是 23 号收听的就已经没法投票了是吧每天可以投一票好嘞非常感谢大家再见