Архитектура игрового движка
| |
Saitei | Дата: Пятница, 06 Февраля 2015, 22:17 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Давайте делиться соображениями? (велосипедистам привет! =) ) Лично меня больше всего интересует архитектура графического движка и взаимосвязь между движками. Так же есть два вопроса: частью чего являются деревья BSP\Octree\Quadtree? (пока что пришел к мысли, что они должны быть частью CoreEngine) Частью чего считается камера? Камера же, вроде как, тоже по дереву бродит, но в тоже время она нужна как и рендеру, так и логическому движку...
и может кто-нибудь поделиться опытом прикручивания скриптов? Опыта прикручивания к реальным движкам, а не из разряда "напечатать Hello World"
Сообщение отредактировал Saitei - Пятница, 06 Февраля 2015, 22:17 |
|
| |
Xakep | Дата: Пятница, 06 Февраля 2015, 22:36 | Сообщение # 2 |
めちゃくちゃちゃ
Сейчас нет на сайте
| Цитата Saitei ( ) Частью чего считается камера? Камера же, вроде как, тоже по дереву бродит, но в тоже время она нужна как и рендеру, так и логическому движку... у меня камера - это графический двиг, нужно разделять графику и данные. Зачем камере бродить по дереву? в основном статика на BSP генерится, чтобы быстрее физику просчитывать и колизии с динамическими объектами, а постоянно перестраивать дерево как-то затратно для динамических объектов. Хотя наверное эти объекты в какое-то другое дерево пихают, чтобы быстрее все это было, либо статику разбивать не на одно дерево а на несколько и динамику тоже разбивать на несколько деревьев, потому-что разрастаются деревься то ) А потом эти деревья так же возможно пихать как листья к другим деревьям, чтобы поиск был быстрее по всем составляющим, ведь если игра отрисовывает много полигонов, просчитывает физику, коллизии отдельно, какие-то навороченные постэффекты да и еще какая-то логика, то простыми решениями не отделаешься. Вообще очень много подобных нюансов, чтобы все работало быстро, нужно много экспериментировать и читать специализированной литературы, все самому догнать не получится, да и бесмысленно, луче почитай книжки или спец литературу в интернете полно такой.
Цитата Saitei ( ) и может кто-нибудь поделиться опытом прикручивания скриптов? Опыта прикручивания к реальным движкам, а не из разряда "напечатать Hello World" не вижу ни какой сложности, я прикручивал Lua давным давно, как раз самая большая сложность заставить выполнить Hello world а дальше просто пишешь другие функции и взаимодействие с движком и все, но такое взаимодействие хорошо убивает производительность, так что лучше использовать скрипты с умом, а не везде где только можно.
|
|
| |
Saitei | Дата: Пятница, 06 Февраля 2015, 23:09 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| Цитата Xakep ( ) у меня камера - это графический двиг, нужно разделять графику и данные. Зачем камере бродить по дереву? в основном статика на BSP генерится, чтобы быстрее физику просчитывать и колизии с динамическими объектами, а постоянно перестраивать дерево как-то затратно для динамических объектов. Хотя наверное эти объекты в какое-то другое дерево пихают, чтобы быстрее все это было, либо статику разбивать не на одно дерево а на несколько и динамику тоже разбивать на несколько деревьев, потому-что разрастаются деревься то ) А потом эти деревья так же возможно пихать как листья к другим деревьям, чтобы поиск был быстрее по всем составляющим, ведь если игра отрисовывает много полигонов, просчитывает физику, коллизии отдельно, какие-то навороченные постэффекты да и еще какая-то логика, то простыми решениями не отделаешься. Вообще очень много подобных нюансов, чтобы все работало быстро, нужно много экспериментировать и читать специализированной литературы, все самому догнать не получится, да и бесмысленно, луче почитай книжки или спец литературу в интернете полно такой. Камера - это графический движок?! О_о А дерево в любом случае будет перестраиваться. Дерево нужно для просчета колизий. И именно с помощью него прямо на CPU можно определить какие объекты надо отрисовать... Перестройка дерева не так дорога, если её делать с умом =) Цитата Xakep ( ) не вижу ни какой сложности, я прикручивал Lua давным давно, как раз самая большая сложность заставить выполнить Hello world а дальше просто пишешь другие функции и взаимодействие с движком и все, но такое взаимодействие хорошо убивает производительность, так что лучше использовать скрипты с умом, а не везде где только можно. Да я, кажется, уже понял как скрипты прикрутить Добавлено (06 февраля 2015, 23:09) --------------------------------------------- Xakep, а как игровая логика и физика друг с другом контачат?
|
|
| |
Xakep | Дата: Пятница, 06 Февраля 2015, 23:40 | Сообщение # 4 |
めちゃくちゃちゃ
Сейчас нет на сайте
| Цитата Saitei ( ) Камера - это графический движок?! О_о Камера задает нужные матрицы преобразования для нормальной отрисовки всех объектов - это Projection Matrix и View Matrix самой камеры, которые перемножаются и потом уже объекты используют эту матрицу для перемножения на свою модельную матрицу, чтобы все правильно отображалось и обычно все это в шейдере делается. Лично я в графический запихал, тут дело твое.
Цитата Saitei ( ) Xakep, а как игровая логика и физика друг с другом контачат? в смысле? как тебе нужно в игре так и контачат, может нужно чтобы если объект ударил с определенной силой, то нужно разбить какой-то объект, это уже и игровая логика и физика, вообще общее ядро должно иметь возможность работать со всеми модулями.
|
|
| |
beril | Дата: Среда, 20 Мая 2015, 20:02 | Сообщение # 5 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Понимаю, что уже поздно, но случайно набрел на эту книгу Game Engine Architecture
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
TLT | Дата: Среда, 20 Мая 2015, 20:52 | Сообщение # 6 |
Сейчас нет на сайте
| Разработчик движка C4 Engine также продает схему на Amazon. Это движок от Terathon Software для PS4, PS3, Windows, Mac, Linux и iOS.
Дао, выраженное словами, не есть истинное Дао.
|
|
| |
Saitei | Дата: Суббота, 23 Мая 2015, 14:15 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| TLT, спасибо за наводку! Сижу разбираюсь с OpenDDL && OpenGEX
|
|
| |
|