这是一个大部分是吐槽和反思,我可以做一个Android开发者的几十年的经验和一个入门级Unity游戏开发人员近十年的时间,和仍然可以做一个新手犯错,花费了长时间的头疼和几个月的延期才能让我的游戏在谷歌播放器上发布的故事。
完整披露:游戏的标题有点耍赖,因为开发已经开始一年了,但考虑到我只能短时间地挤出几个小时来,所以实际上游戏的开发和谷歌播放器的准备大概只用了一个星期的时间。
所以,最初的想法很简单:在开始和结束之间构建死简单的游戏,让它:
- 作为我的主项目(一个四年了的小项目)清爽的清洁剂(以及一种精神上的重置),
- 作为一种将低多边形三维场景与恒定大小的二维贴图和低字节级UI合并的革命性图像系统的展示,
- 给我用我自己编写的Unity自带renderer的定制着色器来玩玩视觉效果(例如伪立体感,渐变雾,混合颜色调,混合透明等)。
我选择了经典“八爪”(“Octopus”)作为我的主要 вдох灵,因为它激发了我对视频游戏的爱(在我的童年里它被称作“Ośmiorniczka”。它看起来不难复制(至少我以前能把分数计数器从999转换回0)。
我称它为 de/re-make,尽管这听起来像个简单的重制,但是有三维图像。
游戏逻辑和机械工作得很快,我甚至有一个美妙的暂停菜单,用户暂停或按 ESCAPE 键时就启动。用 Blockbench 构建简单 3D 场景花了点时间,而着色器虽然使用一些从主项目中存在的版本,但是仍然有点问题。将所有部分(贴图和场景、UI、TextMeshPro 文字等)正确地在一个像素级的画面上展现且可以适应当前屏幕的分辨率和比例,才是最大的挑战之一,也花了大概40-50%的开发时间(尽管我在主项目中已经让它基本工作了,只要排除了 UI 和文本)。
最后它就完成了… 在它的全盛时刻…. TENTAKLES。
https://reddit.com/link/1t57bp4/video/y3yni2u1fhzg1/player
当时我觉得游戏就完成了,就要发布,所以我上传到了itch.io,GameJolt,Newgrounds,在HTML5/WebGL格式中。大约同时,我在网上发布了一个游戏版本,发现还有一个新的Visual Issue,与Unity中的像素级摄影机有关,解决这个问题引起了另一个与非WebGL中的摄影机相关的问题。这是一个与Visual Issues相关的故事。
这意味着这个游戏在发布后完全没有得到人们的关注,实际上我根本不想因为这件事情走红(并且我也没有写这篇文章的想法)。
当我感觉我的游戏已经完成就可以发布了,我认为是时候学习谷歌Play发布流程了。虽然我工作中作为安卓开发者的身份,但是发布游戏并不是我日常的工作内容(我们有一个专门负责这个工作的团队,我多年没有使用谷歌Play Developer Console。我觉得会有不大的弯路,尤其是因为游戏支持键盘输入、游戏手柄和虚拟屏幕按钮而且我都已经在安卓手机上进行了好多测试。因此我觉得谷歌Play的发布应该是一个顺利的过程。
最终的结果,最后说罢……
我花了一个小时左右来添加声音效果(使用 Furnace 生成原始电子版里面的声音效果,接着又花了一小时让谷歌Play项目(包括所有需要的描述、图片等)完成,而且还花费了好几小时来构建一个合适的发布包。虽然在我之前我应该知道这个了,但是我觉得是因为我之前太熟悉这个流程了。实际上这个流程已经改变了,并且APK 不得不使用了 AAB 的数据包,并且游戏还需要在 IL2CPP 脚本后端中使用 ARM64 架构。
但好吧,做了做,至少我可以让这个游戏的包上载到了谷歌Play的内部测试版。发出了好多邀请,朋友们反应良好。时间差不多到了,可以了,让我的游戏发布。
拒绝。
至少我之前期望了一些问题,但是没想到谷歌Play的测试版就反了玩意子: “Your app's violates Android App Quality Guidelines, Category: Broken Functionality’".我当然知道这个是什么意思,但是实际上还是不理解谷歌的QA在说什么。
然后开始了一场一月长的噩梦:在谷歌Play的QA团队里争取到一个直率的答案:什么是我的游戏的故障?
首先我不是特别沮丧的,因为谷歌Play的拒绝理由是有道理的,而且很正式的,让我指向各种质量准则、隐私政策和大杂烩的陈述。但是这个陈述中确实有一些令人困惑的部分:
> “For example, your app does not open or load.”
在附件中有一个截图,证明游戏失败在打开或载入,但实际上却显示的是游戏的title界面...游戏是开启的。
我设想了很多可能原因,其中最有可能的原因是谷歌Play的测试是运行在一个虚拟设备上,游戏并不知道它是安卓手机,所以自然就没有显示touch控制器了。或者游戏确实开启了,但是在启动显示touch界面之前就挂了?
无论是什么原因,我联系了谷歌Play支持部门询问这些故障的具体的细节。 我们关于touch控制器,甚至附上了一个游戏启动和试玩的视频以证明其实有好多故障都没有。然而支持部门给了我一个奇怪的陈述。
我认为在这个时候谷歌的QA的答案应该是这样的:“game does not open or load”,因为他们给我提供的信息让我感觉他们并不确信游戏的故障。
直到我最后决定去谷歌PlayConsole里添加了一个过滤器去禁止掉一些设备,最终发布了一版新的游戏包到谷歌Play中(过滤出了大部分的安卓设备,这时我才意识到,谷歌Play中有1400多种安卓设备)。我认为可能他们在用一个特殊设备测试我的游戏(不仅仅是安卓手机)。
但是,结果依然是:谷歌Play支持给我回信表示,他们再次拒绝了我的游戏包。但是他们并没有回我关于游戏的细节,而是只回了一个模板的信息,告诉我:我的游戏“game does not open or load”。
这时候我开始发简短的信息给谷歌Play支持,询问关于他们测试的环境和设备,但是他们并没有回复我。
直到我意识到我的游戏可能还有一个更严重的问题:谷歌Play的测试器会识别安卓设备,但是他们并不知道“按返回键(BACK)”的功能。这个问题其实是很容易解决的,只需要在Unity 里设置 Input.backButtonLeavesApp = true 就可以了。
最终的结果...
评论 (0)