Я являюсь разработчиком чрезвычайно портативной мобильной игры, которая работает на всем: от ПК до телевизоров, и даже от Black & White Amazon Kindle (Smiles HD - http://smileshd.com - больше устройств и платформ, чем вы видите там) ,
Лучший способ, который я нашел для поддержки любого устройства, - это выбрать базовое разрешение, а затем увеличить (или уменьшить) до текущего экрана. Если вы хотите обмануть, вы можете соответствовать новому разрешению экрана, но в идеале вы должны сохранять такое же соотношение сторон. Подгонка игры, сделанной для дисплея 4: 3, выглядит отвратительно на 16: 9, но установка 16: 9 на 16:10, никто не может заметить. Вы заметите, что я имею в виду экраны по соотношению сторон, а не по размерам, что особенно полезно в эпоху абсолютно случайных размеров ЖК-дисплея.
Чтобы создать иллюстрацию, которая подходит для любого экрана при сохранении соотношения сторон, создайте фоны, размер которых больше, чем у большинства обычных экранов. Это похоже на концепцию титульных безопасных зон с телевидением.
http://en.wikipedia.org/wiki/Safe_area
Созданные фоны действительно отлично подходят для этого. Плиточные узоры, шахматные доски, фрактальные фигуры и т. Д. Вам просто нужно сгенерировать немного больше, чтобы уместить новый экран.
Кроме того, создание статических изображений больше, чем то, что увидит ваш обычный пользователь. Более широкий, чем широкоформатный (16: 9), и более квадратный, чем стандартное разрешение (4: 3). Снова вернемся в безопасные для заголовков области, поместите важную информацию в безопасную область, немного увеличьте масштаб, чтобы ваша безопасная область касалась одного из краев экрана, и оставьте немного места для устройств, которые немного больше.
Разновидностью, с которой я работаю сегодня, является создание «безопасных для заголовка» трехмерных объектов. Поскольку они трехмерные, полностью состоят из вершин, их увеличение, превышающее размер экрана, занимает практически не больше памяти, чем если бы они были уместны. Как только плотность пикселей возрастает, вы можете захотеть использовать более детализированные текстуры. Если нет, то это немного размыто.
Пользовательские интерфейсы, мне нравится помещать основной интерфейс в идеальный квадрат в середине экрана. Углы и средние края также делают действительно хорошие места для размещения вещей; Вы должны рассчитать их координаты как таковые (относительно угла или средних краев).
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.
Я настоятельно рекомендую создать автоматизированный процесс для изменения размера вашего произведения. Большинство современных мобильных устройств, включая планшеты, имеют разрешение не более 720p (1280x720) ... по крайней мере, ненамного. Приходите в следующем году, мы просто не знаем, будет ли это больше правдой (iPad 3?).
В любом случае, для лучшей производительности, вы должны привыкнуть к идее исходного искусства и ресурсов источника. Затем вы можете выполнить процесс, который оптимизирует данные для любого устройства, на которое вы ориентируетесь.
Хорошо ли масштабируются растровые шрифты или мне нужно использовать что-то еще?
Они хорошо масштабируются, если вы используете хорошую фильтрацию. Если вы делаете 2D-игру с использованием 3D-оборудования (OpenGL ES), я настоятельно рекомендую использовать линейную фильтрацию в сочетании с MipMapping (то есть набором уменьшенных изображений). Благодаря этому вы можете получить ощутимо совершенные результаты, и зачастую использовать мипмапы быстрее, чем нет.
http://en.wikipedia.org/wiki/Mipmapping
В любом случае, я надеюсь, что это поможет. Желаем удачи в вашем проекте.
Android
тег. Во всяком случае, буфер отстой; Лучше, если ваша игра действительно масштабируется и выглядит красиво.