𝐑𝐨𝐨𝐭𝐓𝐨𝐨𝐥 𝐁𝐥𝐨𝐠
194 subscribers
570 photos
48 videos
5 files
60 links
ニャン
Download Telegram
𝐑𝐨𝐨𝐭𝐓𝐨𝐨𝐥 𝐁𝐥𝐨𝐠
Чтобы блог не пустовал, решил с вами начать разработку движка. Шутка. Я точно не знаю какая точка с запятой застряла во мне, но решил начать писать собственный движок на С++ Да не просто движок, а с особой системой представления классов - смесь унаследованной…
Я говорил, что реализую создание систем без унаследования? Я сделал

Системы помечаются как RCLASS(System)

А затем на стадии компиляции регистрируются в движке (с небольшим хаком компилятора, а кому сейчас жить легко? хвхвхвх)

Я обещал - я сделал

Да, конечно сегодня планы были написать World и настроить камеру (чтобы камера хранила лишь основные данные, а дальше все камеры прогонялись через Render Pipeline, считайте система-компонент)

Но потерпел, завтра еще допишу регистрацию компонентов и.... Бинго! ГКМ будет написана и тогда можно будет реализовать все оставшиеся вещи

Напишу RObject - стандартный объект движка, RWorldObject - объект, который будет спавниться в мире (может еще подумаю над названием)

А позиции, физика, коллизия, рендер модели и камеры? Все будет компонентно и обрабатываться системами. От чего тот же RWorldObject может просто лежать в мире, или же иметь позицию

В общем ладно, день был необычным, всем спокойной ночи
👍5⚡1🤝1
Есть хочу...


То есть о чем я? Первый прототип ГКМ сделан и уже реализованы первые вещи. Знакомьтесь - FTransformComponent и FCameraComponent

К FCameraComponent создана система FCameraSystem, которая получает список камер, рассчитывает матрицу и передает их в общий Render Pipeline

Да, как-то так они реализуются, через RCLASS(System, Requires=...) и RCLASS(Component), а самое главное - все работает по ссылка, обновляется в реальном времени и не требует базовых классов. ООП идет нафиг одним словом :)

А вообще - не спрашивайте у женщин - их возраст, у мужчин - их ЗП, а Романова - как он реализовал чертовую регистрацию компонентов в движок!

Главное что работает :)

А так по мелочам - сделал RLevel - "контейнер" для миров, RWorld - мир, который хранит в себе RSceneObject, и от него унаследовал AActor - объект с вшитой в него компонентом трансформацией

Также думаю оставить возможность прикреплять компоненты в RObject, или перенести в RSceneObject, что думаете?
❤5⚡1❤‍🔥1
programming war crimes
❤‍🔥2👍1🤩1🕊1
Спустя год без личной жизни на плюсах поры бы изучить что-то новенькое. Поэтому нашел интересный гайд по UK2Node

Вообще:
UK2Node = Kismet 2 - Старая библиотека для визуального скриптинга в Unreal Engine (Начиная еще с UE3/UE4)

Хоть вы и можете сказать, что мол "воспользуйся UFUNCTION(BlueprintCallable)". И вы будете правы, но от части. UFUNCTION - крайне примитивен и ограничен в своем функционале, да так еще вы не сможете создавать свои кастомные Exec-пины (Это те белые исполнительные пины, и да, я пытался...)


Как-то так, ссылочка: тык
❤3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Неожиданный дроп, месяц работы и встречайте - A Cold Love Story Remaster (V1.1)

Да-да, хоть кто-то спустя 10 лет взялся за игру Лиама Викерса (Серьезно, он выпустил ее в 2015-м)

Чем можем порадовать?
- Подчистка от лишних файлов - залог оптимизации (Вес уменьшился с 2.5 ГБ до 2 ГБ)
- Обновленный UI (Спасибо At0m'у за дизайн)
- Исправленный перевод (Спасибо Ponder_Static'у за корректировку)

Обожаю эту яндерскую новеллу хвххвв

Ссылочка: тык
(Windows/Android)
❤4🔥2🤩2
+1 папка Input в RootEngine/Source/Core

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

Самое запарное наверное было с Callback'ами. Особенно когда из-за них весь движок падал хвхвхвхв

(И да все регистрируется через системы. Мой движок - мои правила)
❤2🔥1
Прапрадедушка Blueprints...?

Именно, Kismet - старейшая, как вселенная, система визуального скриптинга в Unreal Engine!

Зародилась она еще в UE3 и имела.... слегка сомнительный интерфейс, но работала же! Да, там не было ни переменных. ни классов, НИЧЕГО! Лишь простая логика для дизайнеров по типу "Включи лампочку, открой дверь по триггеру"

Да блин, у них было всего-то около 100-150 нод! (В 4.0 - 300-500 нод, под конец в 4.27 более 1500, а в 5-ке так вообще перевалило за 3000 и продолжает расти :D)

И дизайн, по нашим меркам как любителям темной темы - вырви глаз (Ага, а мы еще жалуемся что в 4-ке кнопочки слишком яркие, чем в 5-ке...)


И минутка истории с нашего любимого (нет) бекенда:
- Как говорилось ранее, Kismet 1 была первой системой визуального скриптинга
- В UE4 Kismet обновили и дали название Kismet 2, а затем она внешне переименовалась в... Blueprints! Да, те самые наши любимые Блюпринты
- В файлах Анрила еще сохранилось устоявшееся название как UK2Node, что можно расшифровать как Unreal Kismet 2 Node, или еще пример: UKismetMathLibrary - так скажем, общая библиотека с математикой и логикой для Блюпринтов, и С++
- А еще Kismet 1 был капец как жестко привязан к уровню, не то что наши Блюпринты сейчас - сиди, таскай, переименовывай - вообще по барабану


В целом я рассказал это не чтобы посмеяться над UE3, это... Лишь пример того, как выглядело начало у великих историй
Кто бы мог подумать в 2010-м, что эта слегка убитая система, похожая на странный конструктор для дизайнеров (Scratch нервно курит), однажды станет лицом Анрила, что снизит планку входа в геймдев по всему миру?


Так что если вдруг Ваши первые шаги выглядят странно, запутанно и местами убито, не отчаивайтесь:
Возможно, это Ваш первый шаг к чему-то великому. Даже великое когда-то выглядело как костыль :)
🔥4❤1⚡1😍1
Нормально я так поспал

Чисто зашел и вышел из сна
🔥6🫡2🕊1👻1
Это проверочный пост на спам ботов
Чат уже разблокирован, но возможно временно
🎉5❤1