This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Ця сторінка містить корисні настанови та контрольний список аспектів, які слід врахувати під час випуску гри або її портування на нову платформу.
Портування гри Defold на нову платформу або її перший випуск зазвичай є простим процесом. Теоретично достатньо переконатися, що відповідні розділи у файлі game.project налаштовано, але щоб якнайповніше використати можливості кожної платформи, рекомендовано адаптувати гру до її особливостей.
Обов’язково адаптуйте гру до способів введення на платформі. Розгляньте можливість додати підтримку геймпадів, якщо платформа їх підтримує! І переконайтеся, що гра має меню паузи: якщо контролер раптово від’єднається, гру слід призупинити!
Перекладіть увесь текст у грі. Для випуску в Європі та країнах Америки розгляньте переклад принаймні мовами EFIGS (англійською, французькою, італійською, німецькою та іспанською). Переконайтеся, що мову можна легко змінити безпосередньо у грі (через меню паузи).
Лише для iOS: обов’язково вкажіть Localizations у game.project, оскільки sys.get_info() ніколи не повертає мову, якої немає в цьому списку.
Перекладіть текст на сторінці магазину, адже це позитивно вплине на продажі! Деякі платформи вимагають перекладу тексту на сторінці магазину мовою кожної країни, де доступна гра.
Подбайте про те, щоб ваша гра вирізнялася серед конкурентів. Піктограма часто є першим, що бачать потенційні гравці. Її має бути легко знайти на сторінці, заповненій піктограмами ігор.
Використовуйте для своєї гри виразні та захопливі зображення. Імовірно, варто витратити певну суму на співпрацю з художником, щоб створити зображення, які приваблюватимуть гравців.
Збереження гри та інший стан можна записувати за допомогою функції API Defold sys.save(filename, data) і завантажувати за допомогою sys.load(filename). Функція sys.get_save_file(application_id, name) дає змогу отримати шлях до відповідного для операційної системи місця збереження файлів, зазвичай у домашній папці користувача, який увійшов у систему.
Функції sys.get_save_file() і sys.save() добре працюють на більшості платформ, але на консолях рекомендовано застосовувати інший підхід. Консольні платформи зазвичай пов’язують користувача з кожним під’єднаним контролером, тому збереження гри, досягнення та інші можливості слід пов’язувати з відповідним користувачем.
Події введення з геймпада міститимуть ідентифікатор користувача, за допомогою якого можна пов’язати дії контролера з користувачем консолі.
Консольні платформи та їхні нативні розширення надають специфічні для платформи функції API для збереження й завантаження даних певного користувача. Використовуйте ці API для збереження й завантаження на консолях.
API консольних платформ для файлових операцій зазвичай асинхронні. Під час розробки кросплатформної гри, призначеної зокрема для консолей, рекомендовано проєктувати гру так, щоб усі файлові операції були асинхронними незалежно від платформи. Приклад:
local function save_game(data, user_id, cb)
if console then
local filename = "savegame"
consoleapi.save(user_id, filename, data, cb)
else
local filename = sys.get_save_file("mygame", "savegame" .. user_id)
local success = sys.save(filename, data)
cb(success)
end
end
Обов’язково генеруйте налагоджувальні символи для кожної випущеної версії, щоб мати змогу налагоджувати аварійні завершення. Зберігайте їх разом із пакетом застосунку.
Прочитайте посібник з оптимізації, щоб дізнатися, як оптимізувати швидкодію, розмір, використання пам’яті та споживання заряду батареї вашим застосунком.
Завжди тестуйте гру на цільовому обладнанні! Перевіряйте її швидкодію та за потреби оптимізуйте. Використовуйте профайлер, щоб знаходити вузькі місця в коді.
Для платформ із фіксованою орієнтацією та роздільною здатністю екрана перевірте, що гра працює з роздільною здатністю та співвідношенням сторін екрана цільової платформи. Для платформ зі змінною роздільною здатністю та співвідношенням сторін екрана перевірте, що гра працює з різними роздільними здатностями та співвідношеннями сторін. Враховуйте, який тип проєкції виду використовується у скрипті рендерингу та камері.
Для мобільних платформ або зафіксуйте орієнтацію екрана в game.project, або переконайтеся, що гра працює і в альбомній, і в портретній орієнтації.
Дедалі популярнішими стають невеликі вирізи на екрані для розміщення фронтальної камери й датчиків (також відомі як виріз або отвір під камеру). Під час портування гри на мобільні пристрої переконайтеся, що критично важлива інформація залишається в межах безпечної області платформи.
Defold має вбудовану підтримку безпечної області на Android та iOS. Задайте gui.safe_area_mode у game.project, щоб визначити, які відступи від протилежних країв безпечної області впливатимуть на пристосування GUI. Значення none є стандартним та ігнорує відступи; long застосовує лівий і правий відступи в альбомній орієнтації та верхній і нижній у портретній; short застосовує протилежну пару; а both застосовує відступи від усіх чотирьох країв. Скрипт GUI може перевизначити загальний режим проєкту для своєї сцени за допомогою gui.set_safe_area_mode(). Для власної логіки GUI або рендерингу функція window.get_safe_area() повертає безпечний прямокутник та відступи від окремих країв. Платформи без вбудованих відступів безпечної області повертають повне вікно й нульові відступи.
Розширення Safe Area залишається альтернативою для застарілих проєктів або робочих процесів, яким потрібна поведінка, що виходить за межі вбудованих API; воно не потрібне для стандартної роботи з безпечною областю на Android та iOS.
Обов’язково зберігайте сховище ключів у безпечному місці, щоб мати змогу оновлювати гру.
Зберігайте повний пакет для кожної версії. Ці файли знадобляться, якщо ви захочете випустити виправлення для гри.
Інтегруйте специфічний для платформи код: для Nintendo Switch є окреме розширення з допоміжними можливостями для вибору користувача тощо.
Defold для Nintendo Switch використовує Vulkan як графічний бекенд. Обов’язково протестуйте гру з графічним бекендом Vulkan.
Інтегруйте специфічний для платформи код: для PlayStation®4 є окреме розширення з допоміжними можливостями для вибору користувача тощо.
Вебігри на мобільних телефонах стають дедалі популярнішими. Намагайтеся забезпечити належну роботу гри й у мобільному браузері! Також важливо пам’ятати, що від вебігор очікують швидкого завантаження! Обов’язково оптимізуйте розмір гри. Крім того, продумайте процес завантаження загалом, щоб не втрачати гравців без потреби.
У 2018 році браузери запровадили політику автоматичного відтворення звуку, яка не дає іграм та іншому вебвмісту відтворювати звук, доки не відбудеться подія взаємодії користувача (дотик, натискання кнопки, дія з геймпадом тощо). Під час портування на HTML5 важливо враховувати це й починати відтворення звуків і музики лише після першої взаємодії користувача. Спроби відтворити звук до будь-якої взаємодії користувача буде записано як помилку в консолі розробника браузера, але на гру це не вплине.
Також обов’язково призупиняйте відтворення всіх звуків, коли гра показує рекламу.