» Новости
» Регистрация :: Вход
» Форумы сайта :: IRC-чат
» Файловый архив
» Все статьи :: Все обзоры
» Галерея
» Поиск
 
Клиент-сервер в HL и CS, Newbie e-mail автора
Вопросы ширины канала
.: Просмотров: 2740 :: Печатать текущую страницу :: Печатать все страницы :.
Предыдущая страница Все страницы: Следующая страница

" Перевод: Newbie

" Оригинал статьи

Вопросы ширины канала

Основная проблема с тем, что послан может быть только конечный объем данных состоит в том, что если в какой то момент происходит столько событий, что сервер вынужден послать больше данных, чем клиент способен принять, чем-то придется пожертвовать. Что же произойдет если какие то данные - потенциально критичные данные, например выстрел игрока - просто не были посланы?

Представьте себе игрока с модемом 56k. В данном случае скорость передачи от клиента ксерверу составляет 3 килобайта в секунду, а от сервера к клиенту - 5 килобайт в секунду(большинство типов соединения имеют асинхронны, то есть в одном направлении могутпередавать быстрее чем в другом).

Для начала наш игрок ходит в пустой части карты. ничего особенного не происходит, кромесмены его позиции и клиент передает минимум данных серверу - грубо говоря 1 килобайт всекунду. Соответственно и серверу нечего сообщать клиенту, так как рядом с ним ничего непроисходит.

Теперь наш игрок сворачивает за угол и оказывается в самом центре боя. Неожиданно егоклиент должен получить множество информации - вокруг много игроков, много выстрелов,гранаты летают и т.д. Сервер начинает усиленно передавать и в какой то момент долженпослать 10 килобайт данных в секунду, но наш клиент может принять только 5. Чтопроисходит в результате? Сервер просто не может передать полные 10 килобайт и долженвыбрать, какие 5 отбросить, а какие 5 все таки послать.

Как вы можете себе представить - Это Не Есть Хорошо.

Как именно это делается относится к тому, как именно организовано общение. Честно говоря, сервер может отбросить достаточно много данных ничего в реальности, не испортив для клиента.

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

Представьте что сервер сообщает клиенту о происходящем только раз в 5 секунд. Клиентбудет видеть, как игроки перескакивают на огромные расстояния, вообще не будет видетьгранат и вероятно будет умирать так и не увидев противника.

Теперь представим обновление раз в секунду. Улучшение будет значительным - игроки будутдвигаться почти плавно, гранаты будут видны, но прицеливание будет все равно значительнозатруднено.

Теперь вообразим обновление 25 раз в секунду. наш игрок в деле! Клиент обновляетсянастолько часто, что достигается почти полная иллюзия естественности движения.

Однако здесь то и кроется конфликт. Чем чаще сервер посылает обновления, тем большеданных в секунду необходимо передать. Если данных слишком много, если их больше чем каналклиента может выдержать, сервер начнет отбрасывать данные.

Когда это происходит, сервер просто временно уменьшает частоту обновлений. Мир со стороныигрока станет более дискретным, но останется функциональным.

Если напротив, клиент посылает слишком много данных серверу, клиент уменьшит частотусвоих обновлений.

Важно помнить, что чем больше событий происходит вокруг игрока, тем больше данныхпосылается с каждым обновлением. Поэтому 35 обновлений в секунду могут работать идеальнона пустынной карте, но начнут "лагать" в бою.

Именно здесь игрок может приложить свою руку при настройке клиента. Ширина канала -величина фиксированная, но количество обновлений полностью в руках пользователя. Этодает игроку грубый, но эффективный контроль над количеством посылаемых данных (грубыйпотом, что количество данных, посылаемых за раз не постоянно и контроля над этим упользователя нет).

Сетевая настройка в Half-life - это вопрос знания того, какова ширина канала в вашемраспоряжении и вычисления сколько обновлений вы можете выдержать без нарушений связи вразгар боя.

Предыдущая страница Все страницы: Следующая страница
Реклама

 
Наша-Life
Свяжитесь с нами
Экспорт новостей в RSS 2.0