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

Движки, посторенные по модели Entity/Components (2 стр)

Страницы: 1 2 3 Следующая »
#15
14:14, 21 мар 2011

IROV..
Может быть проблема того, что я не разобрался в том что у тебя нет документации где бы это описывалось? Ну то есть я с ходу не нашёл класса-контейнера например. Если можешь - дай прямые ссылки на репо.

#16
16:36, 21 мар 2011

GLoom, слава богу что меня в гугле не забанили :),
Сайт: http://mm-werkstatt.informatik.uni-augsburg.de/projects/GameEngin… oku.php/start
Репа: http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/tru… s/GameEngine/

#17
16:41, 21 мар 2011

Igor'
Аааа! Спутал тебя и IROV.. :) Эти ссылки я уже посмотрел, да :)

#18
19:57, 21 мар 2011

GLoom

Вот свн

вот Node

#19
21:49, 21 мар 2011

"Компонентами" являются дочерние ноды?

#20
13:59, 22 мар 2011

GLoom
да

#21
19:33, 22 мар 2011

Давно хотел реализовать подобную архитектуру, но то ли у меня недостаточно было разнокалибренных объектов, то ли я не совсем въехал.
Кто в теме - интересно, как вы опишите компонентной системой, к примеру, управляемый 3д вертолёт с физикой?
есть, допустим, корпус, два винта с разными назначениями, колёсики, фигня для поворачивания.
что здесь будет ентити, что компонент? какие компоненты будут в ентитях? как будет происходить передача месседжей по всей этой структуре, начиная от веления юзера включить/выключить двигатель и менять разные тяги? я вроде понимаю, но интересно, как другие себе это представляют. вдруг я в корне неправ.

#22
19:55, 22 мар 2011

Mr F
Обычно всё наоборот - есть движок и надо туда "вписать" необходимую модель :)

В Unity например есть только один слот для графики и один слот для физики. Соотвественно помещаем физический объект с сеткой для столкновений в физику, графический - в графику. Детально с юнити не сидел - не знаю как там дальше будет.

По общей идее - прикладываем пару сил к физике в места крепления лопастей. Лопасти анимируем кастомно скорее всего, вращая нужными костями в моделе вертолёта. То есть кастомный аниматор (обычно по имени) ссылается на детали реализации физики и графики, что, в некоторой степени, нарушает инкапсуляцию - но кого это волнует если работает? Что касается тяг - это всё в голове пользователя и в кастомном аниматоре, реально физика скорее всего упрощённая. Мне вертолёты никогда не приходилось делать, плохо разбираюсь в сути.

Вот IMHO как-то так.

То есть по сути мы режем объект по подсистемам. Например есть у нас подсистема отрисовки - её представительство в сущности делается графическим компонентом, который заточен под работу с именно этой отрисовкой. Переходя из 3D к спрайтам в изометрии нам надо будет поменять рисовальщик и компоненты. Физический компонент дружит с физикой. AI и аниматор дружит с игровым циклом. И т.п. Таким образом в Unity получаются следующие штуки:

transform  - положение и поворот
rigidbody
camera - камера
light - лампочка
animation  - анимация
constantForce 
renderer - визуализация
audio - источник звука
guiText - гуишный текст
networkView - сетевое представление
guiTexture
collider 
hingeJoint
particleEmitter - частицы

Соостветсвено режем вертолёт на подходящие компоненты и вперёд.

#23
19:56, 22 мар 2011

Лучшее описание я пока видел в Game Programming Gems 6: "Game Object Component System", кстати.

#24
20:02, 22 мар 2011

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

#25
20:03, 22 мар 2011

У меня в Normal-tanks 2 - все танки, враги, создаются из компонентов. Все компоненты имеют один класс. Отличаются только обрабатывающим скриптом.

Берем голову от человека, крепим на танк, получаем голову торчащую из люка танка. При смерти танка каска отлетит в кусты.
Берем башню от танка, крепим к человеку, получаем человека с башней, которая стреляет по врагам. Очень удобно : )

#26
0:50, 23 мар 2011

>>Берем башню от танка, крепим к человеку, получаем человека с башней, которая стреляет по врагам. Очень удобно : )

XD Жесть

#27
10:30, 23 мар 2011

Megabyte-Ceercop
> Берем голову от человека, крепим на танк, получаем голову торчащую из люка
> танка. При смерти танка каска отлетит в кусты.
> Берем башню от танка, крепим к человеку, получаем человека с башней, которая
> стреляет по врагам. Очень удобно : )

Ах значит вот как появились девочка-пулемет и Эдвард руки ножницы :)

#28
15:24, 23 мар 2011

Почему ещё никто не запостил это:

http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/
http://scottbilas.com/games/dungeon-siege/

Есть вопросы в деталях по части реализации чего-то подобного, если кто хочет пообсуждать, могу повбрасывать, проблемы, возникшие у меня.

#29
15:45, 23 мар 2011

Dreamcatcher
См. ссылку в моём первом посте - там ещё аналогичные ссылки собраны. Тут я спрашивал про документацию или исходники доступных движков.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.