Що слід пам’ятати при створенні 2D-ігор для декількох дозволів?


27

Я роблю 2D (Android) гру. Пристрої Android досить різняться в роздільній здатності екрана; що потрібно пам’ятати під час гри?

  • Чи потрібно тримати великі версії всіх зображень та масштабувати вниз залежно від роздільної здатності (чи не витрачається це місце)?
  • Чи добре масштабуються шрифти растрових зображень чи мені потрібно використовувати щось інше?
  • Що ще я забуваю?

Відповіді:


26

Я розробник надзвичайно портативної мобільної гри, яка працює на всіх ПК, від телевізорів, навіть до чорно-білого Amazon Kindle (Smiles HD - http://smileshd.com - Більше пристроїв та платформ, ніж ви бачите там) .

Найкращий спосіб, яким я знайшов підтримку будь-якого пристрою, - це вибрати базову роздільну здатність, а потім навести масштаб вгору (або вниз) на поточний екран. Якщо ви хочете обдурити, ви можете підходити до нової роздільної здатності екрана, але в ідеалі вам слід дотримуватися однакового співвідношення сторін. Встановлення гри для дисплея 4: 3 виглядає огидно на 16: 9, але при встановленні 16: 9 на 16:10 ніхто не помітить. Ви зауважите, що я маю на увазі екрани за співвідношенням сторін, а не за розмірами, що є особливо корисним способом думати в цю епоху про абсолютно випадкові РК-розміри.

Щоб зробити твори мистецтва, які підходять під будь-який екран, зберігаючи співвідношення сторін, створіть фони, більші, ніж більшість типових екранів. Це схоже на концепцію безпечних для назви областей із телебаченням.

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

Згенеровані фони справді чудово підходять для цього. Плиткані візерунки, шахи, фрактальні фігури тощо. Вам просто потрібно створити трохи більше, щоб помістити новий екран.

Крім того, створення статичних зображень, більших від того, який побачить ваш типовий користувач. Ширший за широкоекранний (16: 9) і квадратний, ніж стандартний def (4: 3). Знову повертаючись до безпечних для заголовків областей, помістіть важливу інформацію в безпечну зону, трохи збільшить масштаб, щоб ваша безпечна ділянка торкнулася одного з країв екрана, і залиште деякий пробіг для пристроїв, де трохи більше.

Варіація, з якою я сьогодні працюю, - це створення 3D-об'єктів, захищених титулом. Оскільки вони 3D, повністю складаються з вершин, то їх розмір більший за екран займає практично не більше пам’яті, ніж якби вони підходили. Як тільки щільність пікселів зростає, ви можете отримати доступні текстури більш високої деталізації. Якщо ні, ну добре, це трохи розмито.

Користувацькі інтерфейси, я люблю розміщувати головний інтерфейс в ідеальному квадраті посередині екрана. Кути та середні краї також роблять дійсно гарні місця для розміщення речей; Ви повинні обчислити їх координати як такі (відносно кута або середніх країв).

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

У будь-якому випадку, я сподіваюся, що це допомагає. Пощастило з вашим проектом.


2

Загалом, кожна текстура, яку ви робите, повинна бути або 256x256, або 512x512. Якщо ви також орієнтуєтесь на майданчики (Galaxy Tab, Honecomb, iPad), то 512x512 не заповнить весь екран, тому ви, можливо, захочете включити більші версії тих предметів мистецтва, які потребують заповнення екрана. Для обробки цього випадку Apple містить вбудований суфікс зображення "@ 2x".

Просте рішення, яке я використовував сам, - просто створити свою гру для екрану 320x480 (iPhone). Нехай це подвійно природно для iPhone 2 (640 x 960), і тоді єдиний інший випадок, з яким ви дійсно маєте поводитися по-різному, - це той факт, що деякі пристрої Android мають більш високий екран - тому просто поставте буфер вгорі і внизу (в портреті режим).

Якщо коротко - побудуйте свою гру на один нейтральний розмір екрана, а потім накрийте винятки на основі


2
Я думаю, ти пропустив мій Androidтег. У будь-якому випадку буфер смокче; краще, якщо ваша гра насправді масштабується і виглядає красиво.
ashes999

1

Найкраще зберігати робочі копії будь-яких наявних у вас активів. Наприклад, якщо ви розробляєте зображення в Photoshop, збережіть оригінальний файл psd. Кожен раз, коли вам потрібно інше зображення Res, ви можете відкрити його та експортувати нове зображення з мінімальними втратами якості.

Замість того, щоб будувати для одного чи іншого розміру екрана, я настійно пропоную вам створити для різних типів спочатку. Ви не тільки говорите про різну щільність пікселів, але й про різні співвідношення сторін. 16x9 і 16x10 можуть забезпечити дуже різний візуальний досвід. Тому не забудьте протестувати нові зміни на різних формах і розмірах екрана.

На мій досвід, шрифти растрових зображень зовсім не масштабуються. Це може багато залежати від стилю шрифту, який ви використовуєте, але в цілому перестановка растрового шрифту дає дуже погані результати. Шрифти растрових зображень найкраще працюють, коли для вашої вибірки текстури не встановлено мультисемплінг (GL_NEAREST та без міпмап), і він надається таким чином, що він відображає піксель на піксель на екран. Ви можете розглянути можливість використання серії візуалізації одного і того ж шрифту різного розміру і переконатися, що шрифт завжди відображається в масштабі == 1 у грі; це дозволить вам обмежити деякі параметри при виборі розміру шрифту для певного сценарію.


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

Успіх


0

Крім технічних аспектів (до яких звернувся містер Странд), будьте обережні при розробці гри зі змінним розміром екрана. Як приклад, уявіть, як граєте вулиці люті на пейзажному екрані, а потім на екрані з портретом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.