LoL: кулдауны
Лично я не люблю кулдауны, потому что забываю про них, и кулдаун теряет часть своей эффективности.
Пару месяцев назад я придумал способ, как этого избежать, и вот на днях увидел его в LoL.
Способ правильный и хороший, молодцы!
Итак, у нас есть условная способность, которая увеличивает силу атаки на 900 на 20 секунд. Кулдаун у нее 3 минуты, то есть способность можно применять каждые 3 минуты.
Время действия (uptime) = 20 секунд/3 минуты = 20/180 = 0.12 = 12% времени.
Таким образом, способность «в среднем» дает 900*0.12 = 108 силы атаки: если мы в течение часа будем применять этот кулдаун каждый раз, когда он становится доступным, мы столько и получим — это почти то же самое, что иметь пассивную способность +108.
Разница только в том, что активация способности дает burst, то есть «сконцентрированный» эффект, иногда он нужен, иногда — не обязателен.
Что происходит, когда игрок забывает тупо активировать способность каждые 3 минуты? Средняя эффективность способности начинает стремиться к 0.
Игроки, естественно, или забывают, или прописывают активацию способности в макрос и тоже забывают про нее.
А теперь — решение.
Если у способности прошел кулдаун, то есть игрок может активировать ее в любой момент, но почему-то это не делает, способность дает пассивные +108 силы атаки.
Если игрок активировал способность, то он получает +900/20 секунд, но зато на следующие 3 минуты теряет эти пассивные +108.
Таким образом, эффективность способности всегда «в среднем» одна и та же, активирует ее игрок тогда тогда, когда нужен именно burst-а, а не поддержания эффективности.
Мандарины!
Business-level fluency in Mandarin Chinese a plus. ‘Cultural’ fluency in Chinese culture, especially Chinese gaming culture, a plus.
Требования в геймдизайнеру.
«А реалисты учат китайский», ага. (Анекдот).
AI в Сталкере
Читаю про AI в Сталкере.
У меня вопрос только один: кто там дурак — геймдизайнер, который дал программистам задание сделать независимый от игрока мир «и чтобы боты могли сами разгадать тайну Зоны» или руководство проекта, которое не уследило за этим и дали возможность программистам долго и безуспешно придумывать «честный» AI?
Я был очень счастлив, когда я прошёлся за сталкером с одного уровня на другой, смотрел, как он ищет артефакты, находит их, потом возвращается на уровень к торговцу, подходит, торгует, выбирает новое задание и идёт дальше – жаль, что это не вошло в оригинальную игру.
То, что программисты честно взялись за интересную задачу, не задавая вопросов — вполне понятно. Оставленные без присмотра программисты и не такое натворить могут.
А разгадка проста: AI в играх не должен быть правдивым, а всего-навсего должен выглядеть правдоподобным.
Разница, на самом-то деле, огромна.
Вы, например, Fallout 2 помните? Вас не смущает, что на выходе из деревни вы видите чувака, которого придется месить в конце на базе, а после нахождения GECK-а внезапно всю деревню похищают? Или, например, на вас нападают рейнджеры, если вы плохой?
Первое — скриптованная сцена, второе — триггер, расставленный гемдизайнером. Что удивительно — главный злодей не решает сам выйти из базы, пройтись по миру и «случайно» встретиться с вами, рейнджеры не читают газет, из которых узнают, что вы поплохели, и не идут сами охотиться на вас.
Тем не менее, мир целостен, и игрок понимает «я плохой — на меня нападают хорошие», в то время, как это простая проверка «если карма меньше Х», безо всяких нейронных сетей и прочего говна. У игрока не возникает вопросов «а существует ли этот случайный корован после того, как я уйду с карты?». Нет, не существует.
Написать хороший, пусть даже «устойчивый к случайностям» сценарий в разы проще, чем пытаться делать настоящий AI.
Конкретно применительно к Сталкеру я бы сделал все проще: нагенерил несколько типовых сценок, типа «спасение NPC от волков», «спасение тебя NPC-ём», «смерть NPC», а потом бы «скармливал» игроку, до смерти NPC:
Берем несколько («пять», больше игрок просто не запомнит) случайных NPC, сводим их с игроком. Сводим их тупо, безо всяких «а на самом деле NPC в другой зоне, хотя игрок про это не знает». (Вообще, делать что-то, о чем игрок не знает и никогда не увидит — чрезвычайно тупое занятие). Сводим через какие-то промежутки времени («каждые 20 минут»).
NPC умер, желательно в присутствии игрока — замечательно, факт смерти отметили, перестаем подсовывать игроку этого NPC, вводим следующего.
Игрок не только не заметит подвоха, но и будет рад: кругом — знакомые лица.
Когда я в первый раз играл в «Сталкера», я специально искал следы умного AI. Кончилось все тем, что я несколько раз видел NPC с одним и тем же именем в разных зонах. И, собственно, всё.
Подобный эффект достигается, кстати, безо всяких AI, если дать NPC повторяющиеся имена. И я не шучу.
«Честный» интеллект хорош для игры, типа Sims 3 — когда персонажи живут на экране, а игрок за ними наблюдает. Тогда это «в тему». Тем не менее, AI в Sims не сложнее амебы, а игра все равно в топах по продажам.
Что лишний раз доказывает.
Пророк
было очень забавно смотреть как то, что он написал год назад в своем блоге, разработчики анонсировали на близзконе на вов:катаклизм.