Жизни каждого NPC важны: как и зачем я ограничил численность населения в играх GTA

Вы когда-нибудь задумывались о том, как игралась бы GTA, в которой убийство случайного NPC влияло бы на общую численность населения игры? Один мой знакомый однажды задумался об этом, а я, как человек, падкий на эксперименты, смог это реализовать.

Мод доступен для скачивания на <a href="https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fgithub.com%2Fsruckstar%2Flimited-population%2Freleases&postId=2269392" rel="nofollow noreferrer noopener" target="_blank">GitHub</a>
Мод доступен для скачивания на GitHub

Сложность реализации состояла в том, что NPC ни в одной GTA не имеют какой-то уникальности и просто генерируются общим потоком. В старых частях и вовсе часто можно встретить одинаковых персонажей, бродящих по улицам. В GTA 5 с этим дела обстоят лучше, но какой-то эволюции в системе генерации всё равно не произошло.

Поэтому вместо установки лимитов на генерацию определенных типов NPC пришлось банально понижать всю популяцию игры в целом — но с учетом всего выше описанного, это невозможно как-либо заметить.

Жизни каждого NPC важны: как и зачем я ограничил численность населения в играх GTA

Другой проблемой стало отслеживание количества убийств, совершенных игроком. Я поставил цель установить лимиты в GTA 3, GTA Vice City, GTA San Andreas и GTA 5 (четвёрку миновал из-за отсутствия её у меня на компе). И если в классических GTA есть внутриигровой счетчик, подсчитывающий количество убитых NPC с начала игры, то в GTA 5 его почему-то нет (неужели борьба с жестокостью?). Что же, пришлось написать такой счетчик самостоятельно: я получаю массив всех сгенерированных NPC и отслеживаю, кто из них только что склеил ласты.

Но и на этом проблемы не закончились. Ведь чтобы ограничить перерождение н-пи-сюнов, нужно хотя бы примерно понимать их общее количество. И мы снова утыкаемся в несовершенную систему генерации популяции: ничего подобного игрой не предусмотрено, и максимум, что мы можем вычислить — сколько человек было сгенерировано в зоне прорисовки игрока.

Жизни каждого NPC важны: как и зачем я ограничил численность населения в играх GTA

Благо на ютубе нашелся человек, который посчитал численность мира GTA 5... по количеству жилых домов. Если отбросить всевозможные условности и технические особенности, в штате Сан-Андреас вселенной GTA 5 проживает около 18 тысяч человек.

В общем, если интересно, можете ознакомиться с его анализом подробнее

Мне было лень делать аналогичные расчеты, так что я максимально условно перенес цифры на классические GTA, учитывая объем площади карты:

  • GTA San Andreas — 10 тысяч
  • GTA Vice City — 5 тысяч
  • GTA 3 — 2 тысячи

Таким образом, устраивая мясорубку на какой-нибудь миссии, вы ненароком будете понижать численность мира игры. Счетчик убийств в моде не предусмотрен (то, что на скриншотах в статье, это отладочная информация), но если уронить популяцию в ноль, вы получите пасхалку в виде сообщения на экране. В классических GTA можно отслеживать прогресс в меню статистики.

Так вот, ответ на главный вопрос, а зачем, собственно, я вообще взялся за создание этой модификации?

Во-первых, по приколу. Люблю копаться в реализации нестандартных идей. А во-вторых, эта разработка помогла мне в создании другой модификации для GTA 5, которая тоже влияет на численность популяции, но теперь она зависит от времени суток: больше вы не попадете в пробку на шоссе и дорогах глубокой ночью.

Скачать можно отсюда.

Мод еще нуждается в доработке и не совместим с описанным в этой статье Limited Population, но очень скоро всё это будет исправлено.

7676
32 комментария

Значит расклад такой: на старте игры по стелсу выносишь как маньяк всех копов и военных, а потом проходишь миссии без проблем.

21

мафия будет против.

2

и скрипт на пополнение кладбища из Cannon Fodder

17

Такое бы сделать для RDR2, там люди прям жизнь живут, а не существуют. Ну и так как людей не так уж и много, то каждое убийство было бы более заметно)

6

Там в каждой перестрелке, по глав. квесту, человек 40 убиваешь. В их посёлках живет меньше.

12

Когда в RDR2 после пролога впервые пускают в открытый мир, я наткнулся на человека подковывавшего лошадь у дороги. Поздоровался, он добродушно ответил, но лошадь дёрнулась, мощно лягнув его в висок, и ускакала в поля. Он умер на месте, на фоне удивительной природы, щебетания птиц и журчания речки. Эта ситуация так меня шокировала, что первым желанием было похоронить бедолагу тут же у дороги. Вот реально, в Rdr не хватает только двух вещей: возможности хоронить покойников и торнадо.

6

Круть!
Теперь надо сделать так, чтобы и рост населения был со временем. Статистику по приросту можно взять на каком-нибудь офф сайте штатов (раз действие игры там разворачивается). =D

5