这个迷你系列的第一篇文章是有关如何使libGDX游戏在基于Android的电视设备上运行的概述。 现在,我们更加仔细地研究如何为FireTV发行游戏,FireTV是亚马逊用于自己的电视盒和电视棒的Android版本。
尽管此处的代码示例适用于libGDX,但本文还将包含所有希望为FireTV设备发布其游戏的开发人员的信息。
- 使用Azure Pipelines持续集成Unity 3D项目
- 9Lives Arena在Kickstarter上
- 制定游戏营销策略
- 看看来自澳大利亚的独身游戏开发者Michael Vansleve对Likemindedd的评价!
- 后退一步,前进两步
为什么要发布FireTV?
如第一篇文章所述,FireTV是广泛使用的设备。 可以不到40美元(或35欧元)的价格购买FireTV摇杆,甚至更便宜。 FireTV用户对电视远程输入带来的出色游戏表示感谢,并且由于竞争不那么激烈,因此您作为独立游戏开发商的知名度比其他商店要好得多。
也许您听说过在Amazon App Store上发布是浪费时间。 我可以确认。 的确是-如果您不发布FireTV。 但是,如果您这样做,则有可能获得比Google Play更高的下载量,这取决于您的游戏。 看看我的游戏在亚马逊上的下载图表。 我相信您会立即知道FireTV的发布时间:

但是请不要忘记FireTV上的一个现有缺陷:AdMob在Amazon设备上被阻止,Amazon Ads没有将广告投放到FireTV。 如果您打算货币化,则必须依靠IAP。
FireTV发布需要什么?
您从我的第一篇文章中知道,您必须调整游戏以使其在横向模式下工作且没有触摸输入。 如果您已这样做,则基本上已经完成。 继续,请释放。 祝好运。
嘿,您还在看这里吗? 好。 然后您会得到我的建议:在发布之前,请在真实的游戏上玩游戏。 获取FireTV摇杆(您知道它很便宜)并进行检查。 使用电视遥控器控制游戏不同于使用键盘或触摸屏控制游戏,并且您可能会注意到一些要在发布前解决的问题。
那么,如何在FireTV上测试我的应用程序?
这比您想象的要容易。 在设置中启用USB调试模式,您可以使用adb connect
通过ADB无线adb connect
。 完成后,FireTV将显示在Android Studio的AVD管理器中,您可以像直接连接设备一样调试应用程序,查看logcat输出并拍摄屏幕截图。
测试时,您会发现即使使用URL调用其他应用程序也可以在FireTV上正常工作。 如果未找到可处理URL的应用程序,则会显示一条消息,提示用户使用其他设备观看URL的内容。
libGDX的Gdx.input.getTextInput()
方法也运行良好。
使用FireTV遥控器的其他按钮
在测试中,最有可能的是您意识到d-pad输入不令人满意,并且您还想使用其他按钮。 为FireTV发行的最大优点是您可以确定遥控器上有哪些物理按钮可用:

除了D-Pad,居中和后退按钮之外,您还可以在游戏中使用播放,快进,快退和菜单按钮。 这是完全合理的。 例如,在我的平台上,您可以方便地使用FF跳跃并使用Menu射击。
但是:不要在核心项目的输入侦听器中使用键。 不要写这样的代码:
@Override
public boolean keyDown( int keycode){
开关 (键码){
大小写 Input.Keys。 空间 :
大小写 Input.Keys。 MEDIA_FAST_FORWARD :
jumpPressed();
休息 ;
返回true;
}
测试时,该代码将运行良好。 但是,在您将游戏提交发布后,您会得到一个礼貌的消息,告诉您您的提交被拒绝了:
您的应用未通过测试用例。
错误说明:应用程序使用了媒体按钮,但无法阻止后台的其他应用程序也使用它们,从而导致输入冲突
他们是正确的。 尽管您在输入侦听器中return true
表示已处理事件,但libGDX的Android后端不会将其返回给Android的事件处理程序。 您必须在AndroidLauncher类中添加一个特殊的键侦听器,以使其正常工作。
公共类 AndroidLauncher 扩展了 AndroidApplication {
@Override
受保护的void onCreate(Bundle savedInstanceState){
//游戏初始化
// ...
初始化(游戏,配置); 输入 .addKeyListener( new View.OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode,KeyEvent事件){
如果 (keyCode == Input.Keys。MEDIA_FAST_FORWARD ){
输入 .onKey(v,Input.Keys.SPACE,event);
返回true ;
}
返回false ;
}
});
}
}
该侦听器将FF按钮映射到普通的Space键盘键。 无需更改核心项目文件。
检查游戏是否在FireTV上运行
有时您需要知道您的游戏是否在FireTV设备上运行,例如,让玩家知道要按下哪些按钮。 可以通过检查Android的Build.MODEL
常量来完成。 如果以“ AFT”开头,则说明您正在使用FireTV。 不要忘记,有一种更简便的方法来检查您是否在任何电视设备上运行。

亚马逊开发者控制台
完成所有编码后,就该发布游戏了。 注册一个Amazon开发者帐户(免费)并进入开发者控制台。
在这里,我不会介绍整个Amazon发布过程,而只会介绍与FireTV相关的细节。
您可以立即发布该游戏,进行所谓的“ 实时应用测试” (内测)。 您需要知道测试人员的亚马逊帐户名,他们将获得激活链接并可以在其设备上安装游戏。
跳过那个。 我是认真的,它不能可靠地工作。 有些测试人员不会收到邀请邮件,有些测试人员会收到消息,但是游戏永远不会安装在设备上, 有些测试人员甚至会安装旧的,替换的版本 ……因此,如果您想让一些朋友测试您的游戏,请发送给他们您的APK文件,并说明如何通过ADB安装它。
使用正确的蒙版填写说明并使用良好的商店图像资产非常重要。 这并不容易,因为没有解释在真实设备上的App Store中使用了哪种资产。 我为您制作了一些屏幕截图,以将开发者控制台与FireTV上的App Store进行比较。 (屏幕截图是在德国FireTV上拍摄的,但有趣的内容是英语。)
这是App Store类别概述 。

用户在选择游戏的应用程序图标之前不会看到您的游戏名称,因此,使应用程序图标完美是很重要的。 如果他们选择该图标,则背景将变为您的背景图片 ,用户可以阅读您的简短说明 。
如果用户单击中心按钮, 则会打开“ 应用程序详细信息”页面,其中包含您的简短描述和背景图片 。

请注意,详细说明不会在FireTV上显示-仅在Amazon的Web界面上显示。 这就是为什么我不使用它。 这是我的开发人员控制台配置,可与上面的屏幕截图进行比较。


我使用产品功能项目符号,因为它们显示在Fire平板电脑上,而不显示在FireTV上。
如果您不能添加FireTV图像资产,则首先需要在“二进制文件”页面上上传APK文件,并将现有的六个FireTV设备添加到“支持的设备”中:

发布过程
也许您在上面注意到我写过,您提交游戏后可能会收到测试报告,说您的提交被拒绝了。 当发布FireTV时,真人会测试您的游戏。 根据我的游戏分析报告,他们正在测试大约半小时,并且确实在玩游戏。 我看到水平被他们清除了。 整个过程大约需要两天,因此不要浪费时间和精力进行半熟的构建。 仅在确定游戏能够按预期运行并且可以通过按钮控制触及每个按钮时才释放 。
我与Amazon测试人员的经验很好。 您与有时会犯错误的真实人接触,但他们确实会阅读您的信息。 他们曾经测试过一个较旧的版本,他们报告了一个我肯定知道已经修复的错误。 还有一次,我的应用程序被标记为只能与游戏控制器一起使用。 在这两种情况下,打开支持案例并告诉他们再次检查即可解决问题。
为避免此类问题,建议您将一些测试说明留给审阅者。 您可以在开发者控制台的“二进制文件”页面上进行操作。 我总是至少声明以下内容:“该应用程序可与FireTV遥控器,触摸设备和游戏控制器一起使用。”
释放后
发布后,请查看AFTVnews每周新应用程序部分,并确保它们不会错过您的游戏。 如果他们喜欢您的游戏并在发布的预告片中提及,则可以安全下载数千次。 如果您在Reddit上很活跃,请不要错过在r / firetv上发帖—该小组成员感谢所有针对其平台的开发人员。
结论
希望您发现本文中的信息有价值。 如果这样做,请鼓掌-谢谢! 如果您错过了一些信息或需要补充的内容,请不要犹豫和评论。
在下一篇和上一篇文章中,我将介绍Google Android TV的发布过程。