"Какие клетки будет видеть мой юнит, если его поставить вот сюда?"
"Видит ли эту клетку противник?"
Такие вопросы мало волнуют оффлайн-игроков, но являются жизненно важными в сетевой игре. О того, увидит ваш стек противник на ход раньше или позже может зависеть многое. И, тем не менее, даже от опытных игроков можно услышать - "не понимаю, как он меня увидел?" В данной статье я постараюсь вкратце раскрыть основные принципы "зрения".
Для начала - основные понятия, которые применяемые в статье.
Наблюдатель - юнит, у которого мы исследуем "зрение".
Уровень - условная высота клетки. Имеются следующие уровни:
1 - океан, побережье.
2 - равнина, луг, пустыня, лед, тундра.
3 - холм
4 - гора
Лес, джунгли и оазис увеличивают уровень клетки на единицу. Однако это увеличение уровня не влияет на уровень наблюдателя, который на ней находится. Т.е. наблюдатель, находящийся на лысом холме имеет уровень 3, и наблюдатель, находящийся на лесистом холме, тоже имеет уровень 3.
Радиус обзора - величина, характеризующая зрительную способность юнита.
От рождения все юниты имеют радиус обзора = 1. Юниты, получившие прокачку sentry, имеют радиус обзора = 2.
Линия взгляда - линия, вдоль которой юнит может видеть клетки. На картинке стрелками изображены возможные линии взгляда.
Почему стрелки идут именно так? Над объяснением этого я бился несколько дней. Кто хочет вспомнить геометрию - дойдет до этого сам, кто не хочет - тому не зачем забивать себе голову, т.к. в двух словах я это объяснить не смогу.
На картинке показаны стрелки только верхней левой четверти (относительно наблюдателя) плоскости карты. Для остальных четвертей картинка будет симметрична по горизонтали и вертикали.
Принцип "зрения" таков: наблюдатель видит все клетки, через которые проходит его линия взгляда.
Первое правило "зрения": длина линии взгляда (количество последовательных стрелок) равна радиусу обзора юнита.
Второе правило: линия взгляда не может проходить через клетки, уровень которых выше, чем уровень наблюдателя. Например, на этом рисунке изображена колесница с прокачкой "sentry" (т.е имеет радиус обзора=2), однако она не видит тех клеток, для которых линия взгляда проходит через горы/леса.
Третье правило: Клетка, находящаяся на расстоянии радиуса обзора наблюдателя и имеющая уровень, ниже, чем у него, дает дополнительно все свои стрелки. Например, так:
или так:
Четвертое правило: Клетка, находящаяся на расстоянии радиуса видимости, дает все свои стрелки на те клетки, уровень которых выше, чем у наблюдателя. Для данного правила при определении уровня клеток, на которые будут даны стрелки, не учитываются леса, джунгли и оазисы. Т.е. холм с лесом и холм без леса будут считаться уровнем 3.
Например, так: (красными обозначены те стрелки, которые есть у клетки, но она их "не дает", т.к. уровень этих клеток не выше, чем у наблюдателя)
или так:
Также кроме "зрения" юнитов, имеется "зрение" культурных границ. Здесь все просто - представте, что в каждой клетке внутри культурных границ стоит юнит с радиусом обзора = 1. Какие клетки увидят все эти юниты, те клетки и покажет вам культура.
Причем это иногда может давать довольно интересные эффекты. Например, посмотрите на наивного дуболома, который считает, что из-за холма его не видно:
Однако же он видим, т.к. уровень горы - выше, чем уровень холма! А вот если бы на этом холме был лес, тогда действительно, клетка с дуболом была бы темной.
Миссия "Recon".
Для воздушных юнитов имеется возможность выполнять миссию разведки (recon). Суть ее сводится к следующему: вы указывате клетку, на которой нужно выполнить миссию. Тогда вам дается такой обзор (на один ход конечно), как если бы вы поместили в эту клетку юнита с радиусом обзора = 5. Применив вышеизложенный материал, делаем вывод, что такие миссии лучше всего производить в клетках, имеющих максимальный уровень, то бишь на горе. Это даст:
а) Ничто не закроет вам обзор.
б) Почти по всему периметру даст дополнительную еденицу дальности обзора (за исключением тех клеток на периметре, которые содержат гору или лесистый холм).
<div class='quotetop'>Цитата(Ural * 3.5.2008, 21:44) [snapback]246916[/snapback]</div>Я совсем недавно узнал, что горка видит через некоторые "заслоны".А мне казалось, что дуб невидим
Не знал, что есть разница между лысым холмом и лесистым
[/b]
Отличная статья.
Замечательно!!!
Многое прояснилось, спасибо!
Про авиаразведку сущее открытие.
Знаю, подло завелось теперь на земле нашей; думают только, чтобы при них были хлебные стоги, скирды да конные табуны их, да были бы целы в погребах запечатанные меды их. Перенимают черт знает какие бусурманские обычаи; гнушаются языком своим; свой с своим не хочет говорить; свой своего продает, как продают бездушную тварь на торговом рынке. Милость чужого короля, да и не короля, а паскудная милость польского магната, который желтым чеботом своим бьет их в морду, дороже для них всякого братства. Но у последнего подлюки, каков он ни есть, хоть весь извалялся он в саже и в поклонничестве, есть и у того, братцы, крупица русского чувства. И проснется оно когда-нибудь, и ударится он, горемычный, об полы руками, схватит себя за голову...
Н.В. Гоголь, "Тарас Бульба"
Суууупер! Молодец! А про самолеты так вообще!!!
<div class='quotetop'>Цитата(Тактик * 4.5.2008, 23:35) [snapback]246995[/snapback]</div>Нужно строить два луча из центра клетки наблюдателя так, чтобы они проходили через центры двух граней исследуемой клетки. Каких граней - это зависит от того, где находится клетка относительно наблюдателя. Дальше - смотрим, какие центры соседних клеток попадают в полученный сектор (касание тоже засчитывается), в те клетки и пойдут стрелки.Спасибо! А как все-таки определить как проходит линия взгляда? почему именно так?
[/b]
Наверное, я как-то сложно объясняю? (уж как могу )
Тогда не заморачивайся с этим, все равно в игре тебе это не пригодится.
Гораздо проще запомнить расклад.
Браво
в онлайн правда не играю, но и в оффлайне пригодиться