SkepticalFox 1,445 #438530 Posted August 21, 2018 2 minutes ago, RUS_TAHK said: он не 2д игра) и как в варкрафт играть по вертикали? 1 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #438531 Posted August 21, 2018 Только что, RUS_TAHK сказал: Я говорю про ботов для ПВЕ режима, а не для ПВП-онлайн. Ну если это локальная песочница и бот владеет 100% объёмом информации в любой момент времени, то можно не сильно утруждаясь реализовать элементы простой логики. Как например, те же боты в CS1.5 были. Может в таком варианте что-то и выйдет. Вышел в песочницу, а там 15 штук таких утюгов карту патрулируют и агрятся на тебя, когда ты в зоне их стрельбы. Но это всё "дни минувшего будущего", так как самое главное, это механика игры. Она сначала должна быть воссоздана и спрограммирована, а потом еще реализована и отлажена. А это гЫгантская работа. Quote Share this post Link to post Short link Share on other sites
RUS_TAHK 3 #438532 Posted August 21, 2018 @SkepticalFox качаешь варкрафт 3, и играешь в игру с со старенькой 3д графикой)) только вначале научись по видеороликам Только что, StranikS_Scan сказал: Ну если это локальная песочница и бот владеет 100% объёмом информации в любой момент времени, то можно не сильно утруждаясь реализовать элементы простой логики. Как например, те же боты в CS1.5 были. Может в таком варианте что-то и выйдет. Вышел в песочницу, а там 15 штук таких утюгов карту патрулируют и агрятся на тебя, когда ты в зоне их стрельбы. Но это всё "дни минувшего будущего", так как самое главное, это механика игры. Она сначала должна быть воссоздана и спрограммирована, а потом еще реализована и отлажена. А это гЫгантская работа. я не программист( конечно я всего этого не знаю( Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #438533 Posted August 21, 2018 (edited) Только что, RUS_TAHK сказал: качаешь варкрафт 3, и играешь в игру с со старенькой 3д графикой)) только вначале научись по видеороликам Там двумерная система координат в позиционировании. То что модельки и карта 3Д - значения не имеет. Как в шахматах например, фигурки ЗД, а система позиционирования их в двух координатах. ЗЫ: Шахматы с тремя координатами были у Шелдона в Теории большого взрыва))) Edited August 21, 2018 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
Monstrofil 70 #438627 Posted August 22, 2018 (edited) @Dragon armorпроверил танки, тут это пакет 0x24 в реплее, используется для обновления destroyedFragiles/fallenColumns/fallenTrees/damageStickers/других list/dict Цитата DEBUG:root: DEBUG:root:nested property request for id=10344435 isSlice=True data=e00097bd70df DEBUG:root:next path item: fallenTrees(3) DEBUG:root:object: [] <class 'def_generator.nested_types.PyFixedList'> DEBUG:root:Bits per array index: 0 DEBUG:root:List index: 0 DEBUG:root:Slice index: 0 DEBUG:root:new list object: [[0, 151, 189, 112, 223]] . ...или вот DEBUG:root:nested property request for id=10261187 isSlice=True data=ef0093bda506 DEBUG:root:next path item: fallenTrees(3) DEBUG:root:object: [[0, 141, 189, 112, 163], [0, 145, 189, 113, 58], [0, 146, 189, 128, 30]] <class 'def_generator.nested_types.PyFixedList'> DEBUG:root:Bits per array index: 2 DEBUG:root:List index: 3 DEBUG:root:Slice index: 3 DEBUG:root:new list object: [[0, 147, 189, 165, 6]] DEBUG:root: DEBUG:root: DEBUG:root:nested property request for id=10912843 isSlice=True data=e3c00802ea66e2ed5d87 DEBUG:root:next path item: damageStickers(12) DEBUG:root:object: [11992011582228136455L, 4675071338421158407L, 5466597707613143559L] <class 'def_generator.nested_types.PyFixedList'> DEBUG:root:Bits per array index: 2 DEBUG:root:List index: 3 DEBUG:root:Slice index: 3 DEBUG:root:new list object: [9754213924599366152L] Те же три пустых байта в пакете, тот же формат. self.entity_id, = struct.unpack('I', stream.read(4)) self.is_slice = struct.unpack('b', stream.read(1))[0] == 1 self.payload_size, = struct.unpack('b', stream.read(1)) self.u = stream.read(3) # unknown self.payload = stream.read() Так что если будут с ним проблемы - пиши, попробую помочь. Edited August 22, 2018 by Monstrofil Quote Share this post Link to post Short link Share on other sites
Dragon armor 67 #438712 Posted August 24, 2018 Очень долго разбирался с ландшафтом, рисовал схемы, чтобы понять, как индексы полигонов сделать И всё-равно до конца не разобрался. Почему между ними получилась дыра шириной в шаг? Почти полтора миллиона полигонов на карту 1 км2. Интересно, физический движок не захлебнётся? Quote Share this post Link to post Short link Share on other sites
RUS_TAHK 3 #438713 Posted August 24, 2018 Я посмотрел скриншоты, но не знаю, что ответить Quote Share this post Link to post Short link Share on other sites
Dragon armor 67 #438714 Posted August 24, 2018 Ещё вопрос. Чанки как индексируются? Слева сверху будет первый? 00000000o - центральный, это понятно. А справа от него 00010000o? Слева ffff0000o? @RUS_TAHK Это про внутреннее устройство движка. Понятно, что если не разбирался с этим, то не сможешь ответить. Quote Share this post Link to post Short link Share on other sites
RUS_TAHK 3 #438715 Posted August 24, 2018 (edited) @Dragon armor Однако я знаком с 16-ричной системой. ffff0000 имеет большее значение, чем 00010000. Если речь о 2D, тогда должны быть координаты x и y. Однако вы занимаетесь трёхмерной графикой. Ландшафт с рельефами хороши, если вам хочется сделать свою песчаную карту. Но вы пишете: 00000000o - а что такое o в конце? Я не уверен, но если справа 00010000, тогда слева должно быть -00010000 вероятно, что последние 0000 - координаты y. Я прав? --- Если я не прав, тогда проигнорьте мои предположения. Я прост пробовал делать модели для старенького Warcraft III, но я совершенно ничего не добился в графических моделях( я 1 в этом по 10-бальной шкале( @Dragon armor поможет ли вам это? Не знаю( поищите: https://www.youtube.com/results?search_query=blender+уроки быть может там вы найдёте для себя подсказки либо решения проблем( Edited August 24, 2018 by RUS_TAHK 1 Quote Share this post Link to post Short link Share on other sites
Monstrofil 70 #438718 Posted August 24, 2018 (edited) 1 час назад, Dragon armor сказал: Ещё вопрос. Чанки как индексируются? Слева сверху будет первый? 00000000o - центральный, это понятно. А справа от него 00010000o? Слева ffff0000o? XXXXZZZZ[o|i].chunk, каждый 100х100 попугаев. В питоне есть метод BigWorld.findChunkFromPoint(point, spaceID), можешь проверить, но емнип ты правильно написал. spaceID можно из какой-нибудь entity вытянуть Edited August 24, 2018 by Monstrofil Quote Share this post Link to post Short link Share on other sites
Dragon armor 67 #438720 Posted August 24, 2018 @Monstrofil Как у них всё сложно сделано. Но, похоже, мне не надо делать 3D модель. Смотрел примеры к физическому движку, там есть демосцены с ландшафтом. Так там так же загружается (генерируется в примере) карта высот и передаются размеры сетки. И функция есть соответствующая. Сейчас попробую сделать по аналогии, вдруг получится, а то этот ландшафт уже утомил меня. А дальше нужно будет статику загружать, ещё одна проблема. Quote Share this post Link to post Short link Share on other sites
Monstrofil 70 #438721 Posted August 24, 2018 31 минуту назад, Dragon armor сказал: @Monstrofil Как у них всё сложно сделано. Но, похоже, мне не надо делать 3D модель. Смотрел примеры к физическому движку, там есть демосцены с ландшафтом. Так там так же загружается (генерируется в примере) карта высот и передаются размеры сетки. И функция есть соответствующая. Сейчас попробую сделать по аналогии, вдруг получится, а то этот ландшафт уже утомил меня. А дальше нужно будет статику загружать, ещё одна проблема. Что-то мне подсказывает что все же физ. движок если не захлебнется от такого количества моделей, то как минимум начнет подтормаживать. И в итоге придется сначала писать препроцессор, который поубирает лишние полигоны. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #438724 Posted August 24, 2018 3 hours ago, Dragon armor said: Почему между ними получилась дыра шириной в шаг? Потому что игра не выводит это, как вывожу я у неё там шейдеры для этого Quote Share this post Link to post Short link Share on other sites
Dragon armor 67 #438727 Posted August 24, 2018 (edited) 2 часа назад, SkepticalFox сказал: игра не выводит это, как вывожу я Ты тут ни при чём, если ты о том, что это заимствовано у тебя. Мне не понятно, почему так получилось, должно же заканчиваться там, где начинается следующий чанк. Ошибка, наверное, в алгоритме. Кажется, что-то пошло не так. Edited August 24, 2018 by Dragon armor 1 Quote Share this post Link to post Short link Share on other sites
Dragon armor 67 #438741 Posted August 25, 2018 Решил посмотреть, как геометрия загружена в физический движок. Ошибка не в алгоритме, тут так же расстояние между чанками в один шаг. А некоторая техника полностью провалилась под ландшафт из-за того, что неправильно загрузилась геометрия. Чанки почему-то получились ориентированы неправильно, каждый повёрнут на 90 градусов. 1 Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #438742 Posted August 25, 2018 Забавно. Quote Share this post Link to post Short link Share on other sites
Dragon armor 67 #438743 Posted August 25, 2018 @Pavel3333 Нет, не забавно, утомительно. Пытался поворачивать модель на 90 градусов по X, Y - всё так же. Решил ещё посмотреть, как загружается коллизионная модель. Так же повёрнута на 90 градусов, но уже по другой оси и неправильно загружена. Но последнее поправимо. Слева - как загрузил физический движок, справа - как должно быть. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #438750 Posted August 25, 2018 (edited) @Dragon armor твой движок на другую систему координат рассчитан, наверное https://github.com/mikeoverbay/Terra/blob/master/Terra/Modules/modTerrain.vb тут еще посмотри Edited August 25, 2018 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Dragon armor 67 #438751 Posted August 25, 2018 @SkepticalFox А физическому движку важна система координат? Там же только вектор гравитации задать надо правильно. Или это из-за алгоритма построения полигона? По часовой стрелке или против? Про Terra знаю, но то ли это язык такой, то ли стиль программирования, у меня не получается разобраться, что и где там. Сейчас смотрю свой проект по другой игре, не законченный и давно заброшенный. Там система координат, судя по комментариям, мной оставленным, xzy, при загрузке модели поворачивал её на 90 градусов по X. Но там был ландшафт в виде одной 3D модели. У меня успешно загружались модели, работала физика. Там не было упрощенной модели коллизии, загружал 3D модель в физический движок. И всё работало нормально. Только не помню одного момента - модель преобразовывалась в выпуклую или оставалась такой же, как загружал. Из-за этой проблемы создавал составную коллизию и присоединял остальные части к основной. Но вот про основную модель не помню. Правильно понимаю, что в этом фрагменте кода self.PrimitiveGroups.append({ 'startIndex' : startIndex, 'nPrimitives' : nPrimitives, 'startVertex' : startVertex, 'nVertices' : nVertices }) Для создания модели нужно только nPrimitives как смещение от начала в списке индексов. Коллизию шасси загрузить получилось. Если выводить один-к-одному в блендер, то так же на 90 градусов повёрнута. Наверное, надо повернуть, а потом проверить, как в клиенте будет. Но это попозже. Поворачивать надо на -90 и модель получается упрощенная. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #438754 Posted August 25, 2018 1 hour ago, Dragon armor said: Для создания модели нужно только nPrimitives как смещение от начала в списке индексов. это для наложения материалов по индексу группы, да 1 hour ago, Dragon armor said: Если выводить один-к-одному в блендер, то так же на 90 градусов повёрнута определенно xzy/xyz проблемы Quote Share this post Link to post Short link Share on other sites