Переход с godot 3.5.1 на 4.1.1 - опыт миграции на примере реального проекта игры Многоликий: dress - hordes
если кликать картинку она будет последовательно меняться в размерах от 640 до 1282 пиксель.
если кликать картинку она будет последовательно меняться в размерах от 640 до 1282 пиксель.
смотреть видео
открыть страничку игры
Я веду разработку игры Многоликий: dress - hordes на godot 3.5.1
В связи с выходом новых версий godot 4.1.1, использующих api vulkan, решился
все-таки попробовать новинку.
Понятное дело, что папку для переходного проекта для 4.1.1 сделал отдельную,
скопировал туда все файлы проекта игры на godot 3.5.1 и
скачав свежий godot 4.1.1 запустил его и открыл из этой новой папки свой проект,
который решил мигрировать.
Сама миграция проходит в 2 этапа:
1) автоматический - godot 4.1.1 после попытки открыть старый проект предложит вам
автоматически преобразовать его в новый. Причем есть разные вариации этого действия.
Файлы ресурсов можно оставить в старом формате преобразовав только файл конфигурации
или же преобразовать все к новому формату.
Я конечно же выбрал полное преобразование.
2) После автоматического преобразования пришлось вносить ряд исправлений в коде,
а также исправлений напрямую не связанных с изменением кода.
Вот их полный список, который делал на примере своей игры -
# до 26.07.2023 разработка велась на godot 3.5.1
# с 26.07.2023 создан отдельный проект для разработки на godot 4.1.1
# изменения в коде для работы с godot 4.1.1 были внесены и коснулись таких
# вещей:
#
# было -
# export(String, FILE, "*.json") var dialogue_file_ru
# стало -
# @export var dialogue_file_ru: String # (String, FILE, "*.json")
#
# было -
# var file = File.new()
# стало -
# var file = FileAccess.open(file_path, FileAccess.READ)
#
# было -
# element_node.connect("button_up", self, "element_anim_play",
# [element_node.get_node("AnimatedSprite2D")])
# стало
# var animSprite: AnimatedSprite2D = element_node.get_node("AnimatedSprite2D")
#
# element_node.button_up.connect(element_anim_play.bind(animSprite))
# хотя можно и так -
# element_node.button_up.connect(element_anim_play.bind(
# element_node.get_node("AnimatedSprite2D")))
#
# но при вызове
# функция должна быть объявлена так:
# было -
# func element_anim_play(element):
# стало
# func element_anim_play(element: AnimatedSprite2D):
#
# в коде не должно быть имен переменных совпадающих с названиями методов
# var generate_new_element = false
# и был метод
# func generate_new_element():
# поэтому пришлось заменить на
# var generate_new_element_flag = false
# и заменить все ссылки в коде использующие обращения к переменной generate_new_element
# на generate_new_element_flag
#
# обращение к
# $scenes/scene_1/mindy/eyes_blink.playing
# дает ошибку
# надо теперь так -
# $scenes/scene_1/mindy/eyes_blink.is_playing()
#
# для массива element_dropout
# метод
# element_dropout.remove
# заменен вызовом
# element_dropout.remove_at
#
# также некоторые изменения не связанные с кодом
# у объекта
# $scenes/game_gui/steps_count
# у надписи была белая обводка в 2 пикселя, которая пропала после преобразования проекта на
# godot 4.1.1
# настроить обводку удалось так:
# В свойстве ThemeOverrides задал цвет для Outline
# ffffff
# и
# Constants Outline: 4px
# и то же самое пришлось повторить для объекта
# $scenes/game_gui/element_count/count
#
# в полноэкранном режиме объекты не масштабировались, чтобы это исправить сделал так -
# Project > Project Settings > Display > Window - Stretch - Mode: canvas_items
# после этого стало все ок
#
# других изменений для перехода с godot 3.5.1 на 4.1.1 пока не делалось. В игре каких-то
# ошибок при работе на godot 4.1.1 и в exe пока не замечено
#
#
#
То есть, как видно, изменения коснулись изменений в названиях объектов, их методов, появилась
необходимость указывать тип объекта при объявлениях методов, а также переменных с типом export
Одним словом, если у вас какой-то крупный проект, где большая кодовая база, то скорее всего
переход потребует большого количества правок и последующего тщательного тестирования.
Кроме того, сам смысл перехода на новую версию godot 4.1.1 должен быть оправдан.
Минусы перехода пока заключаются в том, что даже на официальном сайте пока неполностью обновлена
онлайн-документация, обновлены только файлы справки доступные внутри самого godot 4.1.1
Главным минусом является экспорт игры на другие платформы.
Лично для меня сюрпризом стало то, что игру для android и html5 не удалось запустить.
На android требуется установка vulkan, а у html5 появились какие-то дополнительные требования
к запуску на сервере в виде наличия https протокола на сайте, а также других настроек.
Буквально при запуске на локальном сервере, где нет https выдало следующую ошибку -
Error
The following features required to run Godot projects on the Web are missing:
Secure Context - Check web server configuration (use HTTPS)
Cross Origin Isolation - Check web server configuration (send correct headers)
SharedArrayBuffer - Check web server configuration (send correct headers)
Таким образом проект на godot 4.1.1 для экспорта на другие платформы помимо win и linux,
возможно потребует от вас дополнительных телодвижений, которых не было в старых
версиях godot до 4.
На примере своего проекта игры Многоликий: dress - hordes на godot 3.5.1
я по сути мог делать экспорт сразу на 4 платформы: win/linux/android/html5
ничего не меняя ни в коде, ни в настройках проекта (с учетом самой первой начальной
настройки, когда требуется указать путь до android SDK, файла .keystore и др.).
Сейчас же, на новом godot 4.1.1 помимо того, что под каждую платформу скорее всего
придется менять настройки перед сборкой - например меняя в проекте рендер с Forward+
на Mobile или Compatible (в godot 3.5.1 было всего 2: gles 2 и gles 3).
Так еще и придется держать код проекта как минимум в двух версиях - для старой
версии godot и для новой.
Поскольку игра на новом godot на устройстве пользователя может попросту не запуститься
из-за отсутствия установленного ПО для работы с API vulkan.
Для новых версий win 10, 11 и linux, это вероятно неактуально т. к. это все устанавливается
автоматически при установке свежих драйверов видеокарты.
А вот для других платформ это особенно актуально.
В связи с чем вывод, не торопиться сломя голову переводить свои проекты на новый godot 4.
Поскольку это будет связано с целым рядом осложнений как для вас, так и для пользователей
мобильных платформ, а также если игра запускается на каких-то более старых системах
с win 7/8 и т. п.
Переходить на новый godot 4.1.1 конечно же имеет смысл, но пока только в экспериментальных
целях и не как базовый проект вашей игры.
Базовый проект лично у меня пока остается на godot 3.5.1 и все версии игры я пока буду
делать только на нём.
Версия на godot 4.1.1 будет как бы альтернативной. Я уже вношу туда все те же изменения кода,
какие делал в базовой 3.5.1 версии и тестирую. Но пока без выкладывания в широкий доступ
для использования.
Конечно вести сразу 2 проекта и вносить правки в каждый - не очень удобно. Но в виду
описанных выше сложностей. Дело обстоит именно так.
Вполне возможно, что через годик или 2 ситуация изменится в лучшую сторону:
онлайн-документация на официальном сайте обновится, в сети появится больше решений проблем
и вопросов с использованием godot 4 (что особенно актуально для тех, кто еще имеет
не очень большой опыт), и конечно же возможность использовать godot 4 приложения
на мобильных и других устройствах станет более простой (если там по-умолчанию уже
будет установлено все необходимое для использования api vulkan).
На этом у меня пока все на сегодня.
С вами был,
megainformatic.
Спасибо за внимание !!!
оцените статью:
0
0
игры, сервисы
играть
играть
случайный сайт
играть
видео-рассказ, уроки godot, виртуальный помощник по поиску информации
играть
читать
купить
скачать
игры Многоликий: dress - hordes эпизоды с 1 по 4
играть
скачать
купить
купить
игры, музыкальные клипы
скачать
скачать
смотреть
скачать/играть
музыкальный клип, игры
смотреть
играть
скачать
скачать
разработка игр, анимационный фильм, новогодняя дискотека 2020 - песни на итальянском, игра про лифт
смотреть
смотреть
смотреть
смотреть
игры, инструменты разработки, анимационный фильм, фильм.
купить
смотреть
смотреть
скачать
игры
скачать
скачать
скачать
купить
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере (3), создание музыки в браузере (1)
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
бк 0010.01 - играть!
играть
игры в браузере
играть
играть
играть
играть
игры в браузере (3), скачиваемые (1)
играть
играть
играть
скачать
игры в браузере
играть
играть
играть
играть
игры в браузере, скачиваемые игры
играть
скачать
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
Foxyland 2
quidget 2
играть
играть
полезный софт, игры в браузере
скачать
anova игра
A Knots Story
sabotage
сервисы, игры
24500 руб.
скачать
игра
играть
игры, программы
купить / скачать
купить
5500 руб.
скачать
поздравления, уроки рисования, уроки создания сайтов
читать
читать
читать
150 руб.
комиксы, музыка, рассказы
читать
читать
слушать
читать
игра для разработки, калькулятор услуг, cms, комикс
250 руб.
разработка на заказ
1250 руб.
350 руб.
игры для разработки, комиксы
скачать
читать
читать
скачать
игры шарики и ямки, комиксы про Костю Коробкина, ria xxl игра, fly snow 3d генератор эффектов снега, частиц и др. -
скачать
читать
150 руб.
350 руб.
Создай свою игру на fle game engine -
800 руб.
240 руб./скачать
скачать
скачать
Для создания сайта - модуль отзывов/комментариев для вашего сайта в составе megainformatic cms express files -
700 руб.
1250 руб.
150 руб.
500 руб.
Уроки Flash, бесплатные Flash - игры.
бесплатно
бесплатно
2500 руб.
14000 руб.
Поддержка сайтом нескольких языков (multi lang), создание собственной системы личных кабинетов, соц. сети или фриланс - биржи (megainformatic cms social), создание сервиса коллективных покупок на базе megainformatic cms groupon, онлайн сервис подсчёта статистики ключевых слов в статьях вашего сайта keywords gen + описание кода данного сервиса, с возможностью бесплатно реализовать его аналог на своём собственном сайте.
500 руб.
12000 руб.
14000 руб.
бесплатно
megainformatic.ru/webjob/ - сервис для фриланс проектов
- место встречи заказчиков и исполнителей
megainformatic.ru/webjob/ - сервис для фриланс проектов
- место встречи заказчиков и исполнителей
Системы управления сайтом, уроки
1250 руб.
бесплатно
550 руб.
500 руб.
megainformatic cms admin - простая и компактная система
для работы и управления сайтом
350 руб.
5800 руб.
3000 руб.
500 руб.
megainformatic cms free и серия продуктов - Уроки Photoshop
бесплатно
650 руб.
700 руб.
750 руб.
Данная серия посвящена описанию приемов и методов создания изображений,
с помощью инструментария программы Adobe Photoshop. Кроме того, многие
описанные средства могут вам помочь при освоении и многих других программ
для работы с растровой графикой - GIMP, Corel Photo Paint и других.
бесплатные игры 2d и 3d, а также эмулятор Ну, Погоди!
300 руб.
бесплатно
бесплатно
бесплатно
Это серия распространяемых бесплатно игр. Вы не только можете поиграть,
но и скачать исходники, получив тем самым возможность внести изменения
в игру или создать новую !!! (эмулятор Ну, Погоди! распространяется платно).
серия игр про Веселого Буквоежку, и бесплатно распространяемая игра
Нечто: Необъяснимое - в плену желаний
350 руб.
510 руб.
fle game engine
бесплатно
Здесь представлены новинки жанра - Говорящий Комикс, Настольная игра,
А также продукт, который позволит Вам научиться создавать игры самостоятельно.
Ну и конечно изюминка в своём роде - бесплатная игра - Нечто: Необъяснимое
- в плену желаний
Серия бесплатных онлайн уроков, посвященных 3ds max, photoshop, c++,
directx, delphi и php.
бесплатно
бесплатно
бесплатно
бесплатно
бесплатно
бесплатно
500 руб.
300 руб.
Описаны практические примеры решения различных задач, возникающих при
создании игр и сайтов.
Продукты Набор разработчика и Ваше Визуальное Шоу распространяются платно.
уроки и продукты различной тематики
бесплатно
бесплатно
бесплатно
400 руб.
Бесплатные Уроки Photoshop free, Бесплатные Уроки по программированию
на delphi directx - Как создать игру Ну, Погоди!, Бесплатная Авторская
музыка в формате mp3 - Музыкальные Миры, Платно распространяемый продукт
megainformatic cms express - система для быстрого создания Вашего сайта
на php + my sql.
Проекты игр, уроки
450 руб.
бесплатно
бесплатно
бесплатно
Игра Веселый Буквоежка, уроки delphi directx 8.1 для начинающих (описываются
основы 3d игр), моделируем девушку в 3d studio max, уроки музыки - пишем
музыку в Fruity Loops Studio
megainformatic
cms express files - это простое, быстрое и очень компактное решение
для создания первого вашего сайта. НЕ ИСПОЛЬЗУЕТ базы данных mysql.
Вместо этого используются файловые базы данных. Поэтому Вы
можете использовать систему даже на хостинге с поддержкой php, но
без поддержки баз данных my sql.
Очень
проста в установке - достаточно вам скопировать все файлы на ваш
хостинг и сайт готов к работе !!!
В комплект входят 3 готовых шаблона, модули поиска и карты сайта,
а также статьи по основам создания сайта.