Форум → Сообщество → Флейм → алгоритм работы онлайн игр... типа l2
алгоритм работы онлайн игр... типа l2
Страницы: ← Следующая страница →
-
30 октября 2010 г. 20:32, спустя 2 часа 40 минут 37 секунд
А что там знать? все по логике - клиент запрашивает каждую секунду(например) определенные сырые параметры в сервера. Сервер возвращает их клиенту, и на их основе клиент рендерит всю сложившуюся на данный момент картину так, чтобы это было "удобочитаемо"(в плане 3д) для юзера(геймера)….
Может те чето конкретно надо… -
31 октября 2010 г. 17:46, спустя 22 часа 13 минут 39 секунд
по конкретнее… как, допустим, в л2 только что подключившийся клиент знает координаты всех остальных игроков и знает что они делают.. в какую точку бегут… -
31 октября 2010 г. 18:44, спустя 58 минут 26 секунд
На сервере вся та инфа хранится, на сервере…
Сервер передает клиенту всю ту необходимую инфу, при помощи которой необходимо отобразить, что в данный момент, в радиусе ближайших 100(или сколько-там) метров творится…
Где хранится та вся инфа? Да где угодно… но я думаю самый распостраненный способ - возвращать клиенту xml-ку, которую он для себя распарсает, вытянет необходимые параметры - и с помощью них отобразит всю сложившуюся ситуацию(на каких координатах находится твой перс, на каких - враг, на каких - второстепенные персы, какой спелл наносиш в сию секунду ты - а какой перс)… Все просто как дверная ручка. -
31 октября 2010 г. 19:04, спустя 19 минут 17 секунд
возвращать клиенту xml-ку
суров)))Сапожник без сапог -
31 октября 2010 г. 20:35, спустя 1 час 31 минуту 18 секунд
Mr.Pihto, а перехвати снифером трафик погляди что гоняет между сервером и клиентом. -
31 октября 2010 г. 23:22, спустя 2 часа 46 минут 53 секунды
Rotten, на сервере? тобиш это каждый клиент постоянно отсылает инфу серверу?
Дмитрий, точняк -
1 ноября 2010 г. 3:10, спустя 3 часа 48 минут 2 секунды
заходим в игру, делаем запрос на получение инфы об окружающем мире: сервер берет из базы координаты места, в котором мы последний раз уходили в оффлайн, отсылает их нам, основываясь на этих координатах клиент отрисовывает нужную часть игрового мира, так же сервер ищет в списке онлай игроков (это уже хеш таблица) всех тех, кто находится поблизости от нас, и отсалает нам комманды на создание (отрисовку) моделей игроков, далее мы например нажали на бег, отправляется запрос на сервер, если все ок - получаем команду на движение и собственно начинаем двигаться, при этом сервер находит всех игроков, которые находятся поблизости с нами и им отсылает аналогичный пакет, также на сервере проверяется, находится ли определенный чар или моб в поле зрения, если какой-нибдь чар выходит из поля нашего зрения, отсылается пакет на удаление модели персонажа их клиента
да вся инфа хранится на сервере, и при люьом действии идет отправка пакетов сначала на сервер, а потом от сервера к нам и остальным клиентам
инвентарь, делаем запрос на получение своих итемов, итемы хранятся в базе данных, у каждого иетма есть свои параметры: например заточка, количество итемов, является ли оружем или броней и т.п., в том числе и owner_id (владелец данного предмета), соотвественно делается запрос SELECT * FROM items WHERE owner_id = твой, результат отправляется тебеYou can be anything you want to be. Just turn yourself into anything you think that you could ever be. -
-
1 ноября 2010 г. 12:35, спустя 1 час 20 минут 1 секунду
Mr.Pihto, НЕТ, клиент делает запрос к серверу… а сервер весь готовый результат отсылает.. -
1 ноября 2010 г. 14:16, спустя 1 час 41 минуту 51 секунду
ну так на сервере откудато должны быть координаты игроков чтоб отослать новому клиенту.. и координаты должны быть свежие.. а чтоб такое получилось то каждый клиент допустим ежесекундно должын слать свои координаты -
1 ноября 2010 г. 14:29, спустя 12 минут 49 секунд
ежесекундно должын слать свои координаты
в шутер происходит именно так, но по протоколу UDP
если такой механизм ты будешь использовать в таких серверах как La2 (который работает по протоколу TCP), то это просто убьет твой сервер, в ла2 клиент не посылает каждую секунду свои координаты, он один раз посылает запрос на бег в определенную точку и бежит туда, при этом через некоторый промежуток времени сервер сравнивает, правильно ли ты бежишь (т.е. если после пяти секунд движения в клиенте ты пробежал на 5 метров больше, то сервер отсылает пакет на возврат тебя на 5 метров назад)Спустя 40 сек.Mr.Pihto, а перехвати снифером трафик погляди что гоняет между сервером и клиентом.
не самая удачная мысль, т.к. тот же самый La2 использует алгоритм blowfish для шифрования данныхYou can be anything you want to be. Just turn yourself into anything you think that you could ever be. -
1 ноября 2010 г. 14:29, спустя 1 секунду
Ну я имею ввиду, что делая запрос - клиент вместе с этим запросом высылает свои параметры(местонахождения, действия чара и тд)…
Короче - это как в аджаксе: посылая запрос, ты цепляешь к гет/пост строке определённые параметры(user/other db record id, etc), и на основании этого айди (а в случае онлайн-игр - общей инфы) - сервер строит всю картину, и также возвращает некие результаты, с помощью которых клиент сможет отобразить все действие на компе… -
1 ноября 2010 г. 14:35, спустя 6 минут 8 секунд
если такой механизм ты будешь использовать в таких серверах как La2 (который работает по протоколу TCP)
только сервер авторизации, игровой по юдп. пакеты насколько я помню подписываются, но независимым от прошлого пакета ключем, иначе сетевые лаги бы приводили к падению клиентаСапожник без сапог -
1 ноября 2010 г. 14:42, спустя 6 минут 19 секунд
phpdude, и тот и другой TCPYou can be anything you want to be. Just turn yourself into anything you think that you could ever be.
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!