GameMaker Studio · GML
Настройка
Gamdato предоставляет полный набор бэкенд-сервисов для разработчиков игр. В настоящее время мы поддерживаем GameMaker Studio 2.3+ с планами расширения на другие движки.
Создайте аккаунт
Зарегистрируйтесь на gamdato.com. Ссылка для активации будет отправлена на ваш email (она истекает через 24 часа). После подтверждения email войдите с вашими данными, чтобы получить доступ к панели.
Зарегистрируйте игру
Перейдите в свою панель и создайте новую игру, введя название. Система сгенерирует панель управления, где вы сможете управлять информацией об игре, таблицами лидеров, достижениями и просматривать список игроков.
Сохраните GAME_ID и GAME_KEY, они понадобятся для установления соединения между вашей игрой и сервером.
Скачайте и установите расширение
Скачайте расширение Gamdato и импортируйте его в свой проект GameMaker. Загружаемый файл содержит базовую, но полную интеграцию всех сервисов Gamdato. Мы рекомендуем изучить, как это работает, прежде чем использовать в своём проекте.
Настройка контроллера
Создайте постоянный объект, который инициализируется один раз в начале вашей игры. Поместите следующие скрипты в соответствующие события:
Create Event:
gmda_setController("GAME-ID", "API-KEY");
gmda_setLeaderboard("TABLE-KEY");Step Event:
gmda_Updatefunction();Async HTTP Event:
gmda_HTTPfunction();Чтение результатов: очередь событий
Сам вызов никогда не возвращает данные. Почти каждая функция gmda_* асинхронна: вы её вызываете, а затем читаете результат из очереди событий через gmda_pollEvent(), аналог сигналов Godot в GameMaker. Опустошайте очередь каждый Step; каждая запись это структура { event, success, ... }. Синхронные геттеры (gmda_get*, gmda_status) возвращают своё значение напрямую.
// Step event, после gmda_Updatefunction()
var e = gmda_pollEvent();
while (!is_undefined(e)) {
switch (e.event) {
case "session_started": show_debug_message("player: " + e.player_name); break;
case "submit_completed": show_debug_message("best: " + string(e.response.score.score)); break;
case "save_loaded": /* e.response.save.data */ break;
case "error": show_debug_message("error: " + string(e.error)); break;
}
e = gmda_pollEvent();
}Вспомогательные функции
Дополнительные помощники, доступные в расширении:
- gmda_status(): true, когда сессия активна И таблицы загружены. Проверяйте перед вызовами, которым нужны данные.
- gmda_getDate(): последняя локальная дата, сформированная gmda_refreshDate().
- gmda_refreshDate(): обновить и вернуть текущую дату/время.
- gmda_reloadinfo(): заново загрузить все таблицы лидеров с сервера.