Понедельник, 11 Ноября 2024, 03:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Сервер для MMORPG
kr0n4ikДата: Воскресенье, 21 Октября 2018, 20:59 | Сообщение # 1
был не раз
Сейчас нет на сайте
Пришла в голову идея создания сервер для mmorpg. Но писать код хочу на js. Вообще идея в том посмотреть будет он быстрее скажем таких же серверов на c++ или с. В интернете полно споров про такие вещи и вроде js набирает плюсы в плане производительности и меньшего потребления ресурсов. Вообще интересно начальное мнение по этому вопросу.
Как в пример наверное возьму сервер для wow или rose. Для полдней есть даже клиент на js клиент. Бред или выстрелит, как считаете?
TLTДата: Воскресенье, 21 Октября 2018, 23:42 | Сообщение # 2
Сейчас нет на сайте
Обычно, чем ниже уровень языка тем быстрее... Если так рассуждать, то C++ второго уровня, а JS - скриптовой ЯП, выше. Хотя, с серверами не знаю как это применимо.

Дао, выраженное словами, не есть истинное Дао.
AlexRabbitДата: Понедельник, 22 Октября 2018, 03:39 | Сообщение # 3
старожил
Сейчас нет на сайте
Очень странно поставлен вопрос. Нет никаких данных о предполагаемых одновременных соединениях (сколько одновременно игроков онлайн), какой объем данных должен будет передаваться, как они будут обрабатываться (что на стороне сервера и что на стороне клиента)... и еще десятков вопросов по теме.

Примеров ММО на JavaScript, Node JS + MongoDB (или любой другой БД) достаточно. Но обычно это 2д браузерки с маленьким онлайном или ниипической системой кластеризации (которая сама по себе сложнее написанной MMO). В конце концов можно глянуть следующее https://medium.com/@endel....1cebbfe


Нам требуются партнеры для продвижения и поддержки нашего ПО

Сообщение отредактировал AlexRabbit - Понедельник, 22 Октября 2018, 03:39
drcrackДата: Понедельник, 22 Октября 2018, 10:16 | Сообщение # 4
старожил
Сейчас нет на сайте
nodejs хорошо заходит если клиент на js, т.е. обычно в браузерках
иначе несколько проигрывает по удобству c++/java/c#
основная проблема это типизация и соответственно большое количество тупых багов (частично лечится хорошей IDE или переходом на TypeScript) а также отсутствие потоков внутри процесса (не лечится, приходится выкручиваться).
programMainДата: Пятница, 26 Октября 2018, 02:29 | Сообщение # 5
частый гость
Сейчас нет на сайте
Я думаю что тут смотря с какой стороны смотреть. js - яп задуманный для клиентов. Он ограничен силой браузера, и точно уступает всем типизированным языкам по скорости. Не говоря уже о том что все что написано на js в конечном итоге станет структурами на c++. Время тратится на преобразование. Я бы рекомендовал c# - проще. И минимум ошибок. c++ - круто, но времязатратно. js - 100 человек я думаю станет смертью для твоего сервера). Если клиент на js - web сокеты в помощь и подключайся к c# и будет тебе счастье)
kr0n4ikДата: Суббота, 17 Ноября 2018, 00:18 | Сообщение # 6
был не раз
Сейчас нет на сайте
Первые наброски

как разгребу немного выложу на гитхаб
drcrackДата: Суббота, 17 Ноября 2018, 10:34 | Сообщение # 7
старожил
Сейчас нет на сайте
прикольно
kr0n4ikДата: Воскресенье, 18 Ноября 2018, 22:23 | Сообщение # 8
был не раз
Сейчас нет на сайте
С горем пополам дошел до заполнения мира. Решил протестировать задержку на 1000 кроликов. Работает без проблем. Ну правда не все функции обработки написаны и время обработки физических данных возрастет, но можно точно сказать что 100+ человек потянет. вот ссылка github
avkvlДата: Понедельник, 19 Ноября 2018, 00:43 | Сообщение # 9
почетный гость
Сейчас нет на сайте
Цитата kr0n4ik ()
но можно точно сказать что 100+ человек потянет


Даже не понятно откуда такая уверенность. Как 1000 кроликов могут сигнализировать о том, что 100+ человек (которые асинхронно бегают, совершают действия, имеют разного качества интернет и латенси) смогут комфортно играть? Или имеется ввиду что 100+ человек бегают вдали друг от друга и никак не контактируют?
drcrackДата: Понедельник, 19 Ноября 2018, 03:42 | Сообщение # 10
старожил
Сейчас нет на сайте
надо 10000 кроликов чтобы примерно оценить нагрузку на сеть от 100 человек в одном месте (т.к. каждому из 100 надо послать инфу обо всех остальных)
kr0n4ikДата: Вторник, 20 Ноября 2018, 14:46 | Сообщение # 11
был не раз
Сейчас нет на сайте
Цитата avkvl ()
Даже не понятно откуда такая уверенность. Как 1000 кроликов могут сигнализировать о том, что 100+ человек (которые асинхронно бегают, совершают действия, имеют разного качества интернет и латенси) смогут комфортно играть? Или имеется ввиду что 100+ человек бегают вдали друг от друга и никак не контактируют?

Игрок это дочерний юнит (в нашем случае кролик). И все действия кроликов это действия игрока минус одна команда на отправку данных.
Цитата drcrack ()
надо 10000 кроликов чтобы примерно оценить нагрузку на сеть от 100 человек в одном месте (т.к. каждому из 100 надо послать инфу обо всех остальных)
Но при одном условии, что 100 игроков в одно и тоже время начнут выполнять одно и то же действие (можно сказать что любое действие, но при этом размер пакетов будет разный). И тогда это не примерная (средняя), а пиковая нагрузка. И что то мне слабо верится что 100 игроков будет одновременно что то делать.
Ну ок создал 18000 сокетов, время задержки 2-3мс. Из ваших рассуждений получаем 140 клиентов держит спокойно или 100+.
Кому интересно:
-добавил движение игрокам
-добавил модельки
drcrackДата: Вторник, 20 Ноября 2018, 14:53 | Сообщение # 12
старожил
Сейчас нет на сайте
Цитата
И что то мне слабо верится что 100 игроков будет одновременно что то делать.

рейд на столицу например, около короля может и больше собраться, и все будут одновременно что-то делать

из скрина не совсем понятно, кролики хотя бы двигаются? :D
avkvlДата: Вторник, 20 Ноября 2018, 15:34 | Сообщение # 13
почетный гость
Сейчас нет на сайте
Проблема ведь не только в отправке пакетов. Нужно обеспечивать некоторый тикрейт и обработывать коллизии: один игрок бежит и атакует второго игрока, а тот в это время может быть уже в другом месте и первый игрок испытывает дискомфорт от такой игры. А кролики проверяют насколько адекватно выполнились их действия?
KwantДата: Пятница, 23 Ноября 2018, 17:57 | Сообщение # 14
почетный гость
Сейчас нет на сайте
Цитата kr0n4ik ()
Пришла в голову идея создания сервер для mmorpg. Но писать код хочу на js. Вообще идея в том посмотреть будет он быстрее скажем таких же серверов на c++ или с. В интернете полно споров про такие вещи и вроде js набирает плюсы в плане производительности и меньшего потребления ресурсов. Вообще интересно начальное мнение по этому вопросу.
Как в пример наверное возьму сервер для wow или rose. Для полдней есть даже клиент на js клиент. Бред или выстрелит, как считаете?


Проблема не в скорости уже.
Затык будет в аллокации памяти - на JS её нельзя делать. И если есть места с критичной производительностью придётся сделать типо Кольцевой буфер для объектов, чтобы не сливать их, ибо GC придётся потом огромный объем подчищать, это может создать лаг кратковременный. Ну и т.п., и т.д.
Правд это уже конечные оптимизации проекта, а сейчас пока ничего особо и нет.

Полистал исходники на гите - так себе стиль. Используй вместо ES5 уже давно пришедший ES6.
AnyanДата: Среда, 19 Декабря 2018, 11:49 | Сообщение # 15
участник
Сейчас нет на сайте
Цитата kr0n4ik ()
И что то мне слабо верится что 100 игроков будет одновременно что то делать.

то есть зашли 5000 юзеров в игру и делать одновременно что то будет только 99 максимум, а остальные будут стоять и не двигаться :D

может имеется в виду на одной локе? так осады даже в непопулярных проектах по 250тел набирают, что уж говорить о массовых?

но у ТС есть мнение, он явно знаить шобуить :D
kr0n4ikДата: Вторник, 25 Декабря 2018, 21:58 | Сообщение # 16
был не раз
Сейчас нет на сайте
Я считаю понятие о одновременном у вас размыто. Если взять скажем cs то там поток данных одновременный и можно сказать что количество пользователей сильно влияет на нагрузку. Тут всё иначе, если считать, как вы предлагаете, то 5000 пользователей должны одновременно(очень важно слово) скажем начать двигаться из одной точки в одну общую точку. Если это условие не выполняется то нагрузку так считать нельзя. И опять же это будет пиковая нагрузка, а не средняя
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг