在制作具有多种分辨率的2D游戏时,我应该牢记什么?


27

我正在制作2D(Android)游戏。Android设备的屏幕分辨率差异很大。制作游戏时我需要记住什么?

  • 我是否需要保留所有图像的大版本并根据分辨率缩小(这不会浪费空间)?
  • 位图字体缩放是否合适,还是需要使用其他字体?
  • 我还有什么忘记的吗?

Answers:


26

我是一款极其便携的移动游戏的开发商,该游戏可以运行在从PC到电视,甚至包括黑白亚马逊Kindle的所有设备上(Smiles HD- http : //smileshd.com- 比您看到的设备和平台更多) 。

我发现支持任何设备的最佳方法是选择一个基本分辨率,然后放大(或缩小)到当前屏幕。如果您想作弊,则可以适应新的屏幕分辨率,但理想情况下,应保持相同的宽高比。在16:9上安装适合4:3显示器的游戏看起来很可怕,但是在16:10上安装16:9的游戏似乎没人注意。您会注意到,我是指屏幕的宽高比而不是尺寸,这是在当今完全随机的LCD尺寸时代思考的特别有用的方法。

为了使美术作品适合任何屏幕,同时保持宽高比,请创建比大多数典型屏幕所能看到的更大的背景。这类似于电视中标题安全区域的概念。

http://en.wikipedia.org/wiki/Safe_area

生成的背景为此非常有用。平铺的图案,棋盘格,分形形状等。您只需要生成更多内容以适应新的屏幕即可。

同样,创建比普通用户看到的更大的静态图像。比宽屏(16:9)宽,比标准清晰度(4:3)宽。再次回到标题安全区域,将您的重要信息放入安全区域,扩大一点,使您的安全区域触及屏幕的边缘之一,并为稍大一点的设备留出余地。

我今天使用的一种变体是创建“标题安全”的3D对象。由于它们是完全由顶点组成的3D,因此使其比屏幕大几乎不会占用比其适合的更多的内存。正如像素密度的增加一样,您可能需要一些更高细节的纹理。如果不是,哦,那有点模糊。

用户界面,我喜欢将主UI放置在屏幕中间的完美正方形内。拐角和中间边缘也是放置东西的好地方。您应该这样计算它们的坐标(相对于拐角或中间边缘)。

http://www.smileshd.com/press/iPad/png/UI01.png

如果您真的想花哨的话,可以同时支持“高”和“宽”方向。某些设备确实报告其屏幕分辨率比宽屏幕高(例如,iPhone),因此,即使只是旋转所有坐标,您仍可能必须为这些设备做一些事情。

既可以适应高屏也可以适应宽屏的用户界面,可以给人留下深刻的印象。

宽幅:http//www.smileshd.com/press/iPad/jpg/SmilesHD01.jpg

高大:http//www.smileshd.com/press/iPad/jpg/SmilesHD02.jpg

从设计的角度来看,好的一面是,您只需要考虑“高”和“宽”,而不是纵向+反向纵向+景观+反向横向。在屏幕上选择事物的位置时,请考虑为其他方向选择一个更合适的替代位置。

我是否需要保留所有图像的大版本并根据分辨率缩小(这不会浪费空间)?

好吧,您既可以“浪费空间”并通过一次构建来支持更多设备,也可以“浪费时间”,并且必须进行多次构建并调整许多设备的图稿大小。

最好的情况是,您应以比最终尺寸在1080p电视(1920x1080)上更高的分辨率来创建作品。2048x2048应该是源图稿中的常用尺寸。您可以考虑使用Flash和Adobe Illustrator之类的Vector美工工具。

我强烈建议您创建一个自动调整图片大小的流程。当今,大多数移动设备(包括平板电脑)的分辨率都不会超过720p(1280x720),至少不会超过。不过,明年就来吧,我们只是不知道这是否会成为现实(iPad 3?)。

无论哪种方式,为了获得最佳性能,您都应该习惯于源图稿和源资产的想法。然后,您可以执行针对所针对的任何设备优化数据的过程。

位图字体缩放是否合适,还是需要使用其他字体?

如果您使用的是良好的过滤条件,它们的伸缩性很好。如果要使用3D硬件(OpenGL ES)制作2D游戏,则我强烈建议您将线性过滤与MipMapping(即一组按比例缩小的图像)结合使用。这样您可以得到可感知的完美结果,使用mipmap通常比不使用mipmap更快。

http://en.wikipedia.org/wiki/Mipmapping

无论如何,我希望能有所帮助。祝您项目顺利。


2

通常,您制作的每个纹理都应为256x256或512x512。如果您还定位打击垫(Galaxy Tab,Honecomb,iPad),则512x512不会填满整个屏幕,因此您可能希望包括需要填满屏幕的那些艺术品的较大版本。Apple提供了本机“ @ 2x”图像后缀来处理这种情况。

我用过一个简单的解决方案,就是简单地为320x480屏幕(iPhone)创建游戏。让iPhone 2(640 x 960)自然倍增,然后您真正需要处理的唯一其他情况是某些Android设备的屏幕更高-因此只需在顶部和底部(纵向)模式)。

简而言之-根据您的游戏屏幕大小来选择一种中性尺寸,然后根据


2
我想你错过了我的Android标签。无论如何,缓冲区很烂;如果您的游戏实际扩大规模并且看起来不错,那会更好。
ashes999 2011年

1

最好保留所有资产的工作副本。例如,如果要在photoshop中显影图像,请保存原始psd文件。任何时候您需要不同的res图像时,都可以打开它并以最小的质量损失导出新图像。

强烈建议您从一开始就针对各种屏幕而不是针对某个屏幕尺寸进行构建。您不仅在谈论不同的像素密度,而且还在谈论不同的宽高比。16x9和16x10可以产生非常不同的视觉体验。因此,请确保您在各种不同的屏幕形状和尺寸上测试新的更改。

以我的经验,位图字体的缩放效果根本不好。它可能在很大程度上取决于您使用的字体样式,但是通常,对字体位图重新采样会产生非常差的结果。当您的纹理采样未设置为多重采样(GL_NEAREST,并且没有mipmaps)并且将其渲染为将像素逐像素映射到屏幕时,位图字体最有效。您可能要考虑使用一系列相同字体的不同大小的效果图,并确保字体在游戏中始终以比例== 1出现;在选择要在特定情况下使用的字体大小时,这将为您提供一些有限的选项。


1

Android为此提供了一些帮助...

您可以为诸如图形之类的项目指定“备用资源”。
在此链接上查看“提供备用资源”部分:http : //developer.android.com/guide/topics/resources/providing-resources.html 您应该能够在SDK示例中找到示例,也可以通过Google找到示例。

此外,Google提供了SDK附带的Android模拟器。您可以定义多个具有不同配置的虚拟设备来测试您的代码。这是更多信息的链接:http : //developer.android.com/guide/developing/devices/emulator.html

祝你好运


0

在设计具有可变屏幕尺寸的游戏时,除了技术方面(由Strange先生解决)外,还应小心。举个例子,想象一下在风景如画的屏幕中然后在肖像屏幕中玩愤怒的街道。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.