Aroch
Если физический движок не cможет вытянуть, то я темболее не cмогу. Вот... :(((
Mirrel
> Перемещение N-объектов из одного листа в другой, занимает время.
ты явно делаешь что-то не так если у тебя оно занимает что аж до задержек. Там изменяемых данных то на килобайты в худшем случае, это совсем мизер.
lookid
> Если физический движок не cможет вытянуть, то я темболее не cмогу. Вот... :(((
так ты дизайнер или программист? :) Грамотный дизайн вообще не про "больше и еще больше".
Aroch, не всегда. Всё зависит от реализации, если использовать реализацию, предложенную Super_inoy, то есть именно большая вероятность того, что задержка будет.
По простой причине, что мы делает лист с кучей малых объектов, не объединяя их (если объединяем, зачем лист делать?) и переносим из одного листа данные в другой. В момент, когда за стенкой оказывается множество мелких объектов и перед стенкой так же тонны объектов, то перекидывание всей этой массы объектов, будет равноценно перелопачиванию всех объектов из одного места в другое.
На начальном этапе, мы этого можем не заметить, но как только объектов становится несколько миллионов (миллиардов?) то и переноска данных занимает достаточное количество времени. Как бы мы не старались, сколько бы у нас не было процессоров, мы можем тупо забить все ресурсы на перекидывание данных.
Подумаешь прибавим ещё пару миллионов (миллиардов) объектов. Комп схавает. Он ведь всемогуч.
Mirrel
> то перекидывание всей этой массы объектов, будет равноценно перелопачиванию
> всех объектов из одного места в другое.
нет, достаточно мувнуть их предков. Если же у тебя рандомы из ящика туда сюда бегают, то всё равно не проблема. Потому как даже миллион указателей это всего лишь 4мб.
Aroch
> Потому как даже миллион указателей это всего лишь 4мб.
ты в жизни видел абсолютно одинаковые объекты? Мы говорим о разных вещах. )))
Я прекрасно знаю, что достаточно оптимизировать в нужном направлении. Где-то через предков всё делать, где ещё какими методами, но в любом случае, при перемещении отдельного объекта, на это тратится время.
Я ведь писал, что миллионом всё не ограничится. И это будет не просто перемещение, а уже достаточная логика, где надо будет выбирать из объектов, какие перемещать, а какие нет. А эту логику, ты не переместишь просто так, и через предков.
Выбор надо делать практически в любом случае.
Mirrel
> ты в жизни видел абсолютно одинаковые объекты? Мы говорим о разных вещах. )))
тебе не нужно копировать все кишки объекта. Граф он на то и граф, что это всего лишь упорядоченный набор связей и твоя задача лишь перестроить связи.
Mirrel
> Но давайте смотреть реально на вещи. Перемещение N-объектов из одного листа в
> другой, занимает время.
2 указателя надо поменять(где-то в основном списке на первый элемент этого и в конец этого
на продолжение основного, можно и 1-м обойтись если в конец пихать), если список не просто
неактивных объектов, а неактивных объектов срабатывающих по триггеру и прилеплен к триггеру.
Super_inoy, где ты в жизни видел абсолютно одинаковые объекты? Или ты всегда используешь два списка? Ну тоды звиняй, я не знал...
Mirrel
> где ты в жизни видел абсолютно одинаковые объекты?
А какая собственно разница одинаковые они или нет? Я тебе про то что
чтобы что-то вставить в связный список не надо по нему проходиться целиком,
а ты мне про какую-то фигню с одинаковостью.
Список это не массив если что.
Super_inoy, разница в том, что их надо в разные списки вносить. Или ты объекты ни как делить не будешь по категориям?
Как ты будешь отличать болт лежащий в ящике, от болта который у тебя под носом?
Как лампочку над головой будешь отличать от ящика в соседней комнате?
Как муху жужащую за твоей спиной, будешь отличать от стекла в пяти кварталах от твоего местонахождения?
Создай пожалуйста простой граф, который быстро всё опишет. Один город, в городе 7-15 тыс домов, из которых "одинаковых" процентов 20. В каждом доме от одной квартиры до 200+. В каждой квартире живёт от нуля до 10 человек. Квартиры могут быть от одной комнаты до семи. В каждой комнате лежит от 20 вещей до 7000-10000.
Животные, растения, насекомые. Погодные условия.Бумажки, окурки, грязь, дороги, камни, земля (разная!), песок и многое другое.
Ведь это всё достаточно просто. Просто щёлкнул пальцем, и все графы встали на свои места. Ни чего же высчитывать не нужно.
Mirrel
> разница в том, что их надо в разные списки вносить.
Что за бред. Список на отрисовку. Активные объекты одно,
а не активный список в данном случае вообще вешается к ящику.
Если ты хочешь универсальное простое решение - окто дерево тебе нужно,
оно по сути решит ту же задачу, просто не всегда эффективно, зато универсально.
Mirrel
> Ни чего же высчитывать не нужно.
Нужно, 1 раз и закэшировать. Варианты куда есть, для конкретной задачи я тебе сказал как сделать,
для универсальной сцены сказал тут.
Super_inoy
> Нужно, 1 раз и закэшировать.
Я так понимаю, ты мне про изображения пишешь? Я в самом начале от изображений ушёл.
Я пишу про работу приложения с объектами, а не само отображение объектов.
Прочитав что такое граф (прикинь, я даже не вникал что это такое), понял, что там просто более точная формулировка идёт моих слов.
Я не про сами изображения! Я про обработку объектов веду речь! И чем больше разных объектов, тем больше нагрузка. От этого ты ни куда не уйдёшь. А при попытке всё под одну гребёнку свести, ты получишь просто тонну однородных объектов. И твоё приложение/игра быстро надоест пользователям/игрокам.
Mirrel
> От этого ты ни куда не уйдёшь.
если что, 90% игр считает ИИ противников только в некотором радиусе вокруг игрока.
Mirrel
> Я так понимаю, ты мне про изображения пишешь? Я в самом начале от изображений
> ушёл.
> Я пишу про работу приложения с объектами, а не само отображение объектов.
Да я про рендер, но ты не поверишь, но... у тебя может быть несколько разных структур для разных оптимизаций
содержащих ссылки на одни и те же объекты. Например для ИИ ты можешь отбрасывать все что дальше 150 метров,
а для рендера по октодереву.
Mirrel
> Прочитав что такое граф (прикинь, я даже не вникал что это такое), понял, что
> там просто более точная формулировка идёт моих слов.
Ну ты не правильно понял, потому что граф это абстракция, абстракция не может быть более точной.
А тебе следовало бы написать "граф сцены" хотя бы.
Super_inoy
> А тебе следовало бы написать "граф сцены" хотя бы.
ты понял про что речь, этого не достаточно?
> Наивный ты, во первых - большую часть можно убрать(деспавнить) и заспавнить
> потом, притом проверяя не каждый кадр
при скорости объекта 200км/ч... ))) Подумаешь объект появится когда уже пролетел половину расстояния... (утрирую)
Mirrel
> ты понял про что речь, этого не достаточно?
Нет не понял, пока на ссылку не нажал. Граф сцены все же прикладная часть,
а теория графов это вполне себе абстрактная теория, которую стоит изучить тебе.