Skip to content

Быстрый старт

Это пошаговое руководство по интеграции HTML5 Ultra Pack в ваши проекты

Подготовительные шаги

Эти этапы выполняются единожды, при интеграции расширения в новые проекты они пропускаются

  1. Установите GameMaker версии 2024.8

    Расширение разрабатывалось и тестировалось на этой версии и её HTML5 рантайм показался мне наиболее стабильным. Ничто не мешает вам попробовать другие версии, но я не гарантирую, что все будет работать корректно

  2. Скачайте .yymps расширение
  3. Произведите настройку HTML5 цели

Установка расширения

Эти этапы выполняются при интеграции расширения в новый проект

  1. Перетащите файл .yymps в ваш проект

  2. Установите __rmInit в качестве стартовой комнаты

  3. Перейдите в Game Options - HTML5 - Graphics и установите следующие настройки:

    • Centre Game In Browser Window: true
    • WebGL: Required
    • Scaling: Full scale
  4. Перейдите в Game Options - HTML5 - General и установите следующие настройки:

    • Для Yandex Games SDK:
      • Included file as index.html: Use Default
      • Loading bar extension: CustomLoadingSpinner
    • Для Playgama Bridge SDK:
      • Included file as index.html: playgama-bridge-index.html
      • Loading bar extension: Use Default
  5. Включите web_dyn_tex extension


Настройка YGsettings

  • Настройте макросы в скрипте YGsettings:

    // Выберите режим SDK
    #macro YG_MODE E_YG_MODE.YANDEX_GAMES // или E_YG_MODE.PLAYGAMA
    
    // Установите начальную комнату вашей игры
    #macro YG_FIRST_ROOM r_test // замените на ассет вашей начальной комнаты
    
    // Установите язык для тестовых билдов
    #macro YG_DEBUG_LANGUAGE "ru" // Например "en"
    
  • Инициализируйте переменные, которые требуется сохранять между игровыми сессиями в скрипте YGsettings:

    // Инициализация переменных
    YG.data.max_score = 0;
    YG.data.player_skin = "default";
    YG.data.tutorial_completed = false;
    YG.data.available_items = ["shield", "sword", "bottle"];
    YG.data.lvls_data = {lvl_1: {score: 0, stars: 0}, lvl_2: {score: 0, stars: 0}};
    

Использование SDK

После всех загрузок, происходящих в стартовой комнате, игра перейдёт в комнату, которую вы установили в YGsettings.

Вам станет доступна глобальная структура(Struct) YG, вот несколько примеров использования:

Проверка языка

// Локализация текста
var _text = ""
if (YG.lang == "ru") {
    _text = "Привет, мир!";
} else if (YG.lang == "en") {
    _text = "Hello, world!";
}

draw_text(x, y, _text)

Работа с данными

// Обновление игровых данных
YG.data.level = 10;
YG.data.score = 20000;
YG.data.coins = 100;

// Сохранение данных на сервер/в файл
YG.storage.data.send();

Работа с рекламой

Полноэкранная реклама:

if (YG.adv.interstitial.is_showable()) {
    pause_game(); // Ставим игру на паузу

    YG.adv.interstitial.show(function() {
        unpause_game(); // Снимаем игру с паузы когда реклама будет закрыта
    });
}

Реклама за вознаграждение:

YG.adv.reward.show(
    function() {
        // Игрок досмотрел рекламу до конца
        obj_player.coins += 100;
    },
    function() {
        // Игрок закрыл рекламу раньше времени
        show_debug_message("Реклама закрыта преждевременно");
    }
);

Баннер:

// Показать баннер
YG.adv.banner.show();
// Cкрыть баннер
YG.adv.banner.hide();

Управление аудио

// Получение текущей громкости
var _currentVolume = YG.audio.getVolume();

// Установка новой громкости
YG.audio.setVolume(_currentVolume+0.1);

Совет

Для более глубокого понимания возможностей расширения ознакомьтесь с документацией по объекту YG.