Я являюсь разработчиком чрезвычайно портативной мобильной игры, которая работает на всем: от ПК до телевизоров, и даже от 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
тег. Во всяком случае, буфер отстой; Лучше, если ваша игра действительно масштабируется и выглядит красиво.Лучше всего хранить рабочие копии любых ваших активов. Например, если вы разрабатываете изображение в фотошопе, сохраните оригинальный файл psd. В любое время, когда вам понадобится другое изображение, вы можете открыть его и экспортировать новое изображение с минимальной потерей качества.
Вместо того, чтобы строить для одного размера экрана или другого, я бы сильно рекомендую вам создавать для разнообразия с самого начала. Вы говорите не только о разной плотности пикселей, вы также говорите о разных пропорциях. 16x9 и 16x10 могут дать совершенно другой визуальный опыт. Поэтому убедитесь, что вы тестируете новые изменения на различных формах и размерах экрана.
По моему опыту, растровые шрифты не очень хорошо масштабируются. Это может сильно зависеть от стиля шрифта, который вы используете, но в целом пересчет растрового изображения шрифта дает очень плохие результаты. Растровые шрифты работают лучше всего, когда для выборки текстур не задан мультисэмплинг (GL_NEAREST и без mipmaps), и он отображается так, что он отображает пиксель за пикселем на экран. Вы можете рассмотреть возможность использования серии визуализаций одного и того же шрифта с разными размерами и убедиться, что шрифт всегда отображается в масштабе == 1 в вашей игре; это даст вам некоторые ограниченные возможности при выборе размера шрифта для использования в конкретном сценарии.
источник
Android предоставляет некоторую помощь для этого ...
Вы можете указать «альтернативные ресурсы» для таких элементов, как ваша графика.
Посмотрите раздел «Предоставление альтернативных ресурсов» по этой ссылке: http://developer.android.com/guide/topics/resources/providing-resources.html Вы сможете найти примеры в примерах SDK или через Google.
Кроме того, Google предоставляет эмулятор Android, который вы получаете вместе с SDK. Вы можете определить несколько виртуальных устройств с различными конфигурациями для тестирования вашего кода. Вот ссылка на дополнительную информацию: http://developer.android.com/guide/developing/devices/emulator.html
Удачи, амб
источник
Помимо технических аспектов (адресованных мистером Стрэнджем), будьте осторожны при разработке игры с переменным размером экрана. В качестве примера, представьте, как вы играете на улицах ярости на пейзажном экране, а затем на портретном экране.
источник