mmo-dev team

whiteo

cvaba community
Уважаемый собеседник
Разработчик
Победитель в номинации 2025
Орден Великого Хилера
Баг мой - друг мой
Старожил I степени
Хроники
  1. Prelude
  2. Harbingers of War
  3. Age of Splendor
  4. Rise of Darkness
  5. Scions of Destiny
  6. Oath of Blood
  7. Interlude
  8. The 1st Throne: The Kamael
  9. The 1st Throne: Hellbound
  10. The 2nd Throne: Gracia
  11. The 2nd Throne: Freya
  12. Chaotic Throne: High Five
  13. Goddess of Destruction Awakening
  14. Goddess of Destruction Harmony
  15. Goddess of Destruction Tauti
  16. Goddess of Destruction Glory Days
  17. Goddess of Destruction Lindvior
  18. Valliance / Epeisodion / Raiders
  19. Ertheia / Dimensional Strangers
  20. Infinite Odyssey
  21. Helios
  22. Grand Cursade
  23. Salvation
  24. Fafurion
  25. Shadow of the Kamael
  26. Prelude Of War
  27. Homunculus
  28. Return Of The Queen Ant
  29. Master Class
Всем привет, в моей прошлой теме тыц, мы успели пообсуждать кто, что и как пишет.
В итоге я решил что пора бы уже делать что-то, что можно было бы и людям показать.
Посему предлагаю организовать команду, чтобы совместно сделать качественный продукт.
Конечно, не все захотят тратить время, а кому-то денег подавай, но тут каждому свое. Если хотите внести вклад — милости просим.
Сразу скажу: Java, Go :Bingo:
Для начала я выкатил в репозиторий только логин-сервер. Но даже по нему уже можно посмотреть, насколько я упоролся.
Если ты такой же упоротый — ты тот, кто нужен команде mmo-dev team!
З.Ы. Зачатки гейм-сервера залью чуть позже.

github:

P.S. Пост будет дополнятся.
 
Последнее редактирование:
whiteo, как тебе идея зарегистрироваться на Kickstarter (kick - что то знакомое)? Собрать деньги на нулёвый "не l2"-сервер на Go. Или на форуме объявить сбор средств)
В смысле не л2? А какой тогда? Aion 2 ну что бы ваще хардкор полный. :pandaredlol:
 
В смысле не л2? А какой тогда? Aion 2 ну что бы ваще хардкор полный. :pandaredlol:
в смысле чтобы без палева)
P.S. У меня такое всегда срабатывало. Когда мне было 5 лет, меня как-то искала мама: "Сынок! Сынок!". Я выглянул из-за угла и сказал: "Мама! Мы здесь не курим!"
Сообщение объединено:
Интересно, вдохновлюсь вашими разработками) Месяц назад пытался делать подобное. Проектировал схему на анализе явы. Есть мотивация вернуться к ресерчу)
забавно что - не присоединюсь, а вдохновлюсь)
 
Последнее редактирование:
kick, знал что ты веришь в меня, щас еще медальку попрошу что бы уж наверняка :Happy:
ZUBAT, всегда пожалуйста.
dLeto, вот такой он, опенсурс :Lonely:
 
я с радостью поделюсь наработками . Но пока нечем) Есть только Арха
1779993992454.webp
 
ZUBAT, ну там же есть шаред мемори)
Сообщение объединено:
ZUBAT, вот тут видно, как я наткнулся на потерю TPS при том что у меня перформанс ферст подход.
Код:
Онлайн      До фикса        После фикса
-------------------------------------
22          12.5 TPS       12.5 TPS
112         0.2  TPS       12.6 TPS
281         0.05 TPS       12.5 TPS
-------------------------------------
Дальше я пошел накручивать количество ботов до 1000 и снова снял профили, увидел что картинка оказалась весьма удручающая:
Код:
Параметр               [ GC-profile ]    [ Lock-profile ]
------------------------------------------------------------
Аллокации               15.43 MB/s        9.39 MB/s
Аллокаций в секунду     302,595/s         52,642/s
Загрузка кадра          73.17%            84.18%
p99                     58.54 ms          67.34 ms
------------------------------------------------------------
В обоих режимах видно, что серверу приходится очень тяжело. В первом случае — что GC тонет в мусоре, а во втором — что конкуренция за блокировки аффектит весь сервер.
 
интересно. а ты на базе мобиуса переписывал пакетку?
 
ZUBAT, только структуры пакетов, математику, ai подсматриваю в .pdb, оттуда же вытянул гео двиг.
 
whiteo знатно ты меня озадачил конечно с shared memory... Кажется все таки делать монолит)
 
ZUBAT, ты же можешь попробовать))
Сообщение объединено:
По чуть чуть добиваюсь какого-то результата.
Запустил 2 сценария на 1500 и 3000 ботов. Каждый сценарий поделен на фазы:
IDLE фаза - боты просто бегают и рандомно выполняют действия (спам в чат, "прокликивание" эмоций, снять/одеть рандомную шмотку, и побежать туда или сюда), используется для того что бы замазать по времени вход ботов в игру.
PVE фаза - охота на заранее заспавленных Gremlins, тут все просто воины бьют с руки, маги используют Wind strike, после смерти гремлина, поднимают Blue Crystal.
PVP фаза - всех тех кто не умер в PVE, телепортирует в одно месте, где начинается массовое PVP.
Код:
┌─────────────────────────┬───────────────────────────┬───────────────────────────┐
│         Метрика         │           1500            │           3000            │
├─────────────────────────┼───────────────────────────┼───────────────────────────┤
│ TPS                     │ 100%                      │ 100%                      │
├─────────────────────────┼───────────────────────────┼───────────────────────────┤
│ budget max              │ 57.76%                    │ 35.45%                    │
├─────────────────────────┼───────────────────────────┼───────────────────────────┤
│ heap max                │ 1.16 GB                   │ 1.64 GB                   │
├─────────────────────────┼───────────────────────────┼───────────────────────────┤
│ p99                     │ 3.21 ms - 42.21 ms        │ 9.48 ms - 28.36 ms        │
├─────────────────────────┼───────────────────────────┼───────────────────────────┤
│ combat                  │ 22189 cyc.                │ 53023 cyc.                │
└─────────────────────────┴───────────────────────────┴───────────────────────────┘
Однако по результатам видно, что p99 так же как и бюджет тика в 1 сценарии стал вести себя как-то не правильно.
Буду инвестигейтить втф :Huh:

P.S. Геодвиг тоже включен и даже как-то работает с 17_25_conv.dat
 
Последнее редактирование:
whiteo, так у тебя уже сервер готов?
 
dLeto, ну как сказать.
Из готового у меня, только Talking Island и то только там где спавнятся Human Fighter и Human Mystic, базовые формулы расчета урона, реген мп/хп, начальный квест с гремлинами и еще что-то там по мелочи.
Сейчас идет в основном работа над ядром.
Боты умеют спамить в чат, особенно когда умирают :Hahaha:
Screenshot_2.webp
 
Последнее редактирование:
dLeto, ну как сказать.
Из готового у меня, только Talking Island и то только там где спавнятся Human Fighter и Human Mystic, базовые формулы расчета урона, реген мп/хп, начальный квест с гремлинами и еще что-то там по мелочи.
Сейчас идет в основном работа над ядром.
Боты умеют спамить в чат, особенно когда умирают :Hahaha:
Посмотреть вложение 95638
ну вот, а в репе только логин сервер?
 
Я с пати развлекаюсь) прикольно по кусочкам собирать свой сервер. Интересный опыт
Сообщение объединено:

@whiteo дай свой бенч?) мне аж интересно стало потестить свою поделку​

 
ZUBAT, лежит headless клиент под 140 протокол, развлекайся).
И кстати да, пати у меня работает тоже :Kukukuh:
 
whiteo, ты решил сразу на ласт хроны? Я делаю hf)
 
Напихать "архитектурочки", редисов, пабсабов-хуябов, тыщи бинарей, кешей и проксей до проксей -- это конечно круто, в духе мидлов, первый раз открывших книги со словом "архитектура" на обложке и пытающихся "оптимизировать" код, который кроме них никто никогда не запустит.

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

Но нет, все одно и то же, копирка с Java-кала, только разделенная на еще пяток-десяток кусков, и связанных вермишелью разных протоклов для взаимодействия.
я с радостью поделюсь наработками . Но пока нечем) Есть только Арха
Посмотреть вложение 95634
Сообщение объединено:
-- под 40 внешних зависимостей для сервера авторизации. Туда и YAML заехал, ну а что, удобно же конфигурировать. И протобуф валяется, ну а что, удобно же сериализировать.

К слову, сервер авторизации у Л2 простой, как кусок камня.
Асинхронный сервер пишется на C (язык программирования Си) из 1 (одного) файла менее чем на 800 (восемьсот) строк, ровно с 1 (одной) зависимостью в виде драйвера для БД.

Ладно, извиняюсь, чуть бомбануло у меня:cry:
 
Последнее редактирование:

kick

Баллов: 102
За java уж точно в цель
Назад
Сверху Снизу