Storm54
Так ведь движков которые тянут 100 игроков - пруд пруди, бери любой и делай игру, это даже не MMO, это просто Online Multiplayer. Если бы мне было интересно таким заниматься, я бы делал игру на готовом движке.
А мне интереснее сделать что-то новое и выдающееся, например сервер для MMO который позволит делать то о чем мечтают игроки не на кластере из 100 дорогих серверов а на 10 дешевых или вовсе на 1.
Вий
> Так ведь движков которые тянут 100 игроков - пруд пруди
Много чего есть, как это связано с моим сообщением - непонятно.
Вий
> А мне интереснее сделать что-то новое и выдающееся
Пока что я не понял, что ты хочешь сделать.
Возможность игрокам зайти и увидеть вокруг десятки тысяч других?! Допустим.
Какое управление должно быть в этой игре? Должна ли быть реалистичная физика и action based механика боевки? Или же ты хочешь сделать боевку линейки на 10000 человек? Если да, то это уже по определению устаревший геймдизайн (отсутствие физики, низкий тикрейт), кого этим впечатлить можно?
Вий
> То что я нашел это все те же 200-300 игроков на экране
А что камера фиксированная и поворачивать ее не предполагается? Или на каждый поворот камеры высылать "новых" для клиента игроков? А сколько у клиента займет времени загрузить пару сотен актеров других игроков в память?) А если камерой крутить почаще?)
Отправлять нужно всех досягаемых игроков, а не только тех что на экране. Даже если из действий слать только передвижение, но слать нужно обязательно.
Вий
> Ну забери 2 бита из смещения цели в ид действия. Будет у тебя 1024. Когда кончатся зеберешь еще 2 бита.
Допустим. А с параметрами действий что делать?
Ну и координаты игроков в целых числах делают геймплей используемых способностей направленного не мгновенного действия весьма бесячим для игроков. Тот же выстрел из лука по движущейся цели никогда не попадет или будет всегда попадать, смотря как округлять. Конечно можно сказать что "этот движок не для такого геймплея" ну и в целом забить на это. ММО начала века использовали целочисленную "сетку" и игралось это вполне. Но прошло уже много лет и люди хотят игры не на шахматной доске. Ты же движок не для ММО шахмат делаешь да?
Storm54
> Пока что я не понял, что ты хочешь сделать.
> Возможность игрокам зайти и увидеть вокруг десятки тысяч других?! Допустим.
Гигантский бесшовный мир, в котором десятки тысяч игроков могут взаимодействовать между собой и менять мир.
Storm54
> Какое управление должно быть в этой игре? Должна ли быть реалистичная физика и action based механика боевки?
Управление мышкой с низким APM, но это никак не ограничивает физику и слабо ограничивает механику боевки.
Mephistopheles
> А что камера фиксированная и поворачивать ее не предполагается?
Камера смотрит на персонажа игрока, вращение не приводит к существенному изменению состава видимых персонажей. Можно сделать и любые другие варианты, но это потребует существенно более широкого канала для передачи информации игрокам, для этого можно использовать сеть проксирующих серверов. Пока предполагается камера как в diablo 2.
Mephistopheles
> Ну и координаты игроков в целых числах делают геймплей используемых способностей направленного не мгновенного действия весьма бесячим для игроков.
Координаты игроков в целых числах никак не связаны с тем что и как видят игроки.
Вий
> Координаты игроков в целых числах никак не связаны с тем что и как видят игроки.
как это не связаны? Ну вот один игрок выпустил стрелу а у другого она визуально пролетев мимо убила его. Как и наоборот визуально попавшая стрела не нанесла урона. Как игрока меня это бы бесило.
Вий
> Пока предполагается камера как в diablo 2.
Это все упрощает. Если наклон камеры к поверхности не предполагается изменять то больше нескольких десятков игроков в экран не влезет:)
Вий
> Управление мышкой с низким APM, но это никак не ограничивает физику и слабо ограничивает механику боевки.
Так а что новое и выдающееся тогда?
Подгрузка чанков вокруг небольшой зоны видимости игрока или потенциальная реализация локстепа, как в РТС, чтобы передавать только инпуты игроков?)
С подобным управлением в РТС тысячи юнитов бегают на одной машинке, это давно уже не впечатляет никого.
Реализацию опенворлда можно адаптировать под локстеп, основная сложность - синхронизация на стыке чанков в зоне видимости игрока, но это решаемо.
Storm54
> Так а что новое и выдающееся тогда?
Движок для ММОРПГ, способный на 1 игровом сервере с гигабитным каналом хостить один игровой мир для 100к игроков
Вий
> Движок для ММОРПГ, способный на 1 игровом сервере с гигабитным каналом хостить один игровой мир для 100к игроков
В среднем 1342 байта на игрока в секунду.
Ну, допустим частота отправки на клиенты будет равна 3Hz (что уже - дичь), что требует формировать пакеты максимальным размером 419 (447 - 28 байт заголовка) байт.
Если повезет и удастся сделать нормальное сжатие, то можно получить в среднем 700 байт на пакет.
Я посмотрю, как ты будешь упаковывать все данные в этот крохотный размер))
Но, мы знаем правду, что дальше перемалывания костей на форуме дело не зайдет)
447 байт это информация о 50+ действиях видимых игроков. Сомневаюсь что средний игрок будет делать больше 3 действий в секунду или наблюдать более 50 игроков в поле зрения. Таким образом нормальный игровой процесс очевидно возможен.
Вий
> Сомневаюсь что средний игрок будет делать больше 3 действий в секунду
Игрок нет, а вот всякие эффекты, ауры, бафы и тд будут. В том же WoW у каждого персонажа с десяток коротких эффектов(по времени от 5 до 30 сек), какие то обновляются, какие то суммируются. У некоторых так же с десяток отрицательных эффектов\периодического урона. Еще вполне практикуется зональные периодические эффекты которые накладывают другие эффекты.
Попробуй поискать combatlog в сыром виде и посмотри что там творится и сколько за секунду там приходит на клиента только эффектов
Mephistopheles
> сколько за секунду там приходит на клиента только эффектов
В среднем?
Вий
> А мне интереснее сделать что-то новое и выдающееся, например сервер для MMO который позволит >делать то о чем мечтают игроки не на кластере из 100 дорогих серверов а на 10 дешевых или вовсе >на 1.
Мне тоже интересно, и даже есть идеи как это сделать.
Вий
> В среднем?
ну если найду игрока в WoW который мне запишет этот лог, то поделюсь.
Вий
Mephistopheles
В ека2 была специальная программа «парсер» которая вела лог всех-всех-всех действий совершенных персонажами в радиусе. Каждый так каждого дота и все такое. Попробуйте найти эти логи
Вий
> Движок для ММОРПГ, способный на 1 игровом сервере с гигабитным каналом хостить один игровой мир для 100к игроков
А прикиньте только, сколько миллиардов пользователей там можно будет одновременно хостить, если применить алгоритм архиватора Бабушкина... Страшно представить просто...
Тема в архиве.