![]() |
Ответ: Epica online
Просто перемещение монстров и игроков считает сервер, на данный момент проблема в том, что мобы "прилетают" к игрокам. МоКа, твою идею с просчетом на стороне клиент - не понял. Если клиенты будут просчитывать перемещение мобов - очень легко можно будет устроить "хаос" на сервере.
|
Ответ: Epica online
Цитата:
|
Ответ: Epica online
Хотел бы сделать ММО, но даже если начну - сначала спроектирую систему (в т.ч. обдумаю подобные нюансы)
2RokWeb Движение впринцыпе можно считать на клиенте, а на сервере выполнять проверку между старым положением и новым (учитывая скорость перемещения перса). Таким образом расчёт собственно колизии ведётся на клиенте, а сервер лишь проверяет честность расчёта(проверять расстояние, направление и т.п.). Но всё равно считать что-либо на клиенте потенциально опасно. А в остальном почему не вести расчёт физики прям на сервере? Берём игровые ресурсы (упрощённые... с минимумом вершин, дабы просто сохранять форму геометрии), и считаем колизии... теми же физ движками.. движение мобов имхо можно вообще считать параллельно... при запросе клиентом положения крипа, считывать координаты из отдельного потока (или даж приложения) на клиенте реализовать какую-нибудь экстраполяцию движения (вроде правильно назвал сие действие).. как то так |
Ответ: Epica online
>>А в остальном почему не вести расчёт физики прям на сервере?
Даже я понимаю, что это очень не разумно. Давай ещё графику будем рендерить на сервере, а юзеру картинку посылать. В реквиеме онлайн(там хавок) всякие регдолы, и прочие физобъекты считались на клиентах. |
Ответ: Epica online
регдол - плюшка.
а перемещение крипа полюбому должно считаться на сервере и рассылаться всем клиентам видящим этого крипа. сервер минимум должен расчитать точку, к которой должен идти крип, что бы клиенты могли просчитать процесс перемещениея. но сервер так же должен учитывать и различие высот между точками, и возможно даже наличии препядствий.. в любом случае перекладывать на клиента расчёт перемещения крипов - бред.. хорошо. 10 клиентов видят перед собой 10 крипов. каждый из клиентов будет считать перемещение? а если крипы пассивны и не атакуют пока их не ударить? у каждого клиента будет свои рандомные точки, к которым будут двигаться крипы в неагрессивном состоянии? если расчёт этих рандомных вейпоинтов (по которым лавируют крипы) переложить на сервер, то сервер УЖЕ должен учитывать рельеф ланшафта (разность высот хотябы). Что уже по сути не далеко от расчёта столкновений или делать 1ого из клиентов привилегированным в расчёте, и раздавать инфу всем находящимся в округе игрокам? как то небезопасно что ле.. |
Ответ: Epica online
Дак а где регдолл считается не на клиенте? ИМХО нет такой причины чтоб делать это на сервере
|
Ответ: Epica online
Конкретно у меня сейчас такая мысль: сделать так, чтобы сервер просто посылал координаты, куда переместился монстр, а клиент уже сам рассчитывает как он туда переместился. Не знаю правильно или нет будет если так сделать.
|
Ответ: Epica online
Собственно распределенный вариант: сервер может раздавать каждого монстра для просчета одному из клиентов (случайно). Но при обрыве соединения этого клиента придется передавать права на расчет клиенту, который остался в сети или например ближе всего к монстру.
Собственно чтобы исключить читерство можно давать нескольким ближайшим клиентам на просчет положения, а на сервере синхронизировать (сравнивать). Клиент замеченный в мухляже будет присылать сильно отличающиеся данные. |
Ответ: Epica online
Физика на сервере? Вы чего, совсем разжирели? Ладно если игра завязана на физике (гонки всякие, hl2 deathmatch) В онлайн играх вобще, на мой взгляд, физика не нужна (не путать онлайн с мультиплеером - калибр разный) Рагдоллы все на клиенте.
|
Ответ: Epica online
В любой классической ММО, есть элемент агрессии моба к определённому персонажу - это выдаёт сервер, по разным параметрам (просчёт очень простой, например кто больше дпс наносит).
А клиент который имеет этот самый Агр на себе, и считает этого моба, отсылая только важные и результирующие данные для синхронизации. |
Ответ: Epica online
Цитата:
И тем более агр может очень часто менятся, постоянно перекидывать управление с одного игрока на другого - еще тот бред))) |
Ответ: Epica online
На клиенте считаются только плюшки аля регдоллов.
всё остальное считается на серверах (коими являются огромные системы из немалого числа компов, с немалым числом процессоров...) кто считает иначе - пруфы в студию.. |
Ответ: Epica online
Цитата:
Цитата:
Но тут снова, те же Instanc'ы, или Battleground'ы, они все как отдельные "виртуальные" сектора где игроки взаимодействуют только с друг другом. Но не со всем внешним миром, там же дальность обзора всегда по максимум. В оправдание что моб считается частично на сервере: Есть группы например в том же ВоВ, безобидная семейка оленей, которая бегает вокруг Crossroads, она постоянно перемещается, даже если никого нету рядом, бегает по заданному кругу, он он снова меняется, и не всегда один и тот же, таким образом либо там набор вейпоинтов, и просто рандомно рядом с ними устанавливаются вейпоинты, и моб бежит к ним. Но то что заагренный моб считается пользователем - это вполне логично, если это простой моб, тем более выдать агр пользователю, и сделать удобную систему переключений (переагр), это просто, и серверу это простая посылка двух пакетов тому кто имеет текущий агр, и тому кто новый "считалка". И да, тот же EVE, там вон какие баталии порой бывают, мир огромный, и мобов считать на сервере - было бы глупо, т.к. порой бывают сложные уровни, где скопление хлама, и идёт просчёт поиска пути, который не будет весьма прост т.к. учитывает просто геометрию препятствий, а не какие-то вейпоинты. Тем более ведущие компании используют Cloud'ы, для организации серверов, а там ничего не хранят на жёстком диске. А всё храниться в виртуальной памяти (ОЗУ). И разные станции считают свои части, запросы распределяются между ответственными над ними станциями, и затем отправляются клиентами, список который относительно тоже просчитывается отдельной станцией, т.к. чем точнее список, тем он меньше и меньше лагов будет, меньше трафика и т.п. Вообще структура сервера, читайте книги от всяких гуру на эту тему. На клиента тоже многое не свалишь. Если это важные структурные просчёты - сервер, если это большие технические (поиск пути, физика и т.п.), клиент. Тут и думать нечего. |
Ответ: Epica online
убедительно угу
|
Ответ: Epica online
Внимание! Сегодня в 0.00 по Москве состоится запуск новой версии сервера с включенным ПвП.
Все кто сможет подключится в это время, милости просим, будем тестить массово:) Ближе к запуску сервера отпишусь об изменениях и новшествах игры. |
Часовой пояс GMT +4, время: 21:45. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot