![]() |
|
||||||||||
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
|
|
|||||
|
Что-то я не нашел ни одного расчета пути перса в своем сообщении. Положения - да. И кагбе это разные вещи - посчитать положение в данный момент и посчитать путь по графу.
Я понимаю, что если алгоритм поиска пути уже есть - чего бы его не подключить не только к мобам, но и к юзерам. Я не понимаю - зачем?
__________________
...вселенская грусть |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну вот, он уже есть на сервере. Смысла клонировать его и на клиенте нет никакого, это бесполезное усложнение.
При расчете пути на клиенте возникнут проблемы синхронизации, т. к. сервер должен получить путь от одного клиента, завалидировать его, переслать на другой клиент (а за это время первый клиент уже убежит), на которых путь может подсчитаться совсем по другому. Последний раз редактировалось etc; 06.05.2010 в 12:16. |
|
|||||
|
стервочка (я мужик)
|
вы все исходите из того, что надо искать путь. а на самом деле надо искать время прибытия, как денис уже сказал. такое время позволяет синхронизировать клиентов максимально точно. путь/время=скорость. как только у вас появится бафы на скорость, лаги в сети или ещё любой дргуой фактор, картинки на клиентах станут разными, если конечно не использовать серверный расчёт времени.
|
|
|||||
|
.
|
Ниже пока не читал. Блуд может все растоптать. Но все же твоя мысль мне нравится)
Добавлено через 22 минуты Цитата:
Добавлено через 33 минуты Считаю, что нужно искать путь. И иногда полезно искать путь (и не только путь) на клиенте. Мобы не в счет. Хотя, можно сделать и подобие SETI@home ) А кто считал нагрузку на сервер на ежесекундный клик на клиенте? Неужели нельзя освободить сервер от таких расчетов и повысить его КПД? Цитата:
Последний раз редактировалось dimarik; 07.05.2010 в 00:11. |
|
|||||
|
Цитата:
Ну у меня сейчас примерно так: - каждую секунду я отсылаю ping - примерно каждую секунду я получаю pong - теперь я знаю лаг и могу делать поправку (по разнице отосланных ping и принятых pong я знаю, какой именно pong вернулся) - клиент присылает "идти туда" - я подписываю это сообщение на сервере: timestamp = (new Date().getTime() - sender.pongTime) - я отсылаю каждому клиенту подписанное сообщение - клиент получает подписанное сообщение - клиент двигает фигурку sender по экрану туда, где он должен быть в данный момент (знаем дату начала движения и скорость). Двигает быстро, независимо от скорости самого sender, таким образом восстанавливая правильную картину мира - далее клиент просто двигает фигурку sender с заданной скоростью в заданном направлении ЗЫ @Котяра - 1 байт прекрасно отсылается из под любой винды ЗЗЫ Касательно графов - клиент полностью рассчитывает путь. После чего отсылает 2 клеточки - ту, в которую он сейчас идет и ту, в которую он пойдет дальше. Сервер валидирует 2 клеточки и отправляет "можно/нельзя". Таким образом клиент заранее знает, как быть дальше и может начинать показ анимации до подтверждения. После первой отсылки и до конца движения отсылается только одна клеточка - та, в которую мы пойдем после текущей точки назначения. И валидация тоже для одной клеточки (грубо говоря nextTarget = {x=10; y=15}).
__________________
...вселенская грусть |
|
|||||
|
стервочка (я мужик)
|
dimarik, ты меня разочаровал.
Цитата:
Цитата:
Цитата:
Цитата:
p.s.: последняя фраза ОЧЕНЬ важна. сперва нужно определиться какой уровень синхронизации нужен, и что зависит от хождения, а потом уже на форуме устраивать холивар. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
Ну если только перс не перемещается из клетки в клетку раз в пять секунд. |
|
|||||
|
Считаем исходящий трафик сервера:
Допустим, мы проходим одну клеточку за 1 секунду. На одну проверку... ну пусть 10 байт. (локация - 2 байта, подлокация - еще 2, клеточка - еще 2, координаты в клеточке - еще 4). Или еще какие-то данные, округлим до 20. Получается целых 1,67 мегабайта за сутки непрерывного перемещения Ужас прям =)
__________________
...вселенская грусть |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Считайте исходящий с клиента, а не с сервера.
А вообще, пишите как хотите, вас же не заставляют писать правильно. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:41. |
|
|
« Предыдущая тема | Следующая тема » |
|
|