forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на Blitz3D (http://forum.boolean.name/forumdisplay.php?f=14)
-   -   Epica online (http://forum.boolean.name/showthread.php?t=13071)

RokWeb 08.11.2010 21:54

Ответ: Epica online
 
Просто перемещение монстров и игроков считает сервер, на данный момент проблема в том, что мобы "прилетают" к игрокам. МоКа, твою идею с просчетом на стороне клиент - не понял. Если клиенты будут просчитывать перемещение мобов - очень легко можно будет устроить "хаос" на сервере.

DStalk 08.11.2010 22:43

Ответ: Epica online
 
Цитата:

Сообщение от MoKa (Сообщение 167590)
Физику самих игроков не считают на сервере, это будет слишком большая нагрузка.

Не согласен, в линейке например все перемещения и коллизии считает исключительно сервер, для этого и создана геодата. В варкрафте частично сервер (например движения\монстров) - частично клиент.

Моя авка меня гипнотизирует, иногда по 15 минут на нее смотрю, не могу очухаться:)

falcon 08.11.2010 23:22

Ответ: Epica online
 
Хотел бы сделать ММО, но даже если начну - сначала спроектирую систему (в т.ч. обдумаю подобные нюансы)
2RokWeb
Движение впринцыпе можно считать на клиенте, а на сервере выполнять проверку между старым положением и новым (учитывая скорость перемещения перса). Таким образом расчёт собственно колизии ведётся на клиенте, а сервер лишь проверяет честность расчёта(проверять расстояние, направление и т.п.). Но всё равно считать что-либо на клиенте потенциально опасно.
А в остальном почему не вести расчёт физики прям на сервере? Берём игровые ресурсы (упрощённые... с минимумом вершин, дабы просто сохранять форму геометрии), и считаем колизии... теми же физ движками..
движение мобов имхо можно вообще считать параллельно... при запросе клиентом положения крипа, считывать координаты из отдельного потока (или даж приложения) на клиенте реализовать какую-нибудь экстраполяцию движения (вроде правильно назвал сие действие)..
как то так

ARA 08.11.2010 23:37

Ответ: Epica online
 
>>А в остальном почему не вести расчёт физики прям на сервере?
Даже я понимаю, что это очень не разумно. Давай ещё графику будем рендерить на сервере, а юзеру картинку посылать.
В реквиеме онлайн(там хавок) всякие регдолы, и прочие физобъекты считались на клиентах.

falcon 08.11.2010 23:49

Ответ: Epica online
 
регдол - плюшка.
а перемещение крипа полюбому должно считаться на сервере и рассылаться всем клиентам видящим этого крипа.
сервер минимум должен расчитать точку, к которой должен идти крип, что бы клиенты могли просчитать процесс перемещениея.
но сервер так же должен учитывать и различие высот между точками, и возможно даже наличии препядствий..

в любом случае перекладывать на клиента расчёт перемещения крипов - бред..
хорошо. 10 клиентов видят перед собой 10 крипов.
каждый из клиентов будет считать перемещение?
а если крипы пассивны и не атакуют пока их не ударить? у каждого клиента будет свои рандомные точки, к которым будут двигаться крипы в неагрессивном состоянии?
если расчёт этих рандомных вейпоинтов (по которым лавируют крипы) переложить на сервер, то сервер УЖЕ должен учитывать рельеф ланшафта (разность высот хотябы). Что уже по сути не далеко от расчёта столкновений
или делать 1ого из клиентов привилегированным в расчёте, и раздавать инфу всем находящимся в округе игрокам? как то небезопасно что ле..

ABTOMAT 09.11.2010 00:33

Ответ: Epica online
 
Дак а где регдолл считается не на клиенте? ИМХО нет такой причины чтоб делать это на сервере

RokWeb 09.11.2010 00:48

Ответ: Epica online
 
Конкретно у меня сейчас такая мысль: сделать так, чтобы сервер просто посылал координаты, куда переместился монстр, а клиент уже сам рассчитывает как он туда переместился. Не знаю правильно или нет будет если так сделать.

pax 09.11.2010 02:03

Ответ: Epica online
 
Собственно распределенный вариант: сервер может раздавать каждого монстра для просчета одному из клиентов (случайно). Но при обрыве соединения этого клиента придется передавать права на расчет клиенту, который остался в сети или например ближе всего к монстру.
Собственно чтобы исключить читерство можно давать нескольким ближайшим клиентам на просчет положения, а на сервере синхронизировать (сравнивать). Клиент замеченный в мухляже будет присылать сильно отличающиеся данные.

Randomize 09.11.2010 03:44

Ответ: Epica online
 
Физика на сервере? Вы чего, совсем разжирели? Ладно если игра завязана на физике (гонки всякие, hl2 deathmatch) В онлайн играх вобще, на мой взгляд, физика не нужна (не путать онлайн с мультиплеером - калибр разный) Рагдоллы все на клиенте.

moka 09.11.2010 13:37

Ответ: Epica online
 
В любой классической ММО, есть элемент агрессии моба к определённому персонажу - это выдаёт сервер, по разным параметрам (просчёт очень простой, например кто больше дпс наносит).
А клиент который имеет этот самый Агр на себе, и считает этого моба, отсылая только важные и результирующие данные для синхронизации.

DStalk 09.11.2010 14:42

Ответ: Epica online
 
Цитата:

Сообщение от MoKa (Сообщение 167689)
В любой классической ММО, есть элемент агрессии моба к определённому персонажу - это выдаёт сервер, по разным параметрам (просчёт очень простой, например кто больше дпс наносит).
А клиент который имеет этот самый Агр на себе, и считает этого моба, отсылая только важные и результирующие данные для синхронизации.

Во всех крупных мморпг на официальных серверах клиенты никогда не считают мобов. Геодата присутствует и позволяет держать на мощном сервере до 7 тысяч игроков без тормозов.
И тем более агр может очень часто менятся, постоянно перекидывать управление с одного игрока на другого - еще тот бред)))

falcon 09.11.2010 17:32

Ответ: Epica online
 
На клиенте считаются только плюшки аля регдоллов.
всё остальное считается на серверах (коими являются огромные системы из немалого числа компов, с немалым числом процессоров...)
кто считает иначе - пруфы в студию..

moka 09.11.2010 19:59

Ответ: Epica online
 
Цитата:

Сообщение от Dstalk (Сообщение 167705)
Во всех крупных мморпг на официальных серверах клиенты никогда не считают мобов. Геодата присутствует и позволяет держать на мощном сервере до 7 тысяч игроков без тормозов.
И тем более агр может очень часто менятся, постоянно перекидывать управление с одного игрока на другого - еще тот бред)))

Тебе как аргумент пост:
Цитата:

Сообщение от falcon5
На клиенте считаются только плюшки аля регдоллов.
всё остальное считается на серверах (коими являются огромные системы из немалого числа компов, с немалым числом процессоров...)
кто считает иначе - пруфы в студию..

Тот же WoW имеет поиск пути, при этом он весьма не тупой, а может и в сложных уровнях отлично находить кратчайшие пути. Ищеться пользователем.
Но тут снова, те же Instanc'ы, или Battleground'ы, они все как отдельные "виртуальные" сектора где игроки взаимодействуют только с друг другом. Но не со всем внешним миром, там же дальность обзора всегда по максимум.

В оправдание что моб считается частично на сервере:
Есть группы например в том же ВоВ, безобидная семейка оленей, которая бегает вокруг Crossroads, она постоянно перемещается, даже если никого нету рядом, бегает по заданному кругу, он он снова меняется, и не всегда один и тот же, таким образом либо там набор вейпоинтов, и просто рандомно рядом с ними устанавливаются вейпоинты, и моб бежит к ним.
Но то что заагренный моб считается пользователем - это вполне логично, если это простой моб, тем более выдать агр пользователю, и сделать удобную систему переключений (переагр), это просто, и серверу это простая посылка двух пакетов тому кто имеет текущий агр, и тому кто новый "считалка".
И да, тот же EVE, там вон какие баталии порой бывают, мир огромный, и мобов считать на сервере - было бы глупо, т.к. порой бывают сложные уровни, где скопление хлама, и идёт просчёт поиска пути, который не будет весьма прост т.к. учитывает просто геометрию препятствий, а не какие-то вейпоинты.
Тем более ведущие компании используют Cloud'ы, для организации серверов, а там ничего не хранят на жёстком диске. А всё храниться в виртуальной памяти (ОЗУ). И разные станции считают свои части, запросы распределяются между ответственными над ними станциями, и затем отправляются клиентами, список который относительно тоже просчитывается отдельной станцией, т.к. чем точнее список, тем он меньше и меньше лагов будет, меньше трафика и т.п.

Вообще структура сервера, читайте книги от всяких гуру на эту тему.
На клиента тоже многое не свалишь. Если это важные структурные просчёты - сервер, если это большие технические (поиск пути, физика и т.п.), клиент. Тут и думать нечего.

falcon 09.11.2010 20:41

Ответ: Epica online
 
убедительно угу

DStalk 10.11.2010 20:48

Ответ: Epica online
 
Внимание! Сегодня в 0.00 по Москве состоится запуск новой версии сервера с включенным ПвП.
Все кто сможет подключится в это время, милости просим, будем тестить массово:)

Ближе к запуску сервера отпишусь об изменениях и новшествах игры.


Часовой пояс GMT +4, время: 21:45.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot