SK | bds, он же Andreas Thorstensson, в декабре 2001 года черкнул занимательную статью, целью которой было пояснить банальные, но в то же время важные команды сетевого кода. Само собой, без мельчайших подробностей. И вот, спустя год, вышло продолжение этого знаменитого и сто раз перечитанного креатива, который в свое время породил массу кривотолков и термины «config-hacks», «interp-cheater». Итак, приступим.

К рассмотрению предлагается феномен «удушья» сервера (он же лаг сервера), от которого и зависят параметры большинства сетевых переменных.
«Удушье» — задержка до времени возможной посылки следующего пакета информации, которое определяется так: (Время посылки)=(Данное время)+ 1 / (значение cl_updaterate). (проще говоря, временное снижение FPS)

То есть, если играть с высоким значением cl_updaterate, то можно заиметь частые лаги, коль пропускная способность канала связи с сервером невелика. При наличии большого количества игроков на фоне низкой пропускной способности канала тоже будет лагать (так как посылается больше информации, а значит, и пакетов). И, наконец, лагать может при низком значении cl_updaterate. Если срабатывает эффект «удушья», то сервер пытается послать пакет клиенту (читайте — игроку) через каждый кадр, нежели ожидать очереди на посылку в момент, наступающий каждые (1/cl_updaterate) секунд, пока не пройдет эффект.

Интерполяция.
Это уже метод движка Half-Life для сохранения позиций игроков, связывая их со временем, в оперативной памяти (да-да, это численные методы :) ). Затем, после сохранения, движок использует переменную ex_correct для анализа архива на предмет нахождения двух наиболее подходящих позиций, куда «поставить» игрока, то есть игрок перемещается с такой же скоростью, как и на сервере, независимо от используемого значения ex_interp (которое приравнивается к 1/cl_updaterate или большему значению). Единственный случай, когда игрок может пройти быстре дефолтной скорости — это после значительной потери пакетов, идущих клиенту, после длительного лага, когда игрок принудительно ставится в нужную позицию, соответствующую данным на сервере, как можно быстрее.

А теперь уже идут команды и переменные…

  • cl_updaterate/cl_cmdrate:

  • Собственно, дефолтные значения этих переменных малы лишь из-за прихоти «игра должна идти нормально под любым видом соединения, в том числе и по Интернету». Вторая причина состоит в особенности HLDS, для которого предусмотрены возможность работать на маломощных машинах и несоздание чрезмерной загрузки процессора. Напомним, что cl_updaterate и cl_cmdrate контролируют траффик от клиента к серверу и обратно, причем чем больше значения этих переменных, тем больше траффик.
    Хотя использование больших значений имеет такую неприятную особенность, как эффект «удушья», который происходит при невозможности пропихнуть весь траффик через канал клиента, а так же увеличивается нагрузка на сервер, которому приходится чаще обмениваться информацией и делать больше расчетов, что, несомненно, загружает процессор сервера и может вызвать лаг на сервере. Естественно, при игре по LAN можно не особо мучаться совестью и ставить немаленькие значения, благо, канал позволяет. :)

  • ex_interp

  • Однозначно самая мистическая и обсуждаемая переменная. Наиболее подходящее для нее значение — это 0.1 , которое стоит по умолчанию. Именно такое значение дает наименьший эффект от небольшого бага, который влиял на ход интерполяции на клиенте и, конечно, на результат, отсылаемый на сервер. Однако, следует учесть, что значение ex_interp можно менять, в отличие от большинства ex_переменных. Рекомендуется поставить значение равным (1/cl_updaterate), так как в этом случае (при отсутствии мини-ЧП в виде лагов или потери пакетов) клиент будет получать обновленную информацию как раз после окончания интерполяции и игроки, объекты будут двигаться плавно, без перерывов. Но учтите, что для полного эффекта нужен достаточно быстрый сервер, который способен посылать (cl_updaterate) пакетов в секунду!

  • sv_lan

  • После того, как CPL (и прочие ей подобные конторы) изменили свои правила сетевых настроек, предписывая ставить бОльшие значения, нежели дефолтные, для cl_updaterate и cl_cmdrate, то было замечено возрастание количества лагов на играх по LAN. А все из-за того, что HLDS в «sv_lan 1″-режиме насильно ставит rate=10000 на каждом клиенте, тем самым облегчая участь ламеров, не занимающихся настройкой. :) Однако следует учесть, что значения выше 20000 просто не будут приняты.

  • ex_extrapmax 1.2

  • Экстраполяция — это то, для чего и делается интерполяция. :) Если клиент не получает информацию о конечной позиции интерполяции (например, при потере пакетов), то движок экстраполирует из интерполяционной функции свою позицию (куда и попадает игрок), как бы «предсказывая» ее. Значение сией переменной суть максимальное время, которое отводится на экстраполяцию позиции игрока (читай — насколько далеко можно уйти без поддержки сервера), причем при превышении лимита времени игрок просто никуда не уйдет, оставшись на последней вычисленной позиции. Эта переменная не изменяется.

  • ex_correct 0

  • Еще один из путей описания интерполяции клиента и «предсказаний». И эта переменная неизменна. :)

  • ex_maxerrordistance 64

  • Если бы ex_correct равнялась 1, то этой переменной можно было бы изменить радиус, в котором бы игрок двигался равномерно от позиции Х в позицию У (как бы минимальный шаг) за время интерполяции, причем при выходе за радиус происходит телепортация в конечное положение (на границу окружности с этим самым радиусом). Увы, ex_correct не изменяет своему серверу, а с ней и ex_maxerrordistance.

  • sys_ticrate

  • А эта переменная описывает framerate сервера. Чем больше она, тем больше пакетов можно отсыласть клиентам (если проц позволит :) ).

  • sv_maxupdaterate

  • Этот параметр указывает максимальную частоту обновления сервера; чем больше частота, тем больше пакетов можно закидывать клиентам.

    И пара слов на закуску… Все параметры, по большому счету, зависят от мощности компьютера и пропускной способности канала связи с сервером, причем учтите, что даже при невысоких значениях переменных движок вполне способен нормально обрабатывать информацию! А в хороших условиях (читайте — при игре по LAN) можно даже и побольше поставить, лишь бы сеть позволяла :)

    Удачи!

    (c)Andreas «SK|bds» Thorstensson, translated by BeReZa.
  • Компания Blizzard Entertainment выпустила демо-версию стратегии Warcraft III: Reign of Chaos. В демке вам будут доступны:
  • две вступительные миссии,
  • три полностью новые миссии за Орков,
  • новые карты для игры через Battle.net.
    Скачать демонстрационную версию Warcraft 3 вы можете с этой страницы. Размер: 100 Mb. Линки для скачки тут!

    Донецкий сайт gamelife.org перевели интервью Akiles’ом, испанским квейкером, который занял второе место на WCG 2002 Q3. Читать тут.

    В Киевской Лиги Киберспорта первая дисквалификация за неявки — команда ~(Corsair). Пока не поздно оргкомитет Лиги заменяет ее новой командой — бравыми ребятами Evil People в составе:
  • Ka/7acb (капитан)
  • Oslik
  • TuRk1sH
  • caffboy
  • SalvadorLimones
  • 
    Добавлено: 03.12.2002 - 16:27 Автор: ZeroGravity
    #5
  • Вчера состоялся полу-финальный матч в рамках ClanBase EuroCup 6 Counter-Strike. В этот раз выясняли отношения Dynamic Crew и Ocrana.fi. Победитель этого матча получал оплачиваемую поездку на ЛАН финалы EuroCup 6 в Голландии.

    Ocrana.fi def. Dynamic Crew 32-16 (de_aztec;de_nuke) — полный отчет

    Ocrana.fi def. Dynamic Crew 21-3 at de_aztec — Demo (HLTV).

    Датчане просто не имели шансов. За 2 стороны у финов зажигал diGitaL — бывший игрок команды All*. Также похоже всего были опять использованы НЕ_ОСОБО_ЧЕСТНЫЕ конфиги командой Ocrana.

    Ocrana.fi def. Dynamic Crew 13-11 at nuke — Demo (HLTV).

    Тут датчане показали себя не с самой слабой стороны.
  • В столичном Дворце Спорта 20-22 декабря будет проводится традиционная новогодняя компьютерная ярмарка INTEL. На выставке будут проводится турниры по трем играм:
  • Unreal Tournament 2003
  • ИЛ2: Штурмовик
  • FIFA 2003

    Как сообщает http://www.prozone.ru CPL анонсировала информацию об обеспечении своих турниров графическими ускорителями на базе графических процессоров Nvidia.
    На ближайшем турнире по UT2k3 будет впервые продемонстрированы возможности нового процессора Nvidia — Geforce FX. Для участников турнира предусмотрены сюрпризы — двое победителей получат по PNY Verto GeForce FX, другие же игроки будут соревноваться за GeForce FX в ходе самого турнира. После сделки с Intel, это уже вторая большая сделка CPL с гигантами компьютерной индустрии. Ждем интересной «гонки», с участием Nvidia и ATi.
  • 
    Добавлено: 02.12.2002 - 18:21 Автор: Vegas
    #2
    По сообщению arena.dp.ua в прошедшую субботу в городе Мелитополь прошел достаточно крупный турнир по Старкрафту, собравший около 50 игроков со всей Украины, в том числе и большинство участников финальной части Кубка Украины по компьютерному спорту 2002 года. Так присутствовали VoGG’Nirvana, Enemy, HR.Marine, Patologoanatom, Gosu_LinG.bwt, k7.Zloy, HR.RusH и многие другие отцы.

    $100 призового фонда и места распределились следующим образом:

    1-е место VoGG’Nirvana (50$ + диплом)
    2-е место Enemy (30$ + диплом)
    3-е место HR.RusH (20$ + диплом)
    4-е Topic[MAC]
    5-6 k7.Zloy, Patalogoanatom
    7-8 TT_TOSS, TT~KISS
    9-12 HR.Marine, AW)USA, gosu_Zealot.bwt, Gosu_LinG.bwt

    Полную сетку чемпионата вы можете посмотреть тут, а лучшие реплеи мы постараемся выложить в самое ближайшее время.
    
    Добавлено: 02.12.2002 - 17:36 Автор: kpd.Part1zan
    #17
    Подведем итоги 3-й недели Киевской Лиги Киберспорта!
    Выделим лучшие игры по всем номинациям:

    WarCraft III:

    Enemy lose Lola 1-2 in 3 games

    Enemy def Lola @ Plunder Isle
    Enemy lose Lola @ Tranquil Paths
    Enemy lose Lola @ Tranquil Paths

    В последний момент дорегавшийся в лигу новичок ненашутку удивил Enemy. Выиграв 2:1 у отца StarCraftа. В группе B ситуация становиться поинтересней.

    Quake 3:

    Neo def wargods|drag00n 3-2 in 5 games

    Neo lose wargods|drag00n 3:14 @ ztn3tourney1
    Neo def wargods|drag00n 21:11 @ pro-q3tourney4
    Neo def wargods|drag00n 20:18 @ q3tourney2
    Neo lose wargods|drag00n 7:9 @ pro-q3dm6
    Neo def wargods|drag00n 16:8 @ q3tourney2

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

    Counter-Strike:

    REAL lose m16.powered by @ de_cbble 10:14; @ de_aztec 7:11

    У powered by возникли проблемы с составом и они играли втроем + наемник, но после того как пришел 5-й игрок, всё встало на свои места. Несмотря на это стоит заметить очень неплохую игру в исполнении REAL’ов, которые напрягли папашек.
    
    Добавлено: 02.12.2002 - 15:19 Автор: Dadya[EZ]
    #7
    Прошедший уик-енд во Львове был богат на киберспортивные события: в субботу в новом Назгуле прошел второй турнир лиги по Вару, а в воскресение — турнир по КС 5х5. Кроме того, прошла жеребьевка на Львовскую Counter-Strike Лигу. На сей раз зарегилось 14 человек. Жесткая борьба началась с первого тура, так как скилл примерно 10-игроков довольно близок и предсказать результат большинства боев очень сложно. Тем не менее, явный лидер в Лиге уже определился — это Изуал:
    1. w2h.Izual.bp (U)- 8 points.
    2. Lao~Nz (U,NE)- 6 points.
    3. nn)TCuk*nz (NE)- 4 points.
    4. nz.Nickolas{EZ} (H)- 3 points.
    5-6. w2h.GroundDead.bp (O), Мikrob (NE) — 2 points.
    7-8. Dadya{EZ}(О), w2h.RST.bp (H) — 1 point.

    По итогам двух турниров в отрыв ушел Изуал, остальные идут плотной группой:
    1. w2h.Izual.bp (U)- 16 points.
    2. nn)TCuk*nz (NE)- 8 points.
    3. Dadya{EZ}(О) — 7 points.
    4-5. Lao~Nz (U,NE), nz.Nickolas{EZ}(Н)- 6 points.
    6. w2h.GroundDead.bp (O)- 3 points.
    7-9. nn)humanonly(nz (H), Zeratul (U), Мikrob (NE)- 2 points.
    10-11. w2h.RST.bp (H), nn)Tyapa (NE)- 1 point.


    В чемпе по КС из лидеров львовской контры участвовали только Best One|Nazgul и Ry4eek|TL (по предварительным данным таг ТЛ является не знаком клубной команды, а чем-то вроде девиза =)). Б1 выглядели заметно лучше (правда за Ручьев играл запасной) и выиграли обе карты (продиджи и трейн). В борьбе за третье место ZNK не без труда порулили GT-f.
    1. Best One|Nazgul идут в «Кинопалац».
    2. Ry4eek|TL пьют пиво.
    3. ZNK пьют меньше пива.

    На первый месяц Львовской КС Лиги зарегистрировалось 16 команд, что не может не радовать. В результате жеребьевки команды были разбиты на 3 группы:
    Group A:
    Best One|Nazgul; The Best; Rebel; ЗЛЫЕ; Partizan.
    Group B:
    Ry4eek; Stealth; GT-f; DaS iS; Strikers.
    Group C:
    go2′lvov; DMM; ZNK; 1715; Minion; Bad Block.

    Самая интересная, по-моему, группа С, где на 1-е место могут претендовать go2, Minion & DMM. С Ручьями и Бест Ванами все ясно…
    
    Добавлено: 02.12.2002 - 05:54 Автор: CybermaN
    #1
    Вчера благополучно завершилось несколько интересных матчей в рамках онлайновых лиг TDM EuroCup и TDM Nation Cup, проводимых под эгидой clanbase.com. Результаты игр следующие:

  • EuroCup6 Q3 TDM:

    EYEBallers def. Wutai — 3:0
    EYEBallers def. Wutai — 114:75 @ ospdm5 — (demo POV [EYE]fazz) — [screen]
    EYEBallers def. Wutai — 165:112 @ cpm4 — (demo POV [EYE]fazz) — [screen]
    EYEBallers def. Wutai — 196:130 @ pro-q3dm6 — (demo POV [EYE]fazz) — [screen]

    EYE line-up: anakin, ironbyte(desp), fazz, opium
    Wutai line-up: fhebus, zane, falkieri, twank

    Это была последняя игра 1/4 финала и теперь стали известны полуфинальные пары:

    Against All Authority -vs- Demonic Core
    iCE cLIMBERS -vs- EYEBallers

  • Nations cup III:Q3 TDM:

    Russia lose Denmark1:2
    Russia def. Denmark — 132:113 @ q3dm7
    Russia lose Denmark — 72:128 @ q3dm14tmp
    Russia lose Denmark — 99:108 @ ospdm5

    RUS line-up: mikes, shadzy, cooller, polosatiy
    DK line-up: hazz1, Zyc, Odysseus, primerus

    Italy def. Germany — 2:0
    Italy def. Germany — 106:105 @ prodm6
    Italy def. Germany — 93:90 @ q3dm14tmp

    Netherlands def. Iceland — 2:0
    Netherlands def. Iceland — 99:60 @ q3dm7
    Netherlands def. Iceland — 106:73 @ q3dm14tmp

  • 
    Добавлено: 01.12.2002 - 12:30 Автор: Vegas
    #4
    Для любителей различных стратегий и прочей лабуды из мира Варкрафт выкладываю пару линков на новые статьи на Progamer.ru и Blizzard.ru

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

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

    Plunder Isle в разрезе
    Lost Temple в разрезе
    GnollWood в разрезе

    TillerMaN выложил на сайте своего клана весьма поучительную демку, настоятельно всем советую смотреть.
    Если вы помните TillerMaN в свое время раскачал наиболее сильного пеона на Баттелнете, реплеи всех игр TillerPeon вы можете найти тут.
    
    Добавлено: 01.12.2002 - 07:01 Автор: AD!K
    #5
    Завершилась очередная квалификация на CPL Winter 2002 Event at Dallas, проходившая на этот раз в Northampton, UK .
    Счастливым обладателем оплаченой путёвки в Даллас стала команда mTw.nine, обыграв в супер финале Dynamic Crew на de_train [13-10]! Это была единственная команда, которая составила им конкуренцию…

    Довольно интересный и ожидаемый матч в CS Nations Cup III между Норвегией и Данией закончился технической победой сборной Норвегии….из-за парней из Dynamic Crew, которые находились в отъезде и не могли отстаивать честь своей страны :)

    Также по расписанию сегодня должен состояться бой Russia vs Sweden !!!
    Это должно быть интересно… Пожелаем удачи россиянам!