Значение жизни каждого NPC: почему и как я регулирую численность населения в играх GTA
Вы когда-нибудь задумывались о том, как игралась бы GTA, в которой убийство случайного NPC влияло бы на общую численность населения игры? Один мой знакомый однажды задумался об этом, а я, как человек, падкий на эксперименты, смог это реализовать.
Сложность реализации состояла в том, что NPC ни в одной GTA не имеют какой-то уникальности и просто генерируются общим потоком. В старых частях и вовсе часто можно встретить одинаковых персонажей, бродящих по улицам. В GTA 5 с этим дела обстоят лучше, но какой-то эволюции в системе генерации всё равно не произошло.
Поэтому вместо установки лимитов на генерацию определенных типов NPC пришлось банально понижать всю популяцию игры в целом — но с учетом всего выше описанного, это невозможно как-либо заметить.
Другой проблемой стало отслеживание количества убийств, совершенных игроком. Я поставил цель установить лимиты в GTA 3, GTA Vice City, GTA San Andreas и GTA 5 (четвёрку миновал из-за отсутствия её у меня на компе). И если в классических GTA есть внутриигровой счетчик, подсчитывающий количество убитых NPC с начала игры, то в GTA 5 его почему-то нет (неужели борьба с жестокостью?). Что же, пришлось написать такой счетчик самостоятельно: я получаю массив всех сгенерированных NPC и отслеживаю, кто из них только что склеил ласты.
Но и на этом проблемы не закончились. Ведь чтобы ограничить перерождение н-пи-сюнов, нужно хотя бы примерно понимать их общее количество. И мы снова утыкаемся в несовершенную систему генерации популяции: ничего подобного игрой не предусмотрено, и максимум, что мы можем вычислить — сколько человек было сгенерировано в зоне прорисовки игрока.
Благо на ютубе нашелся человек, который посчитал численность мира GTA 5… по количеству жилых домов. Если отбросить всевозможные условности и технические особенности, в штате Сан-Андреас вселенной GTA 5 проживает около 18 тысяч человек.
Мне было лень делать аналогичные расчеты, так что я максимально условно перенес цифры на классические GTA, учитывая объем площади карты:
- GTA San Andreas — 10 тысяч
- GTA Vice City — 5 тысяч
- GTA 3 — 2 тысячи
Таким образом, устраивая мясорубку на какой-нибудь миссии, вы ненароком будете понижать численность мира игры. Счетчик убийств в моде не предусмотрен (то, что на скриншотах в статье, это отладочная информация), но если уронить популяцию в ноль, вы получите пасхалку в виде сообщения на экране. В классических GTA можно отслеживать прогресс в меню статистики.
Так вот, ответ на главный вопрос, а зачем, собственно, я вообще взялся за создание этой модификации?
Во-первых, по приколу. Люблю копаться в реализации нестандартных идей. А во-вторых, эта разработка помогла мне в создании другой модификации для GTA 5, которая тоже влияет на численность популяции, но теперь она зависит от времени суток: больше вы не попадете в пробку на шоссе и дорогах глубокой ночью.
Мод еще нуждается в доработке и не совместим с описанным в этой статье Limited Population, но очень скоро всё это будет исправлено.


Звезда «Обители зла» объяснил, почему решил отказаться от тренировок перед съёмками
Состоялся релиз тизера второго сезона аниме «Аля иногда кокетничает со мной по-русски»
HBO показала палочки главных героев сериала о Гарри Поттере
Фильм «Человек завтрашнего дня» не будет аналогом «Мстителей» в киновселенной DC Джеймса Ганна
Разработчики Crimson Desert объяснили отказ от использования Unreal Engine 5
Capcom раскрыла технические детали Monster Hunter Wilds для Switch 2
Почему видеоигры переживают золотой век и что будет дальше
Более 85% японских разработчиков видеоигр используют генеративный искусственный интеллект