Значение жизни каждого 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, но очень скоро всё это будет исправлено.


HEX Collectibles открыла предзаказ на статую охотницы Сильваны Ветрокрылой из Hearthstone
Новый трейлер Ghost of Yotei впечатлил рецензентов
Глава CI Games сообщил об изменениях в графике тестирования Lords of the Fallen II
Microsoft готовит крупное обновление приложения Xbox для Windows 11
It Takes Two выйдет на Nintendo Switch 2 через несколько дней, а обновление будет бесплатным
Косплеер воссоздала образ принцессы Зельды из The Legend of Zelda: Tears of the Kingdom
Авторы Ace Combat 8 выпустили новый трейлер на фоне успешного релиза и проблем на ПК
Режиссер оригинального «Робокопа» Пол Верховен присоединился к работе над новым сериалом