Отправляет email-рассылки с помощью сервиса Sendsay

Новости мира WarCraft3

  Все выпуски  

Новости мира WarCraft3 #39


Информационный Канал Subscribe.Ru




Новости мира WarCraft 3

Выпуск #39 - 13 декабря 2003 года

  • В рассылке появляется новый раздел - Реплеи. Вести его будет Vick.
    Сегодня реплеев не очень много, всего шесть, но раздел будет расти. Смотрим и качаем.

  • Обязательно подписывайтесь на рассылку - "Обсуждение WarCraft 3" - http://www.subscribe.ru/catalog/comp.games.warforum

    После подписки присылайте письма на адрес - comp.games.warforum-list@subscribe.ru
  • Новости
    Интервью
    Статьи
    Реплеи

    Новости

    Go4WC3#70 / Go4WC3 Invite #8 - результаты | К оглавлению
  • В очередном Go4WC3 под номером 70 победу и 200 евро одержал голландец 4K.Grubby.

    1 место: 4K.Grubby
    2 место: creepbom
    3 / 4 место: MYM]Bjarke / rS.eTched

    Зарегестрироваться можно на go4wc3.de

  • Также завершился турнир Go4WC3 Invite #8, организованный WC3L и Go4WC3 в котором играли только приглашенные игроки.
    Победил француз aT.IntoX, поднявшийся из лузеров. Наши, к сожалению не прошли.

    1 место - aT.IntoX
    2 место - SK.ToD
    3 место - DSky.eNvious
    4 место - SK.FaTC

    Финал: IntoX def. ToD - 3:2 (replay pack).

  • Arbalet Cup UA - Украина | К оглавлению
    В Украине завершился чемпионат - Arbalet Cup UA проходивший в Мариуполе и собравший 38 игроков.

    Места распределились так:
    1 место - GSC.Tiamat (медаль, мега-кубок, 500 грн)
    2 место - C14'Maloy (медаль, 200 грн)
    3 место - nz.Hot (медаль, 100 грн)

    Сетка лежит здесь.

    Новая бонус-карта / новый аудио-комментарий | К оглавлению
  • Blizzard выложили новую бонус-карту для игры 4x4 и 6x6.
    Карта называется Emerald Gardens.



    Качаем тут.
  • На blizzard.ru появился первый аудио-комментарий, автором которого выступил Vega. Файл весит 9 мб, а игра длится 40 минут, там есть на что посмотреть и, что послушать.
    Игра идет между эльфом и нежитью.

    Качать аудио-коммент

  • Cyberfight Invite - WarCraft III: Анонс | К оглавлению
    Cyberfight.ru анонсировали турнир Cyberfight Invite WarCraft III: TFT, на него приглашены лучшие игроки планеты, в том числе также и наши соотечественники BiGeR и Karma. Всего играть будут 32 человека. Вот они:

    1). Levin - Spar
    2). ToD - Schroet Kommando
    3). BiGeR - Gamepoint.AMD
    4). Eldor- Plan-B
    5). Blatty - Arma Team
    6). LasH - mTw
    7). Taker - mTw
    8). SjoW - Plan B
    9). DIDI8 - GamePoint.AMD
    10). Chemi - Dsky
    11). Mimmox - SoL
    12). Elakeduck
    13). DominatoR - Schroet Kommando
    14). Caf1 - SoL
    15). Karma - FM, The Ancients
    16). ThePotato - incredible Teamaction
    17). EviscreatoR - TeG
    18). Bjarke - MeetYourMarkers
    19). coReY - MeetYourMakers
    20). Creepboom - Dsky
    21). FaTC - Schroet Kommando
    22). Grubby - Four Kings
    23). HoRRoR - pro-Gaming
    24). Miou - Schroet Kommando
    25). Dreamboy - TeG
    26). FuRy - 4Kings
    27). NitemarE - Gamepoint.AMD
    28). Four20 - Gamepoint.AMD
    29). Ghostridah - mTw
    30). HasuObs - Mouz
    31). Spell - Mouz
    32). Zeus - 4Kings


    Первая стадия турнира - групповые матчи, пройдет с 17 по 19 декабря, а вторая стадия - play-off будет сыграна 20 и 21.

    Полные правила смотрите здесь.

    Интервью

    Интервью с русским мапхакером | К оглавлению
    Автор: mrONLINE , Источник: cyberfight.ru , Перевод: r00kie.

    mrONLINE - Сначала я бы хотел поздравить тебя с полученным вчера 39-м уровнем. С кем ты играл когда получал уровень?
    apm70 - Thx :) Я играл против king.crimson и aT-deco

    mrONLINE - Если ты не возражаешь, я бы хотел задать тебе несколко вопросов, ответы на которые КАЖДЫЙ хотел бы услышать. Это ты Deadman-1 и твой RoC аккаунт был удален?
    apm70 - Да, я Deadman-1. Я играл из дома и хотел стать top1 на 3х серверах, поэтому использовал MapHack. Но я проигрывал в RoC на лане из-за него же :( Я не использую MH в TFT, поэтому я присоеденился к команде emax которые тренируются на лане и я выиграл много русских турниров.

    mrONLINE - После просмотра некоторых игр которые ты и ToD закачали, я не увидел никаких подозрительных моментов. Игры выглядели честными. Ты исправился, и сейчас хочешь доказать, что ты не такой, каким тебя считают?
    apm70 - Как я уже сказал, я больше не мапхакер и хочу доказать свой высокий скилл, в любом случае я именно поэтому сейчас №1 :) SK.ToD хороший соперник и мне понравилось его выигрывать :)

    mrONLINE - Есть ли конкуренция между тобой и ToD'ом?
    apm70 - Ммм, конечно каждый хочет стать №1 :) Но я выиграл всех кто пытался забрать мое первое место поэтому я 39lvl а они 36 :)

    mrONLINE - Ты играешь за ночных эльфов в TFT, по-твоему они так хороши?
    apm70 - На некоторых картах NE рулят, на некоторых испытывают проблемы, если соперник не выберет одну из NE мап будет непросто выиграть! Эльфы=Терраны в SC:BW :) Я играю всеми расами :)

    mrONLINE - У тебя есть другие аккаунты?
    apm70 - Ммм, нет :) Иногда я играю CG и только ;) я тренируюсь на лане с Armor'ом (aka ogi-dogi, tam-tapapam, aMp70 :P) и тестирую все расы :) Но на BNet я только эльф :)

    mrONLINE - Топовые игроки редко берут демонхантера с тех пор как вышел TFT, ты считаешь это из-за Бистмастера, или у Варден более сильные спеллы?
    apm70 - Ммм, у DH плохие спеллы и если на нем фокусят он умирает :((( Но в матчапе NE vs NE я беру только DH :) Но если хуман знает это то я беру другого героя :) я универсальный парень :)

    mrONLINE - Есть ли игроки с которыми ты играл действительно хорошие матчи, в которых ты получал удовольствие от игры?
    apm70 - Я люблю 4K.Grubby :))))))) против эльфа он всегда идет в тех и виверн+фарсир+бистмастер :)) Я ДУМАЮ ОН ТОЖЕ ЛЮБИТ МЕНЯ!! :) СПРОСИ ЕГО О НАШЕЙ ЛЮБВИ :)))))

    mrONLINE - Ты считаешь какая-нибудь раса особенно сильна против эльфа?
    apm70 - На каждой карте есть раса которая может выиграть у эльфа... Например я могу играть против орка на любой карте кроме 2rivers

    mrONLINE - Ты вступишь в любую команду, которая будет спонсировать твои поездки на лан-турниры?
    apm70 - Ммм, если если есть некоторые команды, которые хотят взять меня, то конечно мы будем с ними это обсуждать :) Каждый может найти меня в BNet и спросить насчет этого, но важное условие: мне нужна возможность участвовать в европейских и американских турнирах... Если команда может оплачивать мои поездки, я могу к ней присоедениться.

    mrONLINE - Ты готовишся к 1.13? Если да, то что ты будешь делать по-другому?
    apm70 - Я все еще жду 1.13, так как второй экспанд у хумана дисбаланс и не только против NE ... я рад что близзард это исправит ...

    mrONLINE - Были желающие купить твой аккаунт?
    apm70 - Только продавцы :) Но я могу продать его конечно за 300-350$ :)))

    mrONLINE - Почему ты выбрал ник apm70?
    apm70 - :)))))) Armor сказал что это смешной ник :)))) Я взял аккаунт apm70, он взял aMp70 :P И мы хотели сделать их top2: apm70 - №1 aMp - №2 ^^ И, черт побери, ЭТО МОЙ APM! :)

    mrONLINE - Хаха, рассказывай... :О~
    mrONLINE - Хочешь кого-нибудь поблагодарить до того как мы закончим интервью?
    apm70 - Спасибо тебе за интервью, спасибо Grubby за exp :))))

    mrONLINE - Хаха, как мило, спасибо за то что уделил время и поздравляю с 39 уровнем.
    apm70 - Спасибо за поздравления :) cu later :)"

    apm70's Account


    Статьи

    Засорение памяти в Варкрафте | К оглавлению
    Автор: Cacodemon , Источник: blizzard.ru .

    Эта тема в свое время активно обсуждалась на wc3campaigns.com в форуме AI / JASS Vault. Я создаю эту тему для русских пользователей, которые не были на том сайте или не знают язык JASS. Дело в том, что при програмировании на JASS можно практически полностью решить эту проблему, однако пусть целью этой темы будет решение вопроса применительно к "обычным триггерам" (GUI), которыми пользуется большинство. Здесь будем обсуждать возможные пути решения этой проблемы.

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

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

    Варкрафт поддерживает собственный язык программирования JASS, который позволяет управлять игровым процессом и объектами на карте. Для многих пользователей это язык скрыт под интерфейсом редактора - вместо него вы видите набор триггеров, которые представляют из себя "перевод" языка JASS в понятный для большинства пользователей вид. Например, когда вы создаете новый триггер, редактор автоматически добавляет в JASS-код нужные функции - этот процесс для вас незаметен.

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

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

    Вот вам типичный пример. При помощи триггеров вы создаете юнита. При этом выделяется память под этого юнита. Его через какое-то время юнита убивают. Вы думаете, память при этом освобождается? Ничего подобного - есть вероятность, что юнит будет оживлен и т.д. - поэтому он остается в памяти. Но если его никто не собирается оживлять, то зачем зря занимать память? Если вы вызовете действие Remove Unit применительно к этому юниту после смерти, то память освободится. Однако многие из вас делают это при написании триггеров?

    Однако это не самая страшная проблема - подобным засорением памяти можно, в принципе, пренебречь. Вообще можно не морочить себе голову и не читать эту тему - максимум у вас будет несколько десятков мегабайт "мусора" в памяти, которые по сравнению с современными объемами ОЗУ не так уж и значительны. Но если вы используете интенсивное создание объектов в игре в течение длительных промежутков времени, то уже стоит об этом подумать. Возможно, своевременное удаление мусора поможет вам немного увеличить производительность карт с интенсивными триггерами на медленных старых компьютерах.

    Итак, что именно вызывает засорение пямяти?

    Для того чтобы было понятнее, сначала я расскажу о структуре переменных в Варкрафте. Итак, на самом деле в Варкрафте используется всего 5 базовых типов переменных:

    1. Целое число - Integer.
    2. Число с плавающей запятой - Real.
    3. Строка - String.
    4. Булевский тип (правда или ложь) - Boolean.
    5. Указатель - Handle.

    Первые 4 типа знают все триггерщики. О последнем, скорее всего, слышали только программисты. А где же юниты / регионы / доодады / вещи / звуки / камеры и т.д.? Все эти типы являются производными от Handle. Что из себя представляет сам Handle? На самом деле это беззнаковая (у ней нет отрицательных значений) Integer-переменная, которая как видно из названия, указывает на область памяти. В этой области лежит какой-то объект, к которому можно обратиться через эту переменную. Она служит как бы "ярлыком" этого объекта.

    Например, у нас есть переменная типа юнит. Как я уже сказал, переменная такого типа является указателем. Когда мы обращаемся к этой переменной, то на самом деле обращаемся к области в памяти, в которой лежат все данные о нашем юните и на которую ссылается эта переменная. Когда мы триггером создаем нового юнита или регион, функция создания выделяет в памяти место для информации об этом объекте и возвращает указатель на эту область. Все из вас знают Last Created Unit - это переменная типа юнит и она содержит в себе ссылку на область памяти, где хранится последний созданный юнит.

    Итак, почти все типы переменных кроме строк, чисел и булевских выражений представляют из себя объекты, которые можно создавать и уничтожать в процессе игры. Почему "почти все"? Дело в том, что некоторые типы, например, Unit Type - это тот же integer, просто редактор для безопасности показывает его имено как отдельный тип. Отсюда следует, что:

    - Прямоугольники / регионы - Regions.
    - Юниты (в т.ч. здания) - Units.
    - Вещи - Items.
    - Доодады (как объектами из карты можно управлять только разрушаемыми доодадами - Destructible Doodads)
    - Лидерборды / мультиборды (Leaderboards / Multiboards)
    - Диалоги / кнопки диалогов (Dialogs / Dialog buttons)
    - Квесты (Quests)
    - Точки (Points)
    - Камеры (Cameras)
    - Группы (Unit / Player Groups)

    И многие другие типы объектов в игре на самом деле являются производными от указтеля типами. При их создании выделяется определенный объем памяти. Однакоесли юнитов триггерщики еще как-то контроллируют и иногда ненужных юнитов удаляют из памяти (Через Remove Unit), то остальные типа - практически никогда.

    Рассмотрим типичный триггер, который каждую секунду берет всех юнитов в заданном регионе и направляет куда-то. Вот самый просто вариант:

    Event: Every 1 second of Game Time
    Conditions: none
    Actions: Pick Every Unit in (Units in (Какой-то регион)) and order (Picked unit) to (Move to) (Куда-то).

    Рассмотрим этот "безобидный" триггер подробнее.

    Действие Pick Every Unit in (...) работает с группами юнитов (Unit Group). То есть вместо многоточия сюда вставляется какая-то группа, например переменная типа Unit Group. Однако в скобках стоит Units in (регион) - следовательно, эта функция создает новую группу юнитов, выделяет под не память, включает в нее всех юнитов в заданном регионе и возвращает указатель, который передается в действие Pick Every Unit. С этого момента созданная группа все равно остается в памяти и никуда не исчезает, а указатель на нее бесследно теряется. Таким образом мы создали "небольшую кучку мусора" в памяти. Через секунду произойдет то же самое - к этой кучке добавится еще одна. И так далее. Конечно, таким триггером очень сложно засорить память, а вот если период равен 0.01 сек. и создается много объектов, то засорение станет уже значительным.

    Как в нашем случае избавиться от этого? Правильно - не надо терять указатель. Это можно сделать таким образом:

    Event: Every 1 second of Game Time
    Conditions: none
    Actions:

    - Pick Every Unit in (Units in (Какой-то регион)) and order (Picked unit) to (Move to) (Куда-то).
    - Unit Group - Remove (Last Created Unit Group).

    Таким образом мы уничтожили ненужную группу и съэкономили немного памяти. Я не уверен, сработает ли именно этот пример - дело в том, что Units in (...) может не сохранять указатель в Last Created Unit Group, хотя по идее должна. Я могу дома это проверить и точно сказать. Однако принцип вроде должен быть понятен ;)

    Еще один вариант: функция полярного смещения точки (Point With Polar Offset) - при каждом выхове этой функции, она создает лишнюю переменную типа Point в памяти. Однако насколько я знаю, эту функцию тригерщики используют крайне редко, хотя она дает очень интересные возможности. Я предложил вариант этой функции, который не засоряет память однако этот вариант будет интересен пользователям, знающим JASS.

    Это всего лишь два примера, однако все действия, создающие новые объекты в процессе игры без должного контроля будут засорять память. Однако в не очень сложных триггерах этим засорением можно принебречь и не мучаться. В боле сложных это становится более актуальным.

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


    http://www.blizzard.ru/forum/showthread.php?threadid=17254

    Реплеи

    5 реплеев 1vs1 и 1 реплей 2vs2 | К оглавлению
    Ведущий раздела - Vick

    1). aT-InToX(NE) vs. mTw-Tac3r(Orc).
    Оценка игры - 9.67 на replays.net Однозначно - MUST SEE!
    http://war3.replays.net/show.php?id=2039&down=1

    2). 4K.Kaj(NE) vs gmpoAMD.Biger(HU) @ GW, LT
    Одна из игр - WC3L. MUST SEE
    http://www.cyberfight.ru/getfile.php?file_id=15304

    3). SK.MaD]Q[FroG(UD) vs FreeDom.WeRRa(NE) (2 реплея)
    MadFrog применил свою тактику с гаргулиями...
    FreeDom играл арчерами...
    http://www.northrend.ru/replays/madfoq-vs-freedom.rar

    4). L_Clan MyKK(NE) vs Fear(HU) @ TurtleRock
    MyKK не взял бистмастера на Turtle Rock!
    Fear пошел в фаст эксп...
    http://www.northrend.ru/replays/mykk-vs-fear.w3g

    5). 8da.Chinahuman vs 8da.chinastar @ Twisted Meadows
    Хум пошёл в експ, а эльф в тех. Игру можно смотреть как"кайф, какой прикол" или "фу, какое извращение". Но я вам рекомендую. Ну, а если серьёзно, то это тренились Kenshin.WeRRa и ShowTime.WeRRa.
    http://www.northrend.ru/replays/chinahuman-vs-chinastar.w3g

    6). HasuObs & Punisher vs 69)Charlie & 69)Swedish
    Игра месяца на w3community.de Игра 2vs2 с девизом "До последней капли крови!". Три орка и один undead! Сначала неживой заставил использовать телепорт у 69, потом чарли и швед застроили пунишера на его базе. gg? нет! MUST SEE!
    http://www.northrend.ru/replays/2vs2.w3g

    Последнее слово

    Присылайте все вопросы и предложения на lord@northrend.ru.

    Сайт рассылки - http://www.northrend.ru
    Форум - http://northrend.h1.ru/forum.

    Copyright (C) 2003 | TLT)Lord



    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу

    В избранное