LINUX.ORG.RU
ФорумTalks

Поразмышляем вместе?


0

0

насчет клиент-серверного взаимодействия в 3morpg? Конкретно интересует передвижение. Игрок может ходить прямо и по диагонали. Допустим он отсылает серверу сообщение что перешел вверх. В ответ получает полную распечатку кто куда перешел(в том числе и он), на основании чего осуществляет перерисовку. Но это очень муторно(обработка на стороне клиента,ресурсов мало), жрет кучу трафика(линия сильно ограничена) и т.д

Есть идеи? Примеры реализации вышеперечисленого и предложеного?

Есть заинтересованные j2me разработчики?

ИМХО, подругому никак. Если только упаковывать передвижения пачками и отсылать не так часто. При этом ведь не на каждый кадр всё двигается, выйдет 2-3 пакета на кадр.

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

>ИМХО, подругому никак. Если только упаковывать передвижения пачками и отсылать не так часто. При этом ведь не на каждый кадр всё двигается, выйдет 2-3 пакета на кадр.

Думаю будет скрытая система ходов. Тоесть пока игрок передвигается исполняется ход. Тоесть пара ходов в секунду(исключает спидхак). Если изменений в округе нет, то ничего не отсылается. Если игрок двинулся-то только его координаты.

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

Тоесть 1 кадр-1 пакет.Но 2 это мысль - меьше тормозов для юзера, но больше траф. Надо думать

Motiv_studenta ★★
() автор топика

MUD - наше всё! :)

А вообще я уже обдумываю MMORPG. И уже придумал, как сделать сетевое взаимодействие без сетевого движка. Надо всего лишь сделать терминальную систему...

Quasar ★★★★★
()

imho имеет смысл часто передовать перемещения только тех объектов, которые близко к юзеру/экрану. Остальное реже.

YesSSS ★★★
()

клиенты работают по multicast протоколам, то есть клиент в резултате отсылает своё перемещение/действие сразу всем находящимся например в одной локации. Сервер принимает сообщения от всех клиентов, подтверждает их корректность и задаёт отсчёт тиков.

Нагрузка на сервер существенно снижается.

Хочешь существенно снизить нагрузку на клиенте - забудь про java и прочие виртуальные машины :(

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

>клиенты работают по multicast протоколам, то есть клиент в резултате отсылает своё перемещение/действие сразу всем находящимся например в одной локации. Сервер принимает сообщения от всех клиентов, подтверждает их корректность и задаёт отсчёт тиков.

Интересная идея. Только рассинхронизация большая. Все равно помойму перемещения всех в течении хода в один пакет засунуть

j2me не так плох. Простейшую обработку сетевых пакетов и отрисовка полученного-не так много и с этим справляется на ура

Сервер, по крайней мере прототип, пишется на питоне

Motiv_studenta ★★
() автор топика

На сервер передаётся скорость игрока и направление движения. А точнее, изменение скорости и направления. Обработка на стороне сервера, трафика минимум.

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

>На сервер передаётся скорость игрока и направление движения. А точнее, изменение скорости и направления. Обработка на стороне сервера, трафика минимум.

Скорость зачем? Это и в клиенте прописать можно. Заодно при западздывании пакета можно ускорится, чтобы вписаться в нужную клетку=)

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

Скорость может меняться. Шаг/бег/маунт/спеллы замедления/ускорения.

Xellos ★★★★★
()

Собственно, есть всего два варианта.

1) Карта мира только на сервере - тогда нужно каждый раз передавать клиенту данные.

2) Карта мира и на сервере, и на клиенте. Тут уже открываются возможности для оптимизации трафика и выч. ресурсов.

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

Я планировал 2-ой вариант. Хотя возможно будет как в УО. С одной стороны-канал мелкий, с другой вычислительная мощность тоже не большая. Ладно поразмышляю, спасибо

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