Jump to content
Korean Random
Dragon armor

Мод "Эмулятор сервера World of Tanks".

Recommended Posts

06.11.2019 в 16:22, DrWeb7_1 сказал:

@Spectr20 , это конспирологи диванные, особая группа в ЦА!:teethhappy:

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

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

На будущее, шутки шутками но по волнующей проблемной теме не нужному мозги дурить людям.

 

 

Edited by WCD
  • Downvote 6

Share this post


Link to post

Short link
Share on other sites

Да... Я бы хотел потестить, а еще сильнее хотелось бы помочь, но я настолько несведущ в этом, насколько это вообще возможно. Мне 16 лет, я даун и могу решать уравнения на паскале))

Share this post


Link to post

Short link
Share on other sites
55 минут назад, MetOn сказал:

Такое ощущение, что я своим сообщением похоронил тему)

 

Она изначально была холодна как труп.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

ЛСД это как раковая опухоль. Везде оставляет метастазы и всё вокруг умирает.

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

Пора возобновить тему.

Так как изначально было понятно, что это абсолютно не нужная и бесполезная вещь, которую делаю, то до меня дошла интересная идея, что в одну харю, никого и ни о чём не спрашивая, буду делать ещё пару лет до какого-то результата, которым можно поделиться. А спрашивая каждую мелочь, вместо того, чтобы самому найти ответ, можно и ускорить результат. Вдруг у кого-то уже есть ответ на вопрос, на который мне нужно потратить прилично времени.
Первое, что нужно было, это вьювер. Так как использовать клиент для тестирования каждой детали - это очень долго. Поэтому прикрутил 3d визуализацию. Пока что только для загрузки геометрии карты. Вид так себе, но большего и не нужно.

s1.thumb.jpg.e1d5ebdd86cfaee33b0d6317deeca442.jpgs2.thumb.jpg.a74bff778439745121e47ad73a4d2adc.jpg

 

И тут первый вопрос возник. У меня очень большая надежда на то, что на сервере и в клиенте используются одни и те же статичные модели. Танки-то понятно, что разные, там даже папка с коллизией называется по-другому. А вот если и в статике не так, то совсем плохо. Потому что для физического движка нужна коллизия. И в движке используется bsp версии 2. Кто-то разбирался с этим? Вот что у меня получается при загрузке из файла танка (тут просто показательно).

s3.thumb.jpg.964942856c7b2355af609e5f68a481b2.jpgs4.thumb.jpg.9d7c09ebca14f5ae794a8de4a224e739.jpg

Это дамп загруженной геометрии, если напрямую сохранить. Там ведь bsp-дерево строится. Как это можно привести к какому-то нормальному виду? Боюсь, что придётся собственный алгоритм для обсчёта коллизии добавлять (благо физический движок позволяет это).

 

Второе, это space.bin. Мне много из него не надо. Судя по всему, нужны секции BSMI, BSMO и, возможно, BSMA. Дошёл уже до моделек, которые на карте должны быть. Compiled space utils не полон, эти секции там не расписаны. Явно где-то в них хранится положение на карте. Может кто дошёл до этого, или это уже известо? Где хранятся координаты статики на карте?

  • Upvote 4

Share this post


Link to post

Short link
Share on other sites
4 часа назад, Dragon armor сказал:

Второе, это space.bin. Мне много из него не надо. Судя по всему, нужны секции BSMI, BSMO и, возможно, BSMA. Дошёл уже до моделек, которые на карте должны быть. Compiled space utils не полон, эти секции там не расписаны. Явно где-то в них хранится положение на карте. Может кто дошёл до этого, или это уже известо? Где хранятся координаты статики на карте?

Если я правильно понял вопрос, то требуется понять, какая из секций spaces.bin отвечает за статичные элементы на карте? Я как-то пробовал декомпилятором spaces.bin разобрать файл ангара от 0.9.22.0.1, ничего не получилось.

А что с растительностью, кстати? Там тоже свои приколы на уровне SpeedTree?

Share this post


Link to post

Short link
Share on other sites

@DrWeb7_1 За статичные элементы, судя по названию, отвечают три перечисленные мной секции. Ещё есть BSGD (Static Geometry Data), но там, как мне помнится, содержится геометрия модели (копия из primitives_processed). Мне же надо координаты статичных объектов найти. Да и со статикой не всё ясно. Где их количество на карте? В какой секции?

38 минут назад, DrWeb7_1 сказал:

А что с растительностью, кстати?

Пока не занимался этим.

Share this post


Link to post

Short link
Share on other sites

@Dragon armor , можешь скинуть ссылку на тот декомпилятор, который на секции с этими четырёхбуквенными названиями разбирает файл spaces? Если у меня получится найти время, попробую выяснить, в чём дело.

Share this post


Link to post

Short link
Share on other sites
20 минут назад, Dragon armor сказал:

самописный

Хмм... *почесал затылок* тогда буду ворошить темы на форуме, вдруг найду что-то похожее...

Share this post


Link to post

Short link
Share on other sites

Оказывается, всё под носом было. Позиция находится в секции BSMI. Если смотреть файл bsmi_section.py, то это элемент _01_64, то есть это первый элемент секции размером 64 байта, что соответствует матрице 4х4. Тогда получается, что количество статичных объектов на карте будет равно количеству элементов в секции.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
8 часов назад, Dragon armor сказал:

Позиция находится в секции BSMI.

Получается, это всё клиентское позиционирование объектов? А серверное позиционирование что из себя представляет в таком случае? На первых страницах темы была карта высот для ландшафта.

Share this post


Link to post

Short link
Share on other sites
33 минуты назад, DrWeb7_1 сказал:

Получается, это всё клиентское позиционирование объектов? А серверное позиционирование что из себя представляет в таком случае?

Это оптимизация. Для того, чтобы от сервера к клиенту не отправлять те данные, которые никогда не меняются (положение статических объектов, как пример). На клиенте и сервере находятся одинаковые данные (в данном случае, за исключением самих моделей танков, хз что там на сервере). Клиент загружает 3d модель, текстуры, модель коллизии. Серверу нужна только коллизия. Клиенту коллизия тоже необходима, позиционирование башни этому пример, когда мышь наводится на какую-то точку, клиент делает raycast и отправляет серверу позицию, находящуюся на ландшафте или танке (или в условной бесконечности, если в небо навести), в которую он хотел бы, чтобы башня повернулась. Хз понятно объяснил или нет, мне то это всё как-раз понятно и непонятно, что может быть другим непонятно, отсюда следует не совсем понятность, как надо объяснить, чтобы было понятно.

41 минуту назад, DrWeb7_1 сказал:

На первых страницах темы была карта высот для ландшафта.

Это самое простое. За исключением "дыр" на ландшафте, это первое, что было сделано.

Share this post


Link to post

Short link
Share on other sites
12 минут назад, Dragon armor сказал:

Хз понятно объяснил или нет, мне то это всё как-раз понятно и непонятно, что может быть другим непонятно, отсюда следует не совсем понятность, как надо объяснить, чтобы было понятно.

Я прекрасно понял, как ты это объяснил. ;)

13 минут назад, Dragon armor сказал:

Серверу нужна только коллизия.

То есть, те самые проблемы с призрачными камнями, от которых у игроков горело после патча 1.0, были вызваны некорректной коллизией?

Share this post


Link to post

Short link
Share on other sites
6 минут назад, DrWeb7_1 сказал:

То есть, те самые проблемы с призрачными камнями, от которых у игроков горело после патча 1.0, были вызваны некорректной коллизией?

Да. Видимый 3d объект и его модель коллизии различались. Не знаю, как так получилось, потому что эти камни - не ландшафт, а объект, которому коллизия назначается ручками. Есть идея, что не ручками, а автоматически. А физический движок оперирует только выпуклыми объектами. И, если у камня был где-то выступ, ниже вогнутость, а ещё ниже опять выступ, то коллизия построится по двум крайним точкам, игнорируя вогрутость. Для пояснения есть такая вот картинка.

spacer.png

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

Share this post


Link to post

Short link
Share on other sites
6 минут назад, Dragon armor сказал:

Это получается типичный рассинхрон, когда данные на клиенте и на сервере не совпадают.

Казалось бы мелочь... а вытворяет такое безобразие.:sad:

Как тогда объяснить поведение орудия танка при прикосновении к другим объектам? Оно ведь проходит сквозь все объекты.

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...