Repin Develop Podcast Live #3
Показал как работать с ранее опубликованными компонентами:
-Extended Label
-Extended Button
-Savesystem
-Web Platforms Shell
Так же обсудили прочие темы.
Прошедший стрим побил очередной рекорд по продолжительности.
Видео находится на ВК Видео, так как в Telegram бы оно заняло около 1,5 Гб.
Тайм-коды в описании.
Ссылка на ВК Видео:
https://vk.com/video-148399826_456239140
Показал как работать с ранее опубликованными компонентами:
-Extended Label
-Extended Button
-Savesystem
-Web Platforms Shell
Так же обсудили прочие темы.
Прошедший стрим побил очередной рекорд по продолжительности.
Видео находится на ВК Видео, так как в Telegram бы оно заняло около 1,5 Гб.
Тайм-коды в описании.
Ссылка на ВК Видео:
https://vk.com/video-148399826_456239140
VK Видео
Repin Develop Podcast Live #3
00:00:36 - Extended Label 00:10:10 - Extended Button 00:19:24 - Save System 01:07:54 - Web Platforms Shell 02:43:46 - Разговоры на различные темы. Telegram: https://news.1rj.ru/str/repindevelop
👍10🔥8👏2
Ссылки на полезные компоненты для упрощения разработки на Godot 4.
Сжатый шаблон для Godot 4.4. Рекомендуемая на данный момент версия четвёртой ветки.
https://news.1rj.ru/str/repindevelop/258
Web Platforms Shell. Оболочка для интеграции с различными web-площадками. И упрощения разработки под платформу HTML5.
https://news.1rj.ru/str/repindevelop/44
Система сохранений. Базовая реализация локальных сохранений в файл. Всё данные хранятся в словаре.
https://news.1rj.ru/str/repindevelop/66
Расширенный узел Label. Предоставляет расширенный функционал для реализации переводов текста в узле без использования CSV. Так же позволяет реализовать простейшие субтитры или диалоги при помощи параметра динамического текста.
https://news.1rj.ru/str/repindevelop/122
Расширенный узел Button. Аналогично с узлом "extended label" имеет реализацию перевода текста через инспектор без CSV и поддержку динамического текста.
Помимо этого есть возможность реализовать быстрый переход на другую сцену без написания кода.
https://news.1rj.ru/str/repindevelop/128
Как сделать адаптивный интерфейс в Godot 4. Проверка ориентации экрана.
https://news.1rj.ru/str/repindevelop/142
Сжатый шаблон для Godot 4.4. Рекомендуемая на данный момент версия четвёртой ветки.
https://news.1rj.ru/str/repindevelop/258
Web Platforms Shell. Оболочка для интеграции с различными web-площадками. И упрощения разработки под платформу HTML5.
https://news.1rj.ru/str/repindevelop/44
Система сохранений. Базовая реализация локальных сохранений в файл. Всё данные хранятся в словаре.
https://news.1rj.ru/str/repindevelop/66
Расширенный узел Label. Предоставляет расширенный функционал для реализации переводов текста в узле без использования CSV. Так же позволяет реализовать простейшие субтитры или диалоги при помощи параметра динамического текста.
https://news.1rj.ru/str/repindevelop/122
Расширенный узел Button. Аналогично с узлом "extended label" имеет реализацию перевода текста через инспектор без CSV и поддержку динамического текста.
Помимо этого есть возможность реализовать быстрый переход на другую сцену без написания кода.
https://news.1rj.ru/str/repindevelop/128
Как сделать адаптивный интерфейс в Godot 4. Проверка ориентации экрана.
https://news.1rj.ru/str/repindevelop/142
🔥10👍4
Repin Develop pinned «Ссылки на полезные компоненты для упрощения разработки на Godot 4. Сжатый шаблон для Godot 4.4. Рекомендуемая на данный момент версия четвёртой ветки. https://news.1rj.ru/str/repindevelop/258 Web Platforms Shell. Оболочка для интеграции с различными web-площадками.…»
У многих начинающих разработчиков на Godot 4, которые ориентируются под HTML5-платформу и не только возникает вопрос - как сделать адаптивный интерфейс?
В этом посте я приведу пример настроек проекта и кода которые позволят вам охватить различные устройства, а так же адаптировать интерфейс под горизонтальную и портретную ориентацию!
В первую очередь начинаем с настроек проекта.
Необходимо выбрать базовое разрешение экрана от которого мы будем отталкиваться. Я рекомендую выбрать разрешение 295x720.
Тем самым стартовое разрешение охватит самые узкие экраны, а в наше время такие устройства уже появляются, например различные модели с раскладными экранами.
Следующий параметры которые нужно выбрать в настройках проекта отвечают за растягивание области по ширине. В пункте "Режим(Stretch Mode)" выбираем "canvas_item", а "Соотношение(Aspect)" ставим "keep_height".
Теперь сохраняем настройки проекта. База для адаптивного дизайна у вас есть.
Настал момент, когда надо реализовать проверку ширины дисплея, чтобы удобно адаптировать различные игровые параметры. Делать это мы будет при помощи переменной vertical и двух вариантов проверки ориентации.
1. Самый простой и понятный вариант через _process(delta).
Создаем переменную в нашем коде.
Далее переходим в процесс. Тут нужно реализовать проверку ширины разрешения.
Теперь когда значение переменной vertical становится true - это говорит о том, что ориентация близка к вертикальной или является такой. Соответственно когда переменная принимает значение false, то ориентация экрана горизонтальная.
2. Более оптимизированный способ при помощи сигнала size_changed.
При помощи таких простых способов можно адаптировать интерфейс, увеличение камеры, элементы управления и прочее под различные ориентации экрана.
В этом посте я приведу пример настроек проекта и кода которые позволят вам охватить различные устройства, а так же адаптировать интерфейс под горизонтальную и портретную ориентацию!
В первую очередь начинаем с настроек проекта.
Необходимо выбрать базовое разрешение экрана от которого мы будем отталкиваться. Я рекомендую выбрать разрешение 295x720.
Тем самым стартовое разрешение охватит самые узкие экраны, а в наше время такие устройства уже появляются, например различные модели с раскладными экранами.
Следующий параметры которые нужно выбрать в настройках проекта отвечают за растягивание области по ширине. В пункте "Режим(Stretch Mode)" выбираем "canvas_item", а "Соотношение(Aspect)" ставим "keep_height".
Теперь сохраняем настройки проекта. База для адаптивного дизайна у вас есть.
Настал момент, когда надо реализовать проверку ширины дисплея, чтобы удобно адаптировать различные игровые параметры. Делать это мы будет при помощи переменной vertical и двух вариантов проверки ориентации.
1. Самый простой и понятный вариант через _process(delta).
Создаем переменную в нашем коде.
var vertical = false
Далее переходим в процесс. Тут нужно реализовать проверку ширины разрешения.
func _process(_delta: float) -> void:
#проверка ориентации экрана
if get_viewport().size.y > get_viewport().size.x/1.4:
vertical = true
else:
vertical = false
Теперь когда значение переменной vertical становится true - это говорит о том, что ориентация близка к вертикальной или является такой. Соответственно когда переменная принимает значение false, то ориентация экрана горизонтальная.
2. Более оптимизированный способ при помощи сигнала size_changed.
func _ready() -> void:
get_tree().root.size_changed.connect(_screen_orientation)
func _screen_orientation() -> void:
if get_viewport().size.y > get_viewport().size.x/1.4:
vertical = true
else:
vertical = false
При помощи таких простых способов можно адаптировать интерфейс, увеличение камеры, элементы управления и прочее под различные ориентации экрана.
🔥12👍3
Третья ветка Godot ещё не потеряла свою актуальность, а для некоторых будет актуальна ещё очень долго.
Ссылки на полезный материал для Godot 3:
Сжатый шаблон Godot 3.6 для HTML5 платформы.
https://news.1rj.ru/str/repindevelop/35
Сжатый шаблон Godot 3.6.mono для HTML5 платформы.
https://news.1rj.ru/str/repindevelop/227
Web Platforms Shell. Оболочка для интеграции с различными web-площадками. И упрощения разработки под платформу HTML5.
https://news.1rj.ru/str/repindevelop/212
Расширенная основа для разработки гонок с видом сверху. Контроллер автомобиля, различные режимы, всё в одной системе.
https://news.1rj.ru/str/repindevelop/17
Готовый контроллер для создания платформеров, и раннеров с видом сбоку.
Интегрированы различные режимы, и счётчики.
https://news.1rj.ru/str/repindevelop/36
Полноценная заготовка для разработки шутеров с видом сверху. Интегрированы различные режимы игры, расширенное поведение персонажа. Машина состояний персонажа и оружия.
https://news.1rj.ru/str/repindevelop/37
Готовый компонент для разработки игр в жанре три в ряд.
https://news.1rj.ru/str/repindevelop/147
Контроллер для разработки игр в жанре пазл.
https://news.1rj.ru/str/repindevelop/148
Ссылки на полезный материал для Godot 3:
Сжатый шаблон Godot 3.6 для HTML5 платформы.
https://news.1rj.ru/str/repindevelop/35
Сжатый шаблон Godot 3.6.mono для HTML5 платформы.
https://news.1rj.ru/str/repindevelop/227
Web Platforms Shell. Оболочка для интеграции с различными web-площадками. И упрощения разработки под платформу HTML5.
https://news.1rj.ru/str/repindevelop/212
Расширенная основа для разработки гонок с видом сверху. Контроллер автомобиля, различные режимы, всё в одной системе.
https://news.1rj.ru/str/repindevelop/17
Готовый контроллер для создания платформеров, и раннеров с видом сбоку.
Интегрированы различные режимы, и счётчики.
https://news.1rj.ru/str/repindevelop/36
Полноценная заготовка для разработки шутеров с видом сверху. Интегрированы различные режимы игры, расширенное поведение персонажа. Машина состояний персонажа и оружия.
https://news.1rj.ru/str/repindevelop/37
Готовый компонент для разработки игр в жанре три в ряд.
https://news.1rj.ru/str/repindevelop/147
Контроллер для разработки игр в жанре пазл.
https://news.1rj.ru/str/repindevelop/148
🔥5
Repin Develop pinned «Третья ветка Godot ещё не потеряла свою актуальность, а для некоторых будет актуальна ещё очень долго. Ссылки на полезный материал для Godot 3: Сжатый шаблон Godot 3.6 для HTML5 платформы. https://news.1rj.ru/str/repindevelop/35 Сжатый шаблон Godot 3.6.mono для HTML5…»
Серия игр Repin Develop Casual закрыта!
Все исходные коды игр и их ассеты станут доступны в ближайшее время под открытыми лицензиями.
Данный проект использует Godot 3 и включает в себя 4 игры различных жанров:
RD Casual #Drift Route - аркадная дрифт гонка с видом сверху.
RD Casual Urbatrium - раннер с видом сбоку.
RD Casual Drafters Home - игра в жанре три в ряд.
RD Casual Drafters Gallery - пазлы.
Помимо игр у Repin Develop Casual присутствует специальный лаунчер для запуска игр. Его исходные коды так же будут доступны.
Все исходные коды игр и их ассеты станут доступны в ближайшее время под открытыми лицензиями.
Данный проект использует Godot 3 и включает в себя 4 игры различных жанров:
RD Casual #Drift Route - аркадная дрифт гонка с видом сверху.
RD Casual Urbatrium - раннер с видом сбоку.
RD Casual Drafters Home - игра в жанре три в ряд.
RD Casual Drafters Gallery - пазлы.
Помимо игр у Repin Develop Casual присутствует специальный лаунчер для запуска игр. Его исходные коды так же будут доступны.
👍9❤1
match3.zip
4 KB
Готовый компонент для разработки игр в жанре три в ряд для Godot 3.
Игровое поле автоматически адаптируется под альбомную и портретную ориентацию экрана.
В инспекторе сцены "match3.tscn" можно задать различные параметры игры:
- Выбрать режим бесконечной игры.
- Настроить сложность игры.
- Установить продолжительность сессии.
- Настроить количество столбцов/строк на игровом поле.
- Присоединить сигналы состояний "done()" и "not_done()".
Компонент распространяется по лицензии GNU LGPL v3.
Поддержите проект! Подпишитесь на @repindevelop.
Игровое поле автоматически адаптируется под альбомную и портретную ориентацию экрана.
В инспекторе сцены "match3.tscn" можно задать различные параметры игры:
- Выбрать режим бесконечной игры.
- Настроить сложность игры.
- Установить продолжительность сессии.
- Настроить количество столбцов/строк на игровом поле.
- Присоединить сигналы состояний "done()" и "not_done()".
Компонент распространяется по лицензии GNU LGPL v3.
Поддержите проект! Подпишитесь на @repindevelop.
👍7
physics_puzzle.zip
4 KB
И еще один компонент из моего legacy хранилища.
Контроллер для создания игр жанра пазл для Godot 3.
Игровое поле автоматически адаптируется под альбомную и портретную ориентацию.
Через инспектор можно задать различные параметры игры:
- Количество деталей пазла.
- Режим игры(на время и без времени).
- Получить сигналы о состоянии игры "done" и "not_done".
Игровой процесс адаптирован как под управление мышкой, так и под сенсорные экраны.
Каждая деталь пазла обладает физическими свойствами.
Лицензия GNU LGPL v3.
Контроллер для создания игр жанра пазл для Godot 3.
Игровое поле автоматически адаптируется под альбомную и портретную ориентацию.
Через инспектор можно задать различные параметры игры:
- Количество деталей пазла.
- Режим игры(на время и без времени).
- Получить сигналы о состоянии игры "done" и "not_done".
Игровой процесс адаптирован как под управление мышкой, так и под сенсорные экраны.
Каждая деталь пазла обладает физическими свойствами.
Лицензия GNU LGPL v3.
👍4
Всё кто подписан на страницу Repin Develop в VK.
Для вас внутри группы припрятана первая пасхалка связанная с проектом, который мы будем собирать на стриме.
Ссылка на страницу в VK:
https://vk.com/repindevelop
Для вас внутри группы припрятана первая пасхалка связанная с проектом, который мы будем собирать на стриме.
Ссылка на страницу в VK:
https://vk.com/repindevelop
❤2👏1
Сжатые шаблоны HTML5 сборок для различных версий обновлены!
Обновлена JavaScript библиотека Playgama Bridge(Instant Games Bridge) до версии 1.17.0.
Шаблон для 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
Обновлена JavaScript библиотека Playgama Bridge(Instant Games Bridge) до версии 1.17.0.
Шаблон для 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
🔥4
Был бы вам интересен обучающий материал и готовые контроллеры под Defold?
Final Results
37%
Да
8%
Нет
55%
Godot-only
Как только на этой странице наберётся 300 подписчиков, то сразу выпущу весь проект Repin Develop Casual основанный на Godot 3.
В проект включено:
4 игры различных жанров и лаунчер с возможностью загрузки новых игр через pck файлы.
В проект включено:
4 игры различных жанров и лаунчер с возможностью загрузки новых игр через pck файлы.
🔥9
Оптимизация. Ресурсы и Вся Фигня.
С переходом на четвёртую ветку Godot при использовании предзагрузки сцен, я периодически замечал невероятный рост объектов и просто бешеный расход видеопамяти.
В Godot 3 никогда таких проблем не было.
Долго не мог понять в чем дело. В том, что врёт мониторинг у четвёрки, или наоборот тройка что-то скрывает. Ведь фактически просадок производительности не было.
Со временем работы в четвёрке, я понял, что она хоть и комфортнее в работе, но более чувствительна и строга к оптимизации. Особенно это касается web платформы. Например от любых шейдеров на данный момент стоит отказаться если вы делаете игру для браузеров.
Но да ладно, вернёмся к ресурсам, preload и load.
Так вот, если использовать предзагрузку то получается, растёт количество объектов и видеопамяти. Если использовать загрузку сцены прямо перед носом, то появляется статтеры и тормоза.
Ситуация казалась безнадёжной. Но решение всегда находится в обсуждении.
Поболтав с коллегой Олегом Долининым понял, что не я один сталкивался с похожими проблемами. Однако он указал на одну интересную вещь которую заметил в своих проектах на четвёрке при работе с частицами.
Так вот если не сохранить какой-либо ресурс в файл .tres или .res, и оставить его встроенным в сцену, то каждый раз при предзагрузке сцены с этим ресурсом будет создаваться уникальный ресурс.
Проверил, сохранил ресурс. В моём случае была проблема с TileSet. Сохранил его в .res файл и начал проверять. И всё, проблема исчезла. Более того, что количество объектов и видеопамять больше не росли при предзагрузке. Так и статтеры пропали при загрузке сцен на лету. И в целом увеличилась скорость загрузки сцен в десятки раз(примерно "на глаз").
Так вот итоги!
В Godot 4 по другому работает загрузка ресурсов, да и в целом ResourceLoader более строгий. Там где тройка прощала косяки, четвёрке встаёт в позу и говорит, что "ты парень не прав".
Мои рекомендации по оптимизации загрузки любых ресурсов для Godot 4 - сохраняйте всё ресурсы в .tres или .res файлы. Не важно, это тайлсет, атлас, частица и т.д.
Всё это сильно ускорит вам игру и избавит от неочевидных проблем.
С переходом на четвёртую ветку Godot при использовании предзагрузки сцен, я периодически замечал невероятный рост объектов и просто бешеный расход видеопамяти.
В Godot 3 никогда таких проблем не было.
Долго не мог понять в чем дело. В том, что врёт мониторинг у четвёрки, или наоборот тройка что-то скрывает. Ведь фактически просадок производительности не было.
Со временем работы в четвёрке, я понял, что она хоть и комфортнее в работе, но более чувствительна и строга к оптимизации. Особенно это касается web платформы. Например от любых шейдеров на данный момент стоит отказаться если вы делаете игру для браузеров.
Но да ладно, вернёмся к ресурсам, preload и load.
Так вот, если использовать предзагрузку то получается, растёт количество объектов и видеопамяти. Если использовать загрузку сцены прямо перед носом, то появляется статтеры и тормоза.
Ситуация казалась безнадёжной. Но решение всегда находится в обсуждении.
Поболтав с коллегой Олегом Долининым понял, что не я один сталкивался с похожими проблемами. Однако он указал на одну интересную вещь которую заметил в своих проектах на четвёрке при работе с частицами.
Так вот если не сохранить какой-либо ресурс в файл .tres или .res, и оставить его встроенным в сцену, то каждый раз при предзагрузке сцены с этим ресурсом будет создаваться уникальный ресурс.
Проверил, сохранил ресурс. В моём случае была проблема с TileSet. Сохранил его в .res файл и начал проверять. И всё, проблема исчезла. Более того, что количество объектов и видеопамять больше не росли при предзагрузке. Так и статтеры пропали при загрузке сцен на лету. И в целом увеличилась скорость загрузки сцен в десятки раз(примерно "на глаз").
Так вот итоги!
В Godot 4 по другому работает загрузка ресурсов, да и в целом ResourceLoader более строгий. Там где тройка прощала косяки, четвёрке встаёт в позу и говорит, что "ты парень не прав".
Мои рекомендации по оптимизации загрузки любых ресурсов для Godot 4 - сохраняйте всё ресурсы в .tres или .res файлы. Не важно, это тайлсет, атлас, частица и т.д.
Всё это сильно ускорит вам игру и избавит от неочевидных проблем.
👍13🔥4
23 ноября планирую посетить @igroprom.
Те, кто тоже будет там - увидимся!
По возможности проведу оттуда небольшой стрим.
Те, кто тоже будет там - увидимся!
По возможности проведу оттуда небольшой стрим.
👍5
Steampowered
Pavel Repin`s GUNFGTR Soundtrack on Steam
The soundtrack to the game GUNFGTR
И так какую игру мы будем собрать на стриме?
Название игры GUNFGTR, это полуаббривиатура от слова gunfighter, так обозначают человека который участвовал или принимает участие в перестрелках.
Что из себя будет представлять игра?
Это 2.5D шутер от первого лица с очень динамичным геймплеем.
Моя задача за стрим собрать не сложную, но интересную игру.
-В игре будет несколько единиц оружия.
-Всё анимации стрельбы записаны с реального огнестрельного оружия, и кадры этого процесса выложу на этой неделе.
-Уровни будут генерироваться случайно.
-Попробую реализовать немного не стандартную механику работы с оружием, думаю может получится интересно.
Кстати я выложил саундтрек к грядущему проекту, так музыка уже давно доступна для бесплатного прослушивания на странице Repin Develop в VK.
А в Steam выложил за символическую цену, если есть желание поддержать меня, то можете приобрести набор треков.
https://store.steampowered.com/app/3318570/Pavel_Repins_GUNFGTR_Soundtrack/
Название игры GUNFGTR, это полуаббривиатура от слова gunfighter, так обозначают человека который участвовал или принимает участие в перестрелках.
Что из себя будет представлять игра?
Это 2.5D шутер от первого лица с очень динамичным геймплеем.
Моя задача за стрим собрать не сложную, но интересную игру.
-В игре будет несколько единиц оружия.
-Всё анимации стрельбы записаны с реального огнестрельного оружия, и кадры этого процесса выложу на этой неделе.
-Уровни будут генерироваться случайно.
-Попробую реализовать немного не стандартную механику работы с оружием, думаю может получится интересно.
Кстати я выложил саундтрек к грядущему проекту, так музыка уже давно доступна для бесплатного прослушивания на странице Repin Develop в VK.
А в Steam выложил за символическую цену, если есть желание поддержать меня, то можете приобрести набор треков.
https://store.steampowered.com/app/3318570/Pavel_Repins_GUNFGTR_Soundtrack/
🔥2
Случайно сейчас наткнулся на выпуск одного "тревел" шоу, в эпизоде которого принял участие.
Если хотите глянуть как раньше проходили мои "рутинные" рабочие будни, то ссылка на выпуск ниже:
https://vk.com/video-218655765_456239350
Если хотите глянуть как раньше проходили мои "рутинные" рабочие будни, то ссылка на выпуск ниже:
https://vk.com/video-218655765_456239350
❤6🔥2
godot4gzip.zip
7.6 MB
Готовый шаблон для HTML5 сборки Godot 4.4.dev4
Сжатие при помощи GZip для существенного уменьшения размера сборки вашего проекта. Стартовый размер составляет 7мб вместо 35мб.
Шаблон включает автоматический упаковщик .PCK файлов.
Краткая инструкция по использованию:
1. Скачайте архив "godot4gzip.zip"
2. Распакуйте его в любую пустую папку.
3. В движке экспортируйте .PCK файл игры в ранее созданную папку с шаблоном.
4. Теперь запустите файл с именем "rdhubgzip.html".
5. Нажмите на кнопку "Обзор" и выберите ранее созданный .PCK файл.
6. После успешного сжатия нажмите "СКАЧАТЬ СЖАТЫЙ ФАЙЛ".
7. Переместите полученный файл "index.pck" в папку "build".
8. Теперь надо сжать все файлы в папке "build" в .ZIP архив и загрузить на любую web-площадку.
ВНИМАНИЕ! К сборке уже подключена JavaScript библиотека универсального SDK для различных web-площадок Playgama Bridge(Instant Games Bridge) v1.17.0.
Для работы с SDK из движка Godot 4 необходимо загрузить сцену Web Platforms Shell по ссылке ниже:
https://news.1rj.ru/str/repindevelop/44
Сжатие при помощи GZip для существенного уменьшения размера сборки вашего проекта. Стартовый размер составляет 7мб вместо 35мб.
Шаблон включает автоматический упаковщик .PCK файлов.
Краткая инструкция по использованию:
1. Скачайте архив "godot4gzip.zip"
2. Распакуйте его в любую пустую папку.
3. В движке экспортируйте .PCK файл игры в ранее созданную папку с шаблоном.
4. Теперь запустите файл с именем "rdhubgzip.html".
5. Нажмите на кнопку "Обзор" и выберите ранее созданный .PCK файл.
6. После успешного сжатия нажмите "СКАЧАТЬ СЖАТЫЙ ФАЙЛ".
7. Переместите полученный файл "index.pck" в папку "build".
8. Теперь надо сжать все файлы в папке "build" в .ZIP архив и загрузить на любую web-площадку.
ВНИМАНИЕ! К сборке уже подключена JavaScript библиотека универсального SDK для различных web-площадок Playgama Bridge(Instant Games Bridge) v1.17.0.
Для работы с SDK из движка Godot 4 необходимо загрузить сцену Web Platforms Shell по ссылке ниже:
https://news.1rj.ru/str/repindevelop/44
🔥6