Jump to content
Korean Random
Dragon armor

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

Recommended Posts

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

А также убери создание гуслей в конструкторе класса dExcavatorModel, закомментируй оба вызова MakeThread.

Траки не шевелятся (очевидно), экскаваторы катаются как утюги. Ещё бы их число до одного уменьшить...

Share this post


Link to post

Short link
Share on other sites

@DrWeb7_1 Строка 1095, это уже позже добавили.

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

экскаваторы катаются как утюги

На сервере так же катаются. Сейчас видео найду.

Вот, у них так же.

https://youtu.be/-vO7qdL9Xh8?t=224

У меня не хочет стоять платформа на месте. Более того, работает нестабильно. Где-то ошибка грубая. Зато катки на месте, как и положено для данной модели.

image.thumb.png.11f689faf2fd4d703d5339ec24d50098.png

Share this post


Link to post

Short link
Share on other sites
15.07.2021 в 18:25, Dragon armor сказал:

Закомментировано - было в примере. Поменял - поехал. Ни в лево, ни в право. Только прямо.

Посмотрел в функции MakeLeftTrack() и MakeRightTrack(). dCustomDifferentialGear___() одинаков для них в примере.:blink:

Если я сделаю вот так для них:

new dCustomDifferentialGear___(EXCAVATOR_GEAR_GAIN,
                               engineMatrix.m_front.Scale (-1.0f),
                               engineMatrix.m_up,
                               tireMatrix.m_right/*.Scale(1.0f)*/,
                               engine, tire);

...то экскаватор начнёт ехать вперёд-назад при нажатии вправо-влево, но при этом при нажатии вперёд-назад будет поворачивать вправо-влево. Кнопки спутались, получается.

Что интересно, отдельно tireMatrix.m_right в коде не встречается, однако есть engineAxis.m_right, который... эээ... перпендикулярен движению вперёд, получается?

// connect engine to chassis with a hinge
dMatrix engineAxis;
engineAxis.m_front = engineMatrix.m_front;
engineAxis.m_up = engineMatrix.m_right;
engineAxis.m_right = engineAxis.m_front.CrossProduct(engineAxis.m_up);
engineAxis.m_posit = engineMatrix.m_posit;

 

Edited by DrWeb7_1

Share this post


Link to post

Short link
Share on other sites

@DrWeb7_1 В демке не надо менять ничего местами, там то, как раз, всё работает как надо. У меня не получается перенести пример в эмулятор. Система координат, видимо, другая. В BigWorld это xzy. А в демке xyz. Вот с координатами и надо разобраться. А что менять местами. увы, не знаю.

Share this post


Link to post

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

В демке не надо менять ничего местами, там то, как раз, всё работает как надо.

Я как раз хочу воспроизвести твою проблему, «сломав» демку. Либо мне надо найти, как в NDE включить полную сетку координат со стрелками (как в Maya/3DS MAX), чтобы посмотреть, в какую сторону всё смещается.

Share this post


Link to post

Short link
Share on other sites

@DrWeb7_1 Нет, так проблему не воспроизведёшь. У меня вьювер максимально приближен к тому, что на сервере. А тут ты меняешь всего лишь направление движения.

Share this post


Link to post

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

У меня вьювер максимально приближен к тому, что на сервере.

Способа перевести NDE в режим XZY нет, я так понимаю?

Единственный способ, который я могу предложить — «наугад» менять местами координаты в твоём коде.

Edited by DrWeb7_1

Share this post


Link to post

Short link
Share on other sites

Проявлю себя как животное  и задам глупейший вопрос - каким раком был осуществлен вход в ангар?

Share this post


Link to post

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

Проявлю себя как животное  и задам глупейший вопрос - каким раком был осуществлен вход в ангар?

 

Выше же ответили - эмуляция сервера игры.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

@Kustarnik Разобрался с сетевым протоколом и сделал свою реализацию сервера. Кроме ангара, так же есть возможность выйти в бой. Скрины есть в теме.

2 часа назад, DrWeb7_1 сказал:

«наугад» менять местами координаты в твоём коде

Делал так. Хотя бы вперёд/назад ездить начал. В общем-то, демка для начала очень неплохая, если её повторить. А там что-нибудь придумать можно.

Share this post


Link to post

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

Скрины есть в теме.

Да, я тему уже перечитал всю днем. Спасибо. 

Share this post


Link to post

Short link
Share on other sites
Только что, Dragon armor сказал:

Делал так. Хотя бы вперёд/назад ездить начал. В общем-то, демка для начала очень неплохая, если её повторить. А там что-нибудь придумать можно.

 

Если того оказалось недостаточно еще надо roll, way, pitch менять.

Share this post


Link to post

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

Делал так. Хотя бы вперёд/назад ездить начал.

Ну, в случае с координатами, коих у нас три, всего шесть вариантов возможно...

Share this post


Link to post

Short link
Share on other sites

@Dragon armor Неужели тема живёт и всё ещё разрабатывается
из последних нескольких страниц понял, что проблема в сервере как в процессе обсчёта арены, по сему предлагаю заюзать в качестве такого сервера -- Unity3D, полноценный игровой движок, на котором можно считать и физику и рейкасты и любую другую игровую логику, имеет сервер билд (опция специально для серверов, компилируется в консольное приложение без графических модулей), есть ESC + Burst система, которая на обычном компе в 60фпс считает Havok'ом 30к физических тел. 

Если со стороны клиентской части нет проблем, могу предложить свою помощь с Unity, опыт у меня там большой. Хотя бы попробовать демку и если всё ок, можно будет в танковое ММО РПГ развить, с прокачкой и донатами)

Edited by SoprachevAK

Share this post


Link to post

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

полноценный игровой движок

А смысл в этой операции? Тогда ж проще весь WoT на Unity перенести.

Share this post


Link to post

Short link
Share on other sites
53 minutes ago, DrWeb7_1 said:

А смысл в этой операции? Тогда ж проще весь WoT на Unity перенести.

Клиент оставить (рендер, оптимизация, ui, возможность модов, пиар)

Edited by SoprachevAK

Share this post


Link to post

Short link
Share on other sites

@SoprachevAK , автор, насколько я помню, принимает либо реализации на C, либо на C++. C# он не рассматривает.

Share this post


Link to post

Short link
Share on other sites

@SoprachevAK Это надо такую работу проделать. При этом, опять. Реализация сетевого протокола, ведь клиент уже существующий. Загрузка моделей, карт. Особенность движка BigWorld и танков в частности - создание отдельной арены для боя. Ещё и питон надо будет той же версии, что и в клиенте (2.7.15). И там можно свой сетевой протокол реализовать?

Тут проблема не столько в самом сервере, как в трудностях, возникающих в процессе создания. Сколько только с сетью возился, ещё и не закончил, хотя уже работает нормально.

2 часа назад, SoprachevAK сказал:

с прокачкой и донатами

А вот этого не будет.

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

принимает либо реализации на C, либо на C++.

Просто у меня на си, а часть на плюсах.

Share this post


Link to post

Short link
Share on other sites
29 minutes ago, DrWeb7_1 said:

@SoprachevAK , автор, насколько я помню, принимает либо реализации на C, либо на C++. C# он не рассматривает.

Ну тут вопрос в архитектуре и в его задумке. Если идея юзать C или C++ обусловленна просто хотелкой, то это конечно ошибка, никто не разрабатывает такие комплексные системы привязываясь к одному языку. Если вопрос в совместимости с оборудованием и производительности, то Юнити компилит C# в IL код, Burst проходится по нему и заменяет циклы на векторные вычисления на ассемблере, после чего il2cpp конвертирует IL code в C++ и компилирует этот C++ в бинарник. По производительности написать такой же код сразу на плюсах практически невозможно

10 minutes ago, Dragon armor said:

@SoprachevAK Это надо такую работу проделать. При этом, опять. Реализация сетевого протокола, ведь клиент уже существующий. Загрузка моделей, карт. Особенность движка BigWorld и танков в частности - создание отдельной арены для боя. Ещё и питон надо будет той же версии, что и в клиенте (2.7.15). И там можно свой сетевой протокол реализовать?

Тут проблема не столько в самом сервере, как в трудностях, возникающих в процессе создания. Сколько только с сетью возился, ещё и не закончил, хотя уже работает нормально.

А вот этого не будет.

Просто у меня на си, а часть на плюсах.

Из своих знаний, серверная архитектура таких игр выглядит так
Есть мастер сервер который распределяет нагрузку и отвечает за связь с клиентом
Есть игровой сервер который считает непосредственно саму игру
Мастер сервер собирает арену и запускает для этой арены инстанс игрового сервера, который уже отвечает за просчёт одной конкретной арены. Конкретно у BigWorld инстансы делят не полные арены, а отдельные части внутри одной карты, балансирую эти части по нагрузке
Есть ещё отдельный сервер для чата и экономики

Из С# можно вызывать extern "C" функции, но твой мастер сервер можно просто общаться с инстансом для арены через любой протокол, хоть через iostream текст отправлять, в одну сторону действия игроков, в другую стороны просчитанное состояние мира. 

Если у тебя есть рабочий способ общения с клиентом, а как мне кажется именно это самое сложное, то почему бы не попробовать. 

Сетевую часть будет тяжело, тк писать нормальный предикшен с учётом физики весьма нетривиальная задача, но на неё можно положить на ранних версиях

Edited by SoprachevAK

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.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...