Repin Develop – Telegram
Repin Develop
415 subscribers
36 photos
4 videos
42 files
96 links
Download Telegram
У каждого наверное было такое, что хочется сделать какой-нибудь проект, но появляются сомнения в его целесообразности, или же он кажется слишком сложным. И так как нет тех, кто может подсказать, то возникает большой риск допустить ошибку, и потратить время зря.
Завтра в 18:00 на стриме обсудим эту тему. Присоединяйтесь!
Если у вас есть какая-то задумка, и вас терзают сомнения, то это хороший вариант для того, чтобы взглянуть на свою идею со стороны.
05.10.24 в 18:00 на канале @repindevelop! До встречи.
👍6👌1🍌1
Live stream started
Live stream finished (1 hour)
К сожалению сегодняшний стрим не сохранился в нужном качестве. Возможно это произошло из-за проблем с Telegram.
Почти целый час пустой аудиодорожки. В видео так же отсутствует звук.
Но ладно трансляция сегодня получилась спонтанной, а со следующего стрима планирую начать новый формат.

От начала до конца стрима будем разрабатывать игру.
Жанр и сеттинг объявлю на следующей неделе. Тогда же и подготовлю графические ассеты.
А на самом стриме будем это все собирать и писать код.
По итогу стрима у нас должен получиться не только мини-урок, а еще готовая игра которую можно будет скачать и поиграть.

Все ресурсы и исходные коды будут доступны под открытой лицензией.
🍌1
Podcast Live #2
Repin Develop
И все-таки запись с очередной трансляции получилось найти, часть аудио к сожалению не получилось восстановить и ее пришлось вырезать. Однако большая часть записи теперь доступна для прослушивания. Запись чуток ускорил.

В этот раз живого обсуждения у нас не получилось, и мы ограничились общением через чат.

00:01:47 - Азы оптимизации. Чему можно научиться у проектов с J2ME. На что стоит обратить внимание при разработке игры на Godot 4 для web.
00:17:46 - Про организацию процесса разработки игр в одиночку. Как делать и доводить проекты до релиза, и не застрять на одном проекте.
00:42:16 - Тема сомнительных проектов. Какая тема, такое и обсуждение.

Так же озвучил тему для следующих трансляций. Но об этом, я так же написал в предыдущем посту.
🔥3👍1🍌1
Media is too big
VIEW IN TELEGRAM
Экспериментирую с меню выбора глав в игре...

Так же думаю над темой первого "открытого" урока на стриме. Вообще много планов на эту неделю.
Нужно доделать покупки в IGBGUI. Далее подготовить графику и звуки игры которую буду делать на стриме.

Если успею сделать то, стрим пройдёт как и запланировано в эту субботу. А если нет, то перенесём это дело на недельку.

Ах да ещё и несколько дней надо выделить на полировку, а возможно и выпуск одной из своих игр.
👍3🙈1
Сегодня попробую начать диалог с поддержкой Steam насчёт одной интересной темы.

Подробности пока не могу озвучить.
Но задумка заключается в том, чтобы помочь начинающим(и не только) разработчикам попасть в Steam.

Без оплаты взносов.
👍3🔥2🙈1
Сцена IGBGUI обновлена до версии 4.3a!
Работа над сценой вышла на финишную прямую, остаются незначительные доработки. С этого момента можно считать, что полноценная реализация Instant Games Bridge под Godot 4 готова.
Изменения:
-Добавлена функция выбора настроек локализации. Теперь можно выбрать три варианта откуда будет получаться текущий язык: "Platform", "System", "Manual". В случае выбора ручного назначения вы можете назначить ключ языка вручную в формате ISO 639-1 в переменной "manual_language_key".
Загрузить IGBGUI вы можете по ссылке ниже:
https://news.1rj.ru/str/repindevelop/44
🔥8💊1
И так, товарищи. К этим выходным к сожалению я не успеваю подготовить весь материал для урока на стриме.
Сейчас в приоритете завершить работу над IGBGUI, а так же выпустить одну из своих игр.

Однако в эту субботу можно посвятить стрим функционалу IGBGUI. Рассмотреть его вызов через код, а так же при помощи инспектора.

Оставляйте свои пожелания в комментариях.
👍4🔥1🍌1
Сцена IGBGUI обновлена до версии 4.3t!

Теперь уверенно можно сказать, что реализация всего функционала Instant Games Bridge под Godot 4 готова.
Остаётся доделать дополнительный функционал например: внешний аудио вывод при помощи JavaScript.

Изменения:
-Реализована полная поддержка внутриигровых покупок на платформе Яндекс Игры!
Доступно совершение покупки, совершение расходования в случае не обработанных покупок. Так же можно получить каталог всех товаров и список купленных товаров.

Загрузить IGBGUI вы можете по ссылке ниже:
https://news.1rj.ru/str/repindevelop/44
🔥8👎1
Сцена IGBGUI обновлена до версии 4.3b!

Постепенно простая сцена обрастает ультимативным набором функций для работы с web-площадками.
Ведь задача максимально упростить разработку под web платформы на Godot.
Однако разработка стабильной версии продолжается!

Изменения:
-Добавлена возможность скрыть баннер.
-Автоматическое получение токена при совершении покупки на случай непредвиденных ситуаций.
-Добавлена предварительная версия внешнего аудио вывода при помощи Web Audio API без использования сторонних библиотек и расширений!
В массиве external_audio_path можно указать путь или url до аудио файла.
На данный момент доступно воспроизведение одной аудиозаписи.
$igbgui.on_external_audio_play() - воспроизвести аудио из массива
$igbgui.on_external_audio_stop() - остановить воспроизведение

Функция имеет предварительный статус и не тестировалась в работе на мобильных устройствах.


Загрузить IGBGUI вы можете по ссылке ниже:
https://news.1rj.ru/str/repindevelop/44
5👍2🔥2👎1
К сожалению сегодня стрим не состоится. Слишком много сторонних дел.

Однако если появятся возможность, то постараюсь довести до ума внешний аудио вывод в IGBGUI.
Так как на данный момент хромает реализация.

Существует проблема появления проигрывателя в уведомлениях на телефонах.

Есть ограничение по воспроизведению нескольких аудио записей. Планирую добавить зацикливание, паузу и снятие с паузы воспроизведения.

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

Помимо этого надо добавить загрузку изображений по url или base64, это может помочь в случае покупок на Яндекс Играх когда надо получить иконку валюты, а так же поэтапной загрузке изображений и реализации текстурных модов в играх.


В общем работы полно!
👍7👎1
Сцена IGBGUI обновлена до версии 4.3rc1!

Данный релиз фиксирует баги в предыдущих версиях. Работа над стабильной веткой продолжается.

Изменения:
- Исправлена проблема с покупками. Когда при выполнении покупки, приходил сигнал not done.
- Изменена работа внешнего аудио вывода. Теперь не появляются уведомления о воспроизведении аудио на мобильных телефонах, что позволит пройти модерацию на различных платформах.
Так же был скорректирован план на реализацию данного функционала в IGBGUI. Было решено не добавлять на данный момент возможностей установки паузы и снятия с паузы. Текущий функционал ориентирован больше на поочередное включение фоновой музыки, для всего остального будет сделан отдельный узел для более гибкой работы со звуками.

- Сделано опциональной и выключено по умолчанию отключение звука при потере фокуса мыши.

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

Загрузить IGBGUI вы можете по ссылке ниже:
https://news.1rj.ru/str/repindevelop/44
🔥5👍1👎1
rdhub2d_extendedlabel.tscn
1.6 KB
Продолжаю делиться своими компонентами которые упрощают разработку.
Расширенный узел Label для Godot 4.

Основная задумка расширения заключается в реализации поддержки нескольких языков без использования файла локализации. Все переводы хранятся массивах. Вся работа проходит в инспекторе.
Для начала использования мультиязычного ввода включите галку Multilang Text.
Далее создайте значения ключей языков в массиве Text Lang Key в формате ru, en и т.д. На каждый элемент массива - один ключ языка.
Для добавления текста на нужном вам языке создайте элемент массива в Text Value.
Пример: язык с ключом en находится под номером 0. То и весь текст на английском языке в массиве значений должен быть под номером 0.

Параметр Dynamic Text Slice при включении позволяет реализовать простейшую форму диалогов и субтитров.
Графа Dynamic Text Slice Tag нужна для указания тега, чтобы разделять внесенный тест на несколько независимых участков.
Dynamic Text Number показывает номер отображаемого участка текста.
Пример: текст1[t]текст2
🔥3👎1
Сцена Web Platforms Shell(IGBGUI) обновлена до версии 4.3rc2!

Реализован весь функционал оригинального Instant Games Bridge , а так же все дополнительные опции как внешний аудио вывод при помощи Web Audio API и загрузка изображений из внешних источников, таких как URL или Base64.

Изменения:
- Добавлена загрузка изображений из внешних источников.
Можно загрузить изображение по URL. Это позволит загружать сторонние изображения с веб сайтов, при условии если площадка на которой вы выпустили игру допускает сторонние запросы.
Так же сделана возможность загружать изображения из Base64.
Загрузка изображений из сторонних источников позволит разгрузить сборку игры, позволит удаленно управлять ресурсами игры, а так же дает возможность для возможности создания доступа к пользовательским модификациям.


Остается лишь финальное тестирование всех функций и можно отправлять в стабильный релиз.

Загрузить Web Platforms Shell(IGBGUI) вы можете по ссылке ниже:
https://news.1rj.ru/str/repindevelop/44
👍4🔥3👎1🗿1
Какую игру будем делать на стримах? Сейчас две идеи. Надо выбрать с чего начнём, и для чего готовить ассеты?
Final Results
84%
2.5d динамический ретро-шутер от первого лица
16%
2d гонку с видом сбоку на базе rigidbody
👎1🔥1
С огромным перевесом побеждает вариант шутера от первого лица.

Теперь буду начинать подготовку в создании графики для игры. Процесс сбора материалов опубликую также в постах.

Непосредственная сборка игры и написание кода скорее всего растянется на несколько стримов.
По итогу должна получиться полностью законченная игра.

Предварительные задачи которые нужно будет выполнить при разработке этой игры:
- Игра должна быть адаптирована на все устройства и различные ориентации экрана (портретная и горизонтальная).
- Управляться с различных устройств ввода (клавиатура+мышь, сенсорный экран и геймпад).
- Выпущена на различные платформы и площадки
(VK Игры, Яндекс Игры, VK Play, Steam)
- Для веб площадок должна быть интеграция с Web Platforms Shell.
- Должна быть реализация сплит-скрин и сетевого кооператива.
👍8👎1
rdhub2d_extendedbutton.tscn
8.4 KB
Ещё один компонент в дополнение к расширенному узлу label.
Расширенный узел Button для Godot 4.

Тут точно так-же как в узле Extended Label реализована функция Multilang Text для быстрого создания локализации текста в узле без использования CSV. Все делается прямо из инспектора. Так-же присутствует функция Dynamic Text Slice для реализации простейших диалогов.

Дополнительный функционал расширенной кнопки:
- Возможность создания фоновой заливки для кнопки. Необходимо поставить галочку рядом с пунктом Background.
Далее нужно указать размер фоновой заливки в ручную или выбрать режим BG Auto Size, чтобы размер подстраивался автоматически под размер кнопки.
- Упрощенная настройка цветов текста, фона, всей кнопки в целом для обычного состояния или в когда кнопка в фокусе.
- Из инспектора можно задать переход на другую сцену. Включить режим и указать адрес сцены можно в секции Link Settings.
- Режим Alt Link позволяет сменить адрес следующей сцены на ходу. Alt Link is External вызывает переход на внешние источники.
👍5👎1
Сжатые шаблоны обновлены!
Добавлен прогресс-бар вверху страницы.

Сжатый шаблон для Godot 3.6:
https://news.1rj.ru/str/repindevelop/35
Сжатый шаблон для Godot 4.3:
https://news.1rj.ru/str/repindevelop/58
Сжатый шаблон для Godot 4.4.dev3:
https://news.1rj.ru/str/repindevelop/106
🔥5
Тут в соседних чатах выложили способ сжатия используя brotli. По сути там всё тоже самое как и с gzip. Только библиотеку изменили.

Однако там присутствует проблема как и у других публичных гайдов по сжатию в gzip.
Суть проблемы такова: порой при загрузке ресурсов wasm загружается раньше чем pck. Тем самым движок уходит в ошибку.
Эту проблему я исправил в своих сжатых шаблонах.

Изучу brotli.js и возможно сделаю шаблоны с использованием этого метода сжатия.
Всё таки в сжатом виде wasm от Godot 4.3 будет весить чуть больше 5мб.

Посмотрим как это всё будет работать на площадках. Ибо не всё площадки допускают работу шаблонов в своих заголовках. И с brotli могут быть проблемы в отличии от того же gzip.

В общем посмотрим...
🔥8
Предварительно по сжатию Brotli.

Посмотрел я текущие реализации библиотек Brotli на JavaScript и понял, что на данный момент они уступают тому же Pako JS которая используется в шаблонах с Gzip.

Стабильность библиотек очень важна, так как от этого зависит возникновение непредвиденных ситуаций. И если в случае с Gzip сжатием всё очень хорошо задокументировано, то у Brotli с этим проблемы.

Так же возникли вопросы к скорости текущих библиотек, например Brotli.js.

В итоге на данный момент я не вижу смысла шаблонах с использованием метода сжатия Brotli по нескольким причинам:
- Отсутствие какой-либо стабильной js реализации. Всё текущие реализации вызывают вопросы.
- Высокий риск возникновения не решаемых проблем. Мне нужно обеспечить "железобетонную" работоспособность шаблона, как это сделано в шаблонах с Gzip.
- Не такая большая разница в размере билда, при высоких рисках нестабильной работы.
- Сомнительная разница в скорости распаковки.

В общем, буду периодически возвращаться к этому вопросу. Но на данный момент в шаблонах с Brotli нет смысла.
👍6