Изменения

Перейти к навигации Перейти к поиску
5321 байт добавлено ,  21:02, 2 декабря 2014
Строка 50: Строка 50:

Лгать игроку, как надо играть — это почти всегда нехорошо (да, я знаю о ''[[Shadow of the Colossus]]'', и даже в ней я не уверен). Хуже, игра не даёт мыслить всесторонне: Бенуа нейтрализовал врагов, не пролив и капли крови. За такое надо награждать, а не игнорировать. Одно дело — ради драмы поставить игрока в [[моральная дилемма|моральную дилемму]]. Но тут никакой дилеммы, просто ошибка в уровне — и условие отъёма печеньки.
Лгать игроку, как надо играть — это почти всегда нехорошо (да, я знаю о ''[[Shadow of the Colossus]]'', и даже в ней я не уверен). Хуже, игра не даёт мыслить всесторонне: Бенуа нейтрализовал врагов, не пролив и капли крови. За такое надо награждать, а не игнорировать. Одно дело — ради драмы поставить игрока в [[моральная дилемма|моральную дилемму]]. Но тут никакой дилеммы, просто ошибка в уровне — и условие отъёма печеньки.
== Плохое оборонительное поведение в [[RTS]] ==
Исторический пример: когда герцог Вильгельм Нормандский Завоеватель вторгся в Англию в 1066 году, он столкнулся в битве при Гастингсе с королём Гарольдом. Солдаты Гарольда сделали плотную стену щитов, через которую не могла пробиться ни пехота, ни конница. После нескольких часов неудач Вильгельм приказал притворное отступление, и полки Гарольда, посчитав, что победа за ними, нарушили строй и пошли в погоню. Как только стена исчезла, Вильгельм развернул людей и разбил Гарольда. Вот почему, даже через тысячу лет, девиз британского монарха всё ещё по-французски.
Это же случается в ''[[StarCraft]]''. Пусть нам расскажет некто Илья:
{{q|Можно приказать юнитам держать позицию или стоять. Когда они стоят и их бьют, они бегут за тем, кто это сделал, убивают его, снова попадают под огонь, снова бегут, пока всех из не порешат на вражеской базе. Если они держат позицию и их бьют, отбивается один или двое, а остальные стоят — их тоже легко перебить. Если нужно шпионить за врагом, отпустишь шпиона на секунду, и он начнёт стрелять. Враг поймёт, что случилось, приведёт детектора, и конец шпиону.|Илья}}
В действительности тут два отдельных вопроса: стрелять ли и догонять ли. Разведывательный юнит не должен начинать бой, если ему явно не приказали. Юнит, которому приказано стоять на месте, никогда не должен преследовать, если ему явно не приказали. Если есть два поведения, преследовать ли, и два поведения, стрелять ли, получается таблица из четырёх оборонительных приказов.
{| class="wikitable"
|-
!   !! Стрелять при виде !! Стрелять, если обстреливают
|-
! Преследовать || Атаковать при виде || Отвечать на агрессию
|-
! Не преследовать || Мешать проходу || Оборонять позицию
|}
Стрелять, когда стреляют по тебе, позволяет юниту стоять за себя, но запрещает вступать в ненужные бои. А что касается шпионов, лучше всего не давать ему оружия, или запрограммировать, чтобы он не вступал в бой сам.
Конечно, при желании вещи можно усложнить. Если поле зрения шире, чем дальность оружия, должен ли он двигаться, чтобы выйти на дистанцию? Нужен ли ещё один вариант поведения при преследовании? С другой стороны, если делаешь несложную игру, я бы ограничился двумя оборонительными приказами — «атаковать при виде» и «мешать проходу»<ref>И пришли к тому, с чего начинали. Атаковать при виде — ''stop'', мешать проходу — ''hold position''. — ''Переводчик.''</ref>.
Но жалоба Ильи ещё и в том, что юниты стоят на месте, когда их бьют — то есть, бойцы в ''StarCtaft'' просто не сыграны. Реализуйте политику трёх мушкетёров — один за всех, все за одного. Когда нападают на юнита в оборонной стойке, он и остальные юниты, которым дали один и тот же приказ в одно и то же время (то есть, юниты в группе, которая этот приказ получила) должны отвечать вместе. Я понимаю, что это сделать нетривиально; надо держать больше информации. Но выводит из себя, когда один юнит отстреливается из последних сил, а остальные валяют дурака — не этому учат солдат.


== Примечания ==
== Примечания ==
20 184

правки

Навигация