Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Применение иерархии объектов в играх. (Комментарии к статье)

Применение иерархии объектов в играх. (Комментарии к статье)

Страницы: 1 2 3 Следующая »
robotПостоялецwww23 ноя. 20051:03#0
Dan_QuimbyНовичокwww23 ноя. 20051:03#1
а если у меня не машинка с калесиками а предположим массив 100х100 и там есть и камни каторые валяться и обьекты агресивные каторые рыскают по доступному
пространству ... ну и соотвтественно наш перс .. как в таком случае мне производить цикл и проверку на столкновение ... :( а простой 2 мерный масив не выход ... но не хочеться ..
есть ли выход ??
CyberZXПостоялецwww23 ноя. 20054:23#2
Тема интересная, но раскрыта не полно. дано по сути лишь описание паттерна Composite. Этого конечно же недостаточно. Как передавать сообщения по иерархии классов(не объектов)? нужно ли хранить в одном дереве и логическую и физическую и другие струкутуры? если их разделять, то как синхронизировать? почему именно дерево, а не другой вид графов? ну и т.д. и т.п.
TailerПостоялецwww29 окт. 200817:36#3
Вообще тема scene - graph-ов в интернете освещена мало ( с точки зрения реализации) , следует лишь обратить внимание на то, что нам нужно чтобы быстрее всего выполнялся проход по дереву, поиск эл-та нам особенно не важен, а вот обновление узла и его потомков - это чтоб работало быстро.
Надо бы почитать про реализации АТД типа Дерево :)
ИМХО все упирается в организацию именно этой структуры. Думаю, что неплохим вариантом было бы ограничить число сыновей у одного узла, при этом можно (если число обьектов в игре известно или меняется незначительно) воспользоваться так называемым развернутым представлением дерева. Это означает что память под узлы выделяется сразу на все, независимо от того есть узел или нет.
CrazyLenaПостоялецwww16 янв. 200915:24#4
Тема не раскрыта, то что тут есть следует назвать "реализация одного конректного дерева, для одной конкретной игры".
Кроме того автор почему-то отждествляет понятия "иерархия" и "наследование", что в общем случае неверно.
neowirtПользовательwww23 окт. 200914:21#5
Как получить указатель на объект дерева, (ищу перебором по ID, указанному при инициализации)? При обходе листа дочерних объектов возвращается указатель на базовый класс, а нужен его потомок со своими специфическими свойствами...
PushkoffУдалёнwww23 окт. 200917:44#6
используй  dynamic_cast<>()...
bretbasПостоялецwww27 мая 201623:45#7
Рендеринг и апдейт объекта не должен реализовываться самим объектом. Этим должен заниматься кто нибудь другой. И вообще иерархия объектов эта тема обширная и она не существует отдельно от определённой архитектуры движка. Я сам искал по этой теме инфу, и не мог найти. Поэтому пришлось самому догонять
DelfigamerПостоялецwww28 мая 20160:44#8
Тема подсистем не раскрыта.
EugeneУчастникwww28 мая 20168:12#9
ЛОПАТА
HplusDieseПостоялецwww28 мая 20169:13#10
Не лучший выбор. Куча виртуальных функций и много ООП. Прощай кэш.
Стоит блог движка bitsquid почитать.
gammakerПостоялецwww28 мая 201611:35#11
Я как раз с такого начинал делать свой движок.

HplusDiese
> Стоит блог движка bitsquid почитать.
И ещё molecular-matters.

MrShoorУчастникwww28 мая 201611:39#12
-Eugene-
> ЛОПАТА
Комментарии к статье - я бы не называл лопатой.
EugeneУчастникwww28 мая 201621:04#13
MrShoor
Странно ожидать современных решений от статьи, написанной в доисторические времена.
DelfigamerПостоялецwww28 мая 201621:43#14
-Eugene-
> Странно ожидать современных решений от статьи, написанной в доисторические
> времена.
Но в доисторические времена как раз и следовало избегать виртуальных вызовов. Это сейчас в L2 можно пол-программы уместить (вторая половина обрабатывает случай, когда на клавиатуру садится кошка, а на Марсе - шторм); а тогда на них можно было действительно что-то потерять.
bretbas
> апдейт объекта не должен реализовываться самим объектом
А вот это, кстати, наркомания. Код обновления должен находиться рядом с тем, что он обновляет.
Страницы: 1 2 3 Следующая »

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

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

2001—2018 © GameDev.ru — Разработка игр