iPad、Xcode 与 Steam:游戏开发虽难,却回报丰厚

文章配图

除了那次令人沮丧的 ChatGPT 编程事件外,我一直在通过我的 iPad 向其他人展示我的游戏《字数限制》,它即将登陆 Steam,App Store 则是下一步。

我们的读者都知道我曾尝试在 Mac 上开发一款游戏。在 ChatGPT、Xcode 和 Unity 的帮助下,我制作了一款相当简单的文字游戏,最初是作为学习练习和人工智能实验。

经过一段顺利的初期开发后,游戏已达到技术上可用的水平。它的形式很基础,但已经到了必须成为一款真正可发布的游戏的地步;否则,我会对自己太过失望。

我意识到必须在《字数限制》上投入更多工作。是时候更认真地对待这件事了。

为期一周的“暂停”功能难题

为了让游戏更具商业可行性,我必须在核心玩法之外添加内容。需要进行大量的体验优化和错误修复。

其中一些很简单,比如添加循环视频背景,并将字体更改为我可以商业使用的字体(这要感谢 Google Fonts)。

测试一个更美观版本的《字数限制》的 iPhone 构建版本

然而,一个主要的难点是添加暂停游戏的功能。许多游戏都允许玩家暂停进度,即使是那些基于计时器的游戏也是如此,所以这是一个需要解决的问题。

借助 ChatGPT,暂停游戏和立即恢复的功能实现起来简单得令人惊讶。但是,我还希望玩家能够暂停并关闭游戏,并在以后从主菜单恢复。

起初,这似乎也是可行的,方案是记录并保存暂停游戏的所有变量,然后在重新加载游戏并取消暂停时将这些变量插入。这几乎成功了,但有些变量就是不配合。

接下来的一周,我陷入了例行公事:让 ChatGPT 查看 Xcode 中的文件,找出问题所在,添加调试日志和修改,测试,然后重复。每次我都必须审查并同意所做的修改,但到了第三天晚上,我开始对进展如此不顺感到绝望。

第七天,我忍无可忍,与 ChatGPT 一起从项目中删除了所有“恢复代码”。几个小时的仔细工作后,游戏再次运行,有暂停功能和一些错误,但没有了恢复功能。

我意识到错误完全在我。ChatGPT 采取了添加日志、进行更多修改、添加更多防护措施以防止其他代码块引用的路线,而项目经理 Malcolm(指作者自己)未能及时介入并正确处理。

失败一周后,我崩溃了并删除了代码。ChatGPT 自然接受了这一点……

我不应该只是阅读并同意 ChatGPT 所说的“应该”能修复问题的方案,而应该更批判性地思考,要求对其功能的基本原理进行更多分析。那样本可以节省几个毫无进展的夜晚。

这个功能我必须在发布前的某个时候回头解决。我并不期待。

Xcode 与 iPad

由于决定要规范操作并最终开始进行实地测试,我为这个项目支付了两笔较大费用中的第一笔。

第一笔是向苹果支付 100 美元,以获得一个正式的开发者账户。当然,在 App Store 上架是一个目标,但更主要的是为了在不久的将来能够使用 TestFlight。

最终,游戏必须由他人进行测试和检验,这意味着要把游戏交到他们手中。分享 Mac 版本很容易,我们的一些编辑成员都知道。

要在 iPhone 或 iPad 上做同样的事情,我必须使用 TestFlight。

注册开发者账户的实际过程很简单。注册并付款后,我收到一堆欢迎邮件,告诉我如何访问账户并通过 App Store Connect 为 App Store 进行设置。

Apple Developer Program 确认邮件

这之后,我同意了一堆免费和付费应用协议,提供了遵守《数字服务法》所需的信息,并填写了美国税务问卷。这有点令人生畏,感觉像是向外国政府提供了太多信息,即使与英国税务海关总署相比也是如此。

完成这个过程后,我确实能够在 Xcode 中做一些以前做不到的事情:为 iPhone 或 iPad 创建一个真正的应用程序。

在 Unity 中编译游戏会生成适用于 macOS、Windows、Android 和 Linux 的可执行文件。但是,如果你想创建 iOS 应用程序,它会以 Xcode 项目的形式输出一大堆代码。

在花更多时间点击看起来正确的选项,并借助一些 ChatGPT 的指导后,我将我的 iPad Pro 和 iPhone 注册为开发者设备。这使我能够将游戏安装到这些设备上。

我以前确实可以在 iPhone 上玩它,但那是 Unity 将游戏流式传输到其配套应用程序,所以实际上游戏仍然是在 Mac 上运行,而不是在 iPhone 上。但现在,它实际上是原生运行在设备上了。

使用 Xcode 将游戏安装到我的 iPhone 和 iPad Pro 上

这是一个重要时刻,看到游戏在我自己的硬件上正常运行。诚然,iPhone 版本有一些我不得不修复的 UI 问题,但 iPad 版本几乎完美运行。

有一个问题是 iOS 软键盘总是弹出,但在 iPad 上连接妙控键盘后立即解决了。至少在我找到合适的修复方法之前是这样。

这是“待修复错误”白板上的又一项。

初步本地测试

让游戏在我的 iPad 上运行意味着我有了可以实际展示给别人看并让他们玩的东西。当然,由于移除了恢复功能,存在一些错误和其他问题,但它确实可以玩了。

那天晚上,我带着 iPad 和一些做笔记的纸,前往卡迪夫参加一个游戏开发者的社交晚会。我预计会得到大量的反馈和批评,这有助于说明还有多少工作要做。

本以为会得到残酷的诚实反馈,但结果却愉快得多。对于一个英国人来说,可能愉快得有点难以承受。

在前往游戏开发者聚会的路上,在 iPad Pro 上玩游戏。

在三个多小时里,其他人坐下来,对游戏产生了兴趣,容忍了我对游戏玩法的解释,然后开始玩游戏。之后,他们给出了压倒性的积极评价,同时也夹杂着一些反馈。

我知道这是一群善良的游戏开发者观众,他们希望看到别人成功,所以这些愉快的基调应该大打折扣。然而,仍有迹象表明这可能是一款好游戏。

玩过的人会回来玩第二次或第三次。一个人一次玩了超过 11 分钟,而另一个人则问什么时候可以为他们手机购买。

回家路上,我对所有这一切有些目瞪口呆。这是很好的反馈,几乎让我在火车上难以消化。

也许这游戏毕竟还不错。即使它现在还有错误。

在代码矿坑中继续耕耘

虽然游戏现在更美观、功能更完善,但在真正考虑将其上架销售之前,我仍然需要处理一些元素。

首先,我的待办事项白板上仍然列出了不少需要实现的东西。一方面是体验优化,另一方面也有一些较大的功能。

我需要将每日模式融入游戏中。这将要求我理解并使用苹果的 Game Center 系统和 Steam 的排行榜系统。

还有整个威尔士语的实现,这也将作为为游戏添加本地化功能的一种方式。

我还需要花时间进行更多测试,而不仅仅是把 iPad 交给别人玩几分钟。这意味着要真正让游戏在 TestFlight 上运行起来。

这也意味着要以某种方式找到喜欢游戏并能写威尔士语单词的人。

登陆 Steam

虽然 App Store 是一个目标,但另一个目标对我而言更亲切一些。

我是一个不折不扣的终身 PC 游戏玩家。当然,我在 Mac 上工作,也拥有游戏主机,但我玩 PC 游戏多年,并且拥有与之匹配的 Steam 游戏库。

如果我希望游戏也能触达 PC 玩家,除了在 Steam 上架设之外,我别无选择。

通过 Valve Software 的商店后端 Steamworks 的过程,与苹果的流程相差不大。你支付一笔费用,然后完成漫长的注册过程,同时填写一份问卷,以确定应预留多少资金来支付任何应缴的美国税款(如果有的话)。

我会说需要达成的协议级别和其他数据点,与 Apple Developer 和 App Store Connect 的过程大致相同。

Steam 接受了游戏的商店页面。这一刻冲击力很大。

最大的区别在于费用,因为你仍然需要支付 100 美元的费用才能进入 Steam。然而,它的处理方式不同。

Apple Developer 费用是年费,适用于个人,而不是游戏。你可以在支付一次年费后,向 App Store 添加多个游戏。

在 Steam 上,那 100 美元的费用是按游戏收取的,并且是一次性费用。但是,如果你能实现 1000 美元的销售额,你可以获得退款。

入驻后,我必须向 Steam 提交一个商店页面,将游戏标记为“即将推出”。这是一个要求,并且必须在游戏实际发售前至少两周完成。

我创建了包含描述和截图的 Steam 列表,并提交页面进行审核。这只是针对商店页面,而不是像 App Store Review 那样审核游戏本身。

几天后,我收到了邮件,并在控制台中看到了一个新按钮,告诉我只需按一下就可以让商店页面上线。

游戏现在在 Steam 上有了列表页面

从商业角度来看,这是重要的一步,因为 Steam 用户可以将游戏添加到他们的愿望单,并在发布时收到通知。它也会影响 Steam 的算法,游戏获得的愿望单越多,它在 Steam 商店推荐和排行榜中的显示位置就越突出。

最重要的是,现在可以在 Steam 上愿望单这款游戏了。还不是购买,只是加入愿望单。

Mike Wuerthele 在周末查看了这个页面,并指出了一个问题——我没有检查游戏是否能在现代 Mac 上运行。

有一段时间,列表显示它只能在 32 位 macOS 版本上运行。这其实只是一个复选框的问题。

Steam 不会检查二进制文件中的这个标志,它只是一个数据字段。我修复了这个问题,现在可以正常进行了。

在更个人的层面上,列表被接受这件事出乎意料地让我深受触动。触动到我花了两个小时才鼓起勇气按下“发布”按钮。

将自己制作的东西列在 Steam 上是一件大事。即使处于“即将推出”阶段,在列表中看到自己的创作也是一种奇妙的感觉。

如果我现在在提交列表后就已经激动不已,我不敢想象当游戏正式上线时我会有什么感觉。

Related Posts

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注