Thunder Engine Development
44 subscribers
25 photos
1 video
17 links
Записки разработчика игрового движка. Чат канала @thunderengine_chat
Download Telegram
Удивительная документация GitVerse говорит, что я могу сделать зеркалирование репозитория гитхаба, просто поставив галочку при импорте репозитория. Однако, на проверку, такой галочки в интерфейсе не оказалось. 😭
😢1🤣1
Актуальный скрин для сравнения.
🔥1
Обнаружил крупную проблему связанную с менеджментом ресурсов. Пытаюсь исправить. Проблема носит очень глобальный характер.
👍5
🚨 Важное обновление: исправлена критическая проблема с импортом ресурсов!

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

Напомню: сложные ресурсы — это те, которые содержат несколько саб-ресурсов внутри. Например:
FBX-файлы — конвертируются в префаб (сцена) + меши + анимации (+ материалы в будущем)
• Другие составные форматы

В чем была проблема:
Новые ресурсы получали некорректные референсные ссылки, что приводило к:
⚠️ Неполной загрузке сцен
⚠️ Ошибкам связей между ресурсами

Что сделано:
Обновлен механизм генерации ресурса для всех конвертеров
Немного переработан механизм сохранения саб ресурсов и их регистрация в движке

Теперь импорт сложных ресурсов работает стабильно! 🎉

P.S. Если у вас были проблемы с импортом — попробуйте обновить движок и переимпортировать ресурсы. Баг должен исчезнуть!

#ThunderEngine #GameDev #Разработка #Баги #Импорт
🔥5
🛠 Исправлен критический баг с импортом FBX-префабов!

Обнаружил и устранил важную проблему, которая приводила к неправильному построению иерархии объектов в импортированных префабах. Рассказываю подробнее:

В чём была проблема:
Для сохранения правильных связей между объектами при повторном импорте используется система хэширования на основе уникальных ID. Однако если разные файлы содержали объекты с одинаковыми путями, возникали коллизии — в префаб случайно добавлялись «чужие» объекты, что ломало иерархию и приводило к ошибкам.

Как исправил:
Улучшил алгоритм хэширования — теперь он учитывает больше уникальных данных (включая метаданные файла и контекст импорта).
Генерируемые ID стали значительно надежнее и исключают коллизии.

Итог:
Теперь импорт сложных FBX-префабов работает стабильно, а связи между объектами остаются целыми даже после повторных обновлений ресурсов. 🎉

Если у вас были похожие проблемы — обновите движок и попробуйте переимпортировать файлы! Всё должно работать как часы. ⚙️

#ThunderEngine #GameDev #FBX #Импорт #Баги #Разработка
👍1
🎉 Важное обновление: SkinnedMeshRender теперь с поддержкой инстансинга!

Хочу поделиться крутой новостью: мы добавили полноценную поддержку инстансинга для SkinnedMeshRenderer! Это то, чего вы не встретите даже в Unity!

Что это значит на практике:
• Многократное повышение производительности при отрисовке одинаковых анимированных моделей
• Возможность создавать массовые сцены с сотнями и может быть даже тысячами персонажей
• Оптимизация рендеринга без потери качества анимации

Доказательство работы:
На приложенном скриншоте из профилировщика NSight видно:
🔴 Красные фигурки обозначают объекты, отрисованные за один вызов (draw call)
Инстансинг работает корректно и эффективно

Почему это прорыв:
В отличие от других движков, мы реализовали инстансинг для скининга без потери функциональности и качества анимации!

Теперь вы можете создавать масштабные сцены с большим количеством анимированных персонажей без потери производительности 🚀

#GameDev #SkinnedMesh #Инстансинг #Оптимизация #ThunderEngine
🔥7👍2
🔥Пошумим?

В редакторе материалов подвезли новые ноды!
🔥5
🎤 Итоги выступления на Developer Conference от #ITGorky

Вот и завершилась конференция в Нижнем Новгороде, где я представлял Thunder Engine — делился возможностями движка и собирал вашу обратную связь.

Признаюсь, не всё прошло идеально:
• Не все запланированные фичи успели попасть в демо-версию
• Саму презентацию можно было сделать динамичнее и нагляднее

Но, как говорится, не ошибается тот, кто ничего не делает. Главное — мы получили живую реакцию, ценные вопросы и поняли, куда двигаться дальше.

Огромное спасибо всем, кто подходил, задавал вопросы и делился идеями! Это бесценно. 💙

Ошибки учтены — работа продолжается! 🚀

#ThunderEngine #GameDev #ITGorky #Разработка
🔥5
🚀 Неделя критических исправлений и долгожданная фича!

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

Сегодня в мастер-ветку заезжает функция, которую вы так долго ждали:

📦 Поддержка массивов в AngelScript!

Массивы в играх используют аж с V века до нашей эры 😄 и сейчас без них никуда. Теперь вы можете:
• Объявлять массивы прямо в скриптах
• Редактировать их в окне Properties вместе с другими параметрами
• Использовать всю мощь структур данных в ваших проектах

Это ли не магия?

Обновление уже доступно — пробуйте, тестируйте и делитесь впечатлениями!

#ThunderEngine #AngelScript #GameDev #Разработка #Обновление
🔥4
🎉 Выпущен очередной релиз — последний в этом году!

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

Что вошло в релиз:
Множество исправлений — устранили ряд ошибок, мешавших комфортной работе
Несколько минорных фич — небольшие, но полезные улучшения
Значительный рефакторинг — продолжаем движение в сторону постепенного отказа от Qt в пользу более современных решений

Полный список изменений можно найти по ссылке

Этот релиз закладывает основу для больших изменений в следующем году. Спасибо, что остаётесь с нами! ❤️

Пробуйте, обновляйтесь и пишите о впечатлениях! Ваша обратная связь бесценна.

#ThunderEngine #Релиз #GameDev #Разработка #Год2024
👍4🎉2🔥1
🚀 Увлекательная неделя: замещаем Qt своими решениями!

Эта неделя прошла под знаком большого рефакторинга. Я занялся постепенным замещением Qt-классов на наши собственные реализации.

QProcess
Протестировал замену QProcess на нашу собственную реализацию. Этот класс отвечает за:
• Запуск дочерних процессов
• Работу с утилитой сборки проектов (Builder)
• Компиляцию нативного кода
Примечание: используется только в редакторе

Спасибо DeepSeek!
ИИ-ассистент значительно упростил написание кросс-платформенной части для управления процессами — одна из самых сложных задач в этом переходе.

Текущий статус:
QProcess успешно замещен в модуле WebTools
🔍 Тестируем стабильность и производительность
📝 Оцениваем возможность распространения подхода на другие зависимости

Это важный шаг к независимости от сторонних фреймворков!

#ThunderEngine #Qt #Refactoring #GameDev #Разработка
🔥4
🔄 Прокачиваем систему ресурсов: добавляем асинхронную загрузку!

Продолжаю улучшать систему ресурсов в Thunder Engine. Сегодня представляю важную новую фичу — асинхронную загрузку ресурсов!

Что это дает?

• Загрузка ресурсов без блокировки основного потока
• Отсутствие фризов при отрисовке сцены
• Плавный геймплей даже при подгрузке тяжелых ассетов

Как использовать?
Просто вызовите Engine::loadResourceAsync() — метод сразу создаст пустой ресурс и вернет управление, а загрузка пойдет в фоне.

Отслеживание статуса:
Через Resource::state() можно мониторить состояние ресурса. Доступно 6 статусов:

🟡 Loading — загрузка из файловой системы
🟠 ToBeUpdated — загружен в CPU, готовится к отправке на GPU
🟢 Ready — готов к использованию
🔵 Suspend — на этот ресурс больше нет ссылок и его можно удалить (автоматически)
🟣 Unloading — скоро будет выгружен (в этот момент рекомендуется отписаться от него)
🔴 ToBeDeleted — в процессе удаления. Объект станет недоступен сразу после нотификации

Теперь ваши игры будут работать еще плавнее! Попробуйте и делитесь впечатлениями 👍

#ThunderEngine #GameDev #Асинхронность #Ресурсы #Оптимизация
🔥4
Тут подумалось на ночь глядя! 🥱

Пока сил на создание обучающих видео по движку у меня нет.
А что если организовать просветительский стрим на часик, где я поотвечаю на любые вопросы? 📽
Будет ли вам это интересно? Скажем в субботу в 13 по МСК.
👍4
🎥 Приглашаю на просветительский стрим!

Друзья, в эту субботу в 13:00 по московскому времени жду всех на моём стриме!

Что будет:
Отвечу на ваши вопросы о Thunder Engine
Обсудим последние обновления и планы
Поговорим о геймдеве и разработке в целом

Где смотреть:
👉 https://live.vkvideo.ru/thunder_engine

Будет много интересного общения — подготовьте свои вопросы! Очень жду плодотворной дискуссии 😊

Добавьте напоминание и до встречи в субботу! 🚀

#ThunderEngine #Стрим #GameDev #РазработкаИгр
🔥4
🚀 Грандиозное обновление: исправления, рефакторинг и новый 3D-проект!

Привет, друзья! Хочу поделиться важными изменениями в Thunder Engine:

Исправления
За последнее время устранил огромное количество ошибок — движок стал значительно стабильнее и надежнее.

🔄 Обновление примеров

• Все примеры проектов обновлены для полной совместимости с последней версией движка
• Изменил подход к хранению: теперь каждый проект находится в отдельном репозитории
• Это упрощает индивидуальную работу с каждым демонстрационным проектом

🎮 Новый пример: Thunder Mine
Представляю первый тестовый 3D-проект в стиле Minecraft! Это демонстрация возможностей движка для работы с:

• Воксельной графикой
• Процедурной генерацией миров

Все примеры уже доступны для изучения и экспериментов. Жду ваших отзывов и впечатлений!

#ThunderEngine #GameDev #Обновление #ПримерыПроектов #Minecraft
🔥5🤩3
Media is too big
VIEW IN TELEGRAM
Провел первую сессию ответов на вопросы по Thunder Engine
🔥5👍32
🎉 Новая фича в пути: компрессия текстур!

Друзья, отличные новости! В Thunder Engine появилась долгожданная функция — компрессия текстур на этапе импорта.

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

📊 Экономия памяти в цифрах:

Без компрессии (формат RGBA8):
- Текстура 4K (4096×4096): ~67 МБ
- Текстура 2K (2048×2048): ~16.8 МБ
- Текстура 1K (1024×1024): ~4.2 МБ

С компрессией (BC7/DXT5):
- Текстура 4K (4096×4096): ~8.4 МБ (экономия 85%!)
- Текстура 2K (2048×2048): ~2.1 МБ
- Текстура 1K (1024×1024): ~0.5 МБ

⚡️ Что это дает:
- Уменьшение использования видеопамяти в 4-8 раз
- Более быстрая загрузка текстур
- Улучшение производительности рендеринга
- Возможность использовать текстуры высокого разрешения

Фича уже доступна для тестирования на девелоперских билдах! Попробуйте и делитесь впечатлениями в комментариях 👇

#ThunderEngine #GameDev #Оптимизация #Графика #КомпрессияТекстур
🔥7
Хоть вы меня и не спрашивали, но я вам таки имею, что сказать!

Вы когда-нибудь задумывались как отдыхают разработчики движков?
Мы делаем рефакторинг!
- Медитативное, расслабляющее занятие, по перекладыванию кода из одной функции в другую.
- Уменьшение дублирование кода.
- И поиск новых багов после этих манипуляций!

Выходные проходят грандиозно!
🔥71😁1
💻 Тишина — знак напряжённой работы!

Давно не писал в канал, но это не значит, что ничего не происходит. Как раз наоборот — кипит работа над важным изменением: полным переходом с QBS на нашу собственную систему сборки.

Что уже готово:

- Генератор проектов
- Билдер для Windows и Android

🍎 На чём сейчас сосредоточен:

- Генератор проектов для Xcode

И вот тут начинается настоящая головоломка. Каждая IDE имеет свой уникальный формат проектов, и подружить их — та ещё задача.

Xcode, пожалуй, самый «потный» из всех. Экосистема Apple — это просто кладезь нюансов, и каждый из них нужно аккуратно учесть.

Работа кропотливая, но результат того стоит: полная независимость и гибкость!

Следите за обновлениями — скоро будет много интересного! 🚀

#ThunderEngine #Сборка #Xcode #Разработка #QBS
🔥521
Немного Metal'a вам в ленту.

Оказалось, что моя Metal прослойка для рендера еще не очень готова к полноценному использованию в игровых приложениях.
Она вполне себе работает в редакторе. Но для работы в составе собранной игры, нужно сделать еще несколько масштабных исправлений.
Из приятного, билдер для XCode готов на 80%

#ThunderEngine #Сборка #Xcode
🔥5