Войти
ПрограммированиеФорумОбщее

rg3d - движок на Rust'e (10 стр)

Страницы: 15 6 7 8 9 10
#135
17:24, 18 июля 2020

Vlad2001_MFS
Граф сцены на мой взгляд это базовая часть любого движка (хотя в движке Baldur's Gate 3 графа сцены нет, лол). Честно говоря с ECS я знаком достаточно поверхностно, а когда начинал делать движок так и вовсе только слышал что-то про ECS. Вообще мой движок более "классический" что ли, есть объекты с жестко заданной структурой и при помощи них можно создавать что-то свое, более сложное.

Насчет сложностей с borrow checker'ом - тут я со временем выработал достаточно простой подход: изменения данных делаются сверху вниз, в этом случае с borrow checker'ом проблем не возникает. Если же нужно сделать что-то сложное с привлечением систем которые недоступны в данном контексте, то я использую каналы и сообщения. Простой пример: игрок нажимает кнопку стрельбы, в это случае нужно сделать довольно много действий:
1) Создать пулю (загрузить модельку, разместить на уровне)
2) Проиграть звук
3) Создать эффект выстрела
4) Уменьшить количество патронов у оружия
5) и т.д.
Очевидно что в этом случае ты не сможешь сделать все эти действия из обработчика событий кнопки. В этом случае достаточно создать сообщение CreateBullet { params } и послать его игре. Игра же будет разгребать сообщения каждый кадр и выполнять все требуемые действия, так как у нее имеется доступ ко всем подсистемам и изменения будут происходить сверху вниз.


#136
17:37, 18 июля 2020

mr.DIMAS
> Очевидно что в этом случае ты не сможешь сделать все эти действия из
> обработчика событий кнопки. В этом случае достаточно создать сообщение
> CreateBullet { params } и послать его игре.
Да, мне уже другой человек с форума говорил присмотреться к использованию сообщений для связи систем. Только для меня это сильно новая вещь, на плюсах такого не делал никогда. Надо обдумывать.
У себя хочу попробовать сделать ECS все-таки, ибо с графом сцены мне придется помучаться на Расте вероятно.

А вообще все исходники rg3d я себе выкачал, и хожу в них смотреть как всякое сделано, буду учиться заново, так как шаблоны мышления и архитектуры из C++ тут просто не работают.

#137
21:30, 15 сен. 2020

Продолжаю делать редактор и параллельно с ним UI либу. Редактор уже способен создавать сцены для rusty-shooter'a, однако все еще не хватает некоторых фич для удобства. К тому же еще нужен полноценный редактор систем частиц и графов анимаций.
Изображение

#138
21:36, 15 сен. 2020

Круто! Надо будет посмотреть твою UI либу. Кстати, а почему не imgui?

#139
21:51, 15 сен. 2020

Vlad2001_MFS
> Надо будет посмотреть твою UI либу.
Тут есть нюансы: отсутствие самодостаточных примеров (есть rusty-editor и rusty-shooter но они очень большие) и документации плюс подход с сообщениями может быть немного непривычным, особенно если привык к callback'ам. Я все пытаюсь найти силы написать доки, но меня останавливает то что некоторые места еще не полностью устаканились и постоянно меняются. Все из-за того что не совсем понятно что нужно делать и как до тех пор пока это не понадобится в "продакшене". Редактор кстати позволяет отсеивать неверные подходы и двигаться дальше.

Vlad2001_MFS
> Кстати, а почему не imgui?
Интересно было сделать свою, тем более у меня есть опыт написания гуя на разных фреймворках и знаний о внутреннем устройстве достаточно для создания нечто подобного.

#140
21:59, 15 сен. 2020

mr.DIMAS
> отсутствие самодостаточных примеров (есть rusty-editor и rusty-shooter но они
> очень большие) и документации
Это не страшно. Я привык лазить по большим кодобазам и без документации почти их изучать. Так что погляжу как-нибудь.

#141
11:57, 16 сен. 2020

mr.DIMAS
> Продолжаю делать редактор и параллельно с ним UI либу.

толстые элементы. много пространства сэкономишь, если сделаешь их тоньше

#142
12:23, 16 сен. 2020

mr.DIMAS
> Продолжаю делать редактор
выложи в собранном виде где-нибудь.

#143
11:25, 19 сен. 2020
выложи в собранном виде где-нибудь.

Для Windows 7 64 bit и 32 bit экзешники.
#144
3:02, 22 сен. 2020

Прекращай заниматься ерундой и возьми готовый игровой движок

#145
7:20, 22 сен. 2020
IBets
> Прекращай заниматься ерундой и возьми готовый игровой движок
Как же mr.DIMAS раньше жил без твоего чуткого совета?
#146
8:23, 22 сен. 2020

IBets

Тогда Baldurs Gate 3 придется еще 100 лет ждать.

Страницы: 15 6 7 8 9 10
ПрограммированиеФорумОбщее