LINUX.ORG.RU
Ответ на: комментарий от eugene2k

а то у него нет о них информации, с кем же так весело и задорно бегает игрок по карте, как Вы думаете? :)

Откуда у него такая информация, если ты не считаешь удаленность игроков от других игроков? А если считаешь, то это уже и есть bounding sphere.

у тебя в любом разе есть координаты всех объектов в твоей AoI (Area of Interest), посчитать удаление (расстояние между объектами) по координатам - задачка для 7-го класса школы

shty ★★★★★
()
Ответ на: комментарий от Quasar

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

так о чём и сказ :)

shty ★★★★★
()
Ответ на: комментарий от Quasar

shty> хехе :) ладно, полезем поглубже, на самом деле если бы всё считалось в реальном времени на серваке

SecondLife. Работает. Там Havok на серваке. Но большой пинг лучше не иметь.

хех, SL

Second Life is a free 3D virtual world where users can socialize, connect and create using free voice and text chat.

в том же WoW тебя так «отсоциализируют» - мало не покажется, динамика, знаете ли, на порядки отличается

shty ★★★★★
()
Ответ на: комментарий от eugene2k

А посчитать коллизии вида сфера-сфера, надо понимать, сложнее?

для 2-х точечных объектов - как нефиг делать :)

shty ★★★★★
()
Ответ на: комментарий от shty

подбегает 18 аликов в ряд к этим самым оркам и сервер давай лагать, для каждого считать коллиизии

Почему-то в еве, когда 50 капиталов размером около 3 километров в длину каждый прыгают на цино и начинают разбампываться из сферы радиусом в 5 километров, сервер ни фига не загибается. При этом физический движок один и тот же на клиенте и сервере.

INFOMAN ★★★★★
()
Ответ на: комментарий от INFOMAN

Почему-то в еве, когда 50 капиталов размером около 3 километров в длину каждый прыгают на цино и начинают разбампываться из сферы радиусом в 5 километров, сервер ни фига не загибается. При этом физический движок один и тот же на клиенте и сервере.

Вы сами себе ответили на этот вопрос, и сами же выделили (пусть и ссылкой) ключевое место ответа :)

пояснить?

shty ★★★★★
()
Ответ на: комментарий от shty

Сервер не использует данные, просчитанные клиентом. он не доверяет клиенту и просчитывает всё у себя на основании тех же исходных. При том клиенту достаточно считать физику только в одном гриде (радиус которого обычно около 300 — 500 километров), а сервер считает по всей системе. При этом на одном физическом сервере обычно просчитываются сразу несколько систем (за исключением случаев, когда была отправлена заявка на буст системы для флит боя, тогда такая система перемещается на выделенный сервер).

INFOMAN ★★★★★
()

смотри в сторону эмуляторов Ultima Online. Этут путь давно проезжен, возьми например RunUO. Больше открытых и не найдешь. Из закрытых - POL, Sphere. Можешь попробовать раздобыть сорсы сферы на sphereserver.net. Рануо написано на C#, сфера на C++. Рануо держит 10к онлайна, играть конечно невозможно, но сервер не падает. Сфера держит около 500.

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

Когда только появился AION и все начали писать его эмуляторы, то все застопорилось именно на стадии реверс-инженеринга. Удачи.

ciss
()
Ответ на: комментарий от INFOMAN

Сервер не использует данные, просчитанные клиентом. он не доверяет клиенту и просчитывает всё у себя на основании тех же исходных. При том клиенту достаточно считать физику только в одном гриде (радиус которого обычно около 300 — 500 километров), а сервер считает по всей системе. При этом на одном физическом сервере обычно просчитываются сразу несколько систем (за исключением случаев, когда была отправлена заявка на буст системы для флит боя, тогда такая система перемещается на выделенный сервер).

это правильно, хотя и не всегда именно так делается, но я немного про другое

за счёт цикла: пересылка данных серверу - обработка данных сервером - пересылка данных клиенту, создаётся большая задержка которая Вам игру превратит в пошаговую стратегию, в которой человек с меньшим пингом выигрывает в любом случае, соответственно в такое играть никто не будет

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

shty ★★★★★
()

Что курить.. Форумы eathena и manasource.
Еще очень рекомендую RageZone и mmorpg-core (два крупных форума по эмуляторам игровых серверов)

devl547 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.