instant-games-bridge / instant-games-bridge-godot

MIT License
52 stars 3 forks source link

Портирование на Godot 4 #8

Open Smooth-E opened 7 months ago

Smooth-E commented 7 months ago

Так как большая часть пользователей плагина русскоговорящая, и документация к плагину предоставляется на русском языке, то здесь буду писать на русском, чтобы избежать недопониманий из-за трудностей перевода или формулировки сообщений.

Описание

В этом реквесте я портирую плагин для работы с Godot 4. В Godot 4.3 будет добавлена поддержка single thread запуска в браузере, что позволяет запускать игры на платформах без поддержки SharedArrayBuffer и Cross-Origin изоляции (например, Яндекс Игры). Поэтому сейчас портировать плагин на Godot 4 имеет смысл.

Что сделано

Постарался переписать все вызовы к измененным API. В некоторых местах сделал статическую типизацию, но, чтобы сделать статическую типизацию по всему плагину, нужно еще много чего переписывать. Не знаю, насколько она нужна, поэтому пока дальше над этим работать не стал.

Что работает, а что - нет

Если при экспорте проекта снять галочку Thread Support, то игру можно будет запускать на платформах без поддержки Cross-Origin изоляции и SharedArrayBuffer.

Частично работает показ рекламы. К платформе вызовы проходят, а вот состояния баннеров и видео не отслеживаются. Я относительно недавно начал работать с Godot, так что здесь мне понадобиться совет.

На Яндекс Играх работает авторизация игрока, но не подгружается аватар (заменяется на пустую текстуру). Скорее всего проблемы с сериализацией.

Работает сохранение в локальную память (Crazy Games и редактор) и в память платформы (Яндекс Игры). При сохранении в локальную память в редакторе значения типа boolean конвертируются в 1/0, потому что иначе сохраняются как строки true или false, которые потом нельзя будет использовать с конверсией var boolean = bool(data[index]) (в отличии от цифр).

Другие фичи не проверял, потому что их нет в шаблоне и потому что я в целом с ними еще не работал. Плагин проверял только на Crazy Games и в Яндекс Играх, потому что другими платформами пока не пользуюсь.

KonstantinKuklin commented 1 week ago

есть какая-то информация насчет поддержки 4-ой версии плагина? ветка 4 в самом репозитории выглядит слегка заброшенной, статус этого ПР тоже не совсем ясен

Smooth-E commented 6 days ago

есть какая-то информация насчет поддержки 4-ой версии плагина? ветка 4 в самом репозитории выглядит слегка заброшенной, статус этого ПР тоже не совсем ясен

В апреле в официальной группе плагина в Телеграм были вопросы про улучшение плагина. Я на тот момент перестал активно интересоваться Godot, так что ответил, что плагин продолжать портировать пока не буду. После дискуссии разработку перенял Павел Репин. В мае он выложил на своем канале он выложил сборку плагина в его "альфа версии". Эту сборку я не тестировал.

Печально, что товарищ Репин не указал ссылок ни на оригинальный плагин, ни на данный пулл реквест.