Суббота, 04 Мая 2024, 12:58

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Общие обсуждения программистов » Архитектура игрового движка
Архитектура игрового движка
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 а дальше просто пишешь другие функции и взаимодействие с движком и все, но такое взаимодействие хорошо убивает производительность, так что лучше использовать скрипты с умом, а не везде где только можно.

Да я, кажется, уже понял как скрипты прикрутить smile

Добавлено (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 smile
Форум игроделов » Программирование » Общие обсуждения программистов » Архитектура игрового движка
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг