Team Fortress 2

Team Fortress 2

113 avaliações
50 фактов, найденных в коде TF2
Por Fission Power
Тайны, навечно захороненные в глубинах кода TF2 и только недавно раскопанные
5
2
2
   
Premiar
+ favoritos
Nos favoritos
- favoritos
Вступление
Приветствую вас. Это вторая часть моего руководства о всякой всячине, найденной в глубинах кода TF2, слитого 22.04.2020 окружением Тайлера (который VNN). В прошлом руководстве я подробно описал все находки целого вырезанного режима - Raid Mode, режима налёта, прародителя MvM. Я большой фанат MvM, и мне хотелось сначала разобрать именно эту тему.

https://steamproxy.net/sharedfiles/filedetails/?id=2130708105

Теперь же я публикую остальные находки в виде сборника фактов.
На возможный вопрос "почему именно факты?" отвечу так - это как бы продолжение моей старой линейки руководств "-- фактов о MvM". Ну и - да, в принципе это факты.
Также ещё раз предупрежу, что я не особо разбираюсь в тонкостях C++ (а как раз на этом языке и написан код игры TF2), так что возможны некоторые ошибки. Но и полным нубом в программировании не являюсь, тем более что за всё это время копания в коде игры я немного поднаторел в Си, так что вероятность ошибок минимальна.

Небольшая справка:
"Закомментированное" означает то, что этот кусок кода заключён в двойные косые черты, для компилятора С++ это означает, что код внутри не должен им обрабатываться. Обычно так делают для комментариев внутри кода, но иногда так поступают и с настоящим кодом, который решили оставить в файле, но сделать неиспользуемым.

А знак STAGING_ONLY, по нашей версии, означает то, что код под этим знаком должен выполняться только при особом, опытном режиме, когда разработчики тестят всякие нововведения - оружки, режимы игры, атрибуты, т.д. Для обычной игры (как у нас с вами) этот код не выполняется. И такого в руководстве будет много - этот знак в коде легко найти простым поиском, хе-хе.

Да, на всякий случай. Текст, выделенный белым, содержит ссылку, просто щёлкните на нём.

Ну что, вперёд в неизведанное! В бесконечность кода-спагетти TF2 и за его пределы!


1-10
1.
В релизной версии КПК есть у инженера (строительства) и шпиона (маскировки). Те, кто действительно прошарен в тайнах TF2, могу упомянуть вырезанный КПК подрывника, который был детонатором его шашек динамита (тоже вырезанное оружие). Но вот про КПК шпиона для строительства пока, насколько я могу судить, не упоминал никто. Похоже, я добрался до самого низа айсберг~ 404UNF вовремя ткнул меня в видео shounic'а, когда я расспросил его об этом, так что да, уже давно добрались.
В общем: на этапе проработки режима MvM (уже после отхода от рейдовской концепции) шпиону предполагалось выдавать КПК, с помощью которого он мог строить некие ловушки (о них позже). С отказом от всей концепции ловушек и их функций отпала надобность и в отдельном КПК.

2.3.)
Гвоздь программы: две неиспользуемые фляги! Собственно, поэтому и занимает место двух фактов сразу.

В файлах кода постоянно упоминаются семь типов банок, и кроме пяти релизных (криты, убер, улучшение, патроны и телепорт), есть ещё две: RADIUS_STEALTH (радиус невидимости) и SEE_CASH_THROUGH_WALL (видеть деньги сквозь стены), причём вторая фляга под знаком STAGING_ONLY.
Со вторым понятно всё более-менее из названия, а вот что с первым - не особо на первый взгляд. Что это за такой радиус невидимости? Я долго думал, что эта фляга давала невидимость или увеличивала радиус обнаружения скрытых робо-шпионов шпионом-человеком (вы же в курсе, что он так может делать?). Было два основных предположения - эта фляга давала невидимость (но тогда непонятно, почему в названии есть слово "радиус") или она могла повышать радиус обнаружения шпионами невидимых робо-шпионов. Однако мне посчастливилось найти зацепку в коде, через которую я вышел на файл КПК шпиона, о котором я рассказал раньше. И там... в общем, скорее всего, эта фляга глушила роботов, наподобие жучков. Этому есть и косвенное подтверждение: неиспользованные звуковые файлы медика (айн, цвай) и пулемётчика (раз, два) о глушении роботов. А причём тут невидимость? ... ну, наверно, под "невидимостью" и имелся этот эффект глушения, типа роботы под эффектом жучка не видят людей, я хз кароч. Ох, много раз вы ещё это услышите...

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

Да, и вот ещё моя догадка, это не факт, ну и ладно. Когда кто-то активировал флягу видения денег сквозь стены, её эффект должен был распространяться на всех членов команды. И более того, те неиспользуемые реплики про деньги должны были произноситься именно тогда, когда её активировали. Ну сами посудите. Пулемётчик говорит: "Помогите мне собрать деньги", медик - "Внимание всем! ДЕНЬГИ НА ХАЛЯВУ!!", и реплика инженера, которая меня и натолкнула на эту мысль: "У-ух! Только посмотрите на все эти деньги!". Как вам такая догадка, а, товарищи? Если есть дополнения или возражения - добро пожаловать в комментарии.

4.
В файлах есть описание босса-заготовки, называемого base_boss (базовый босс), созданного, как я думаю, уже после отхода от старых рейдовских концепций боссов (подробный разбор одного из боссов вырезанного режима Raid Mode можно почитать в моём прошлом руководстве). Его скорость была 75 HU/с (прямо как у танка, вот же совпадение), тоже есть скрипты для "выпускания огня" при потере каждых 10% жизни, как и у рейдовского босса, а ещё отпихивает при движении людей и давит их, если их зажали, а турели давит сразу. Как-то много совпадений с танком, не находите?

5.
Ещё моменты, связанные с базовым боссом и заслуживающие отдельного места. У него была интересная особенность - динамическое изменение количества дропающихся денег. В зависимости от оставшегося... чего-то, какого-то количества денег (вот только непонятно, у игрока или у роботов в волне) он бы выбрасывал разное количество кредитов после смерти.
Думаю, этого не хватает релизному MvM, было бы здорово, например, привязывать увеличение кол-ва выпавших кредитов от способа убийства. К мечу подрывника, вот так. Тогда стиль рыцаря был бы более полезен в MvM!

6.
Вот ещё факт вдобавок к двум предыдущим: у базового босса была ограниченная скорость поворота, всего 25. Как вы знаете, такую механику не оставили в релизном MvM, все боты, включая гигантов и боссов, поворачиваются с неограниченной скоростью. Скорее всего, эту фичу убрали, так как вовремя сообразили, что разведчик сможет бесконечно крутить круги вокруг босса, уворачиваясь от его пуль\снарядов и делая его практически бесполезным.

7.
Как-то наткнулся на строчку, описывающую смену системы частиц искр от попадания по танку пулями\рукопашкой с одной на другую. Когда у танка больше 30% ОЗ, вызываются "лёгкие" частички, а если меньше - "тяжёлые". Я даже сделал иллюстрацию (редкость для меня, обычно я давлю текстом лол).


Малополезный факт, но уж точно никому не известный.

Был ещё забавный момент: когда я запустил SFM и нашёл описанные в коде системы частиц, при попытке их расположить рядом, чтобы запечатлеть разницу, пришлось сильно их смещать вниз - почему-то сами частицы отстоят вверх от базовой точки где-то на три метра. Я подумал "блин, этот SFM, никогда им не научусь толком пользоваться, какая морока же", кое-как смонтировал, а затем пошёл в TF2 отыскивать эти частицы.
После двацдати минут безуспешных поисков я ВНЕЗАПНО нашёл их сверху танка. О да, это была не ошибка SFM, частицы действительно почему-то сильно смещены вверх. Обратите сами внимание.

8.
Мерцать щит начинает при заряде меньше 25%. Обычно это означает, что время мерцания щита составляет 3 секунды (так как щит работает 12 секунд), но не забываем, что существует баг обнуления бонуса, если его проделать, то продолжительность уже будет 10 секунд, а значит, щит будет мерцать 2,5 секунды.

Количество урона, требуемое нанести пулемётчику для заполнения шкалы ярости, равно 2762. Вот прям ровно. Это не из кода на самом деле, это я так выявил, экспериментально, когда наткнулся на код, связанный с яростью пулемётчика, и стал проверять коэффициент, который был там прописан. 0.22, чего, к чему это...

9.
При обнаружении шпионом-человеком невидимого шпиона (вы же знаете, что шпионы могут делать всех невидимых робошпионов вблизи полупрозрачными, так?) должен был проигрываться специальный звук. Судя по имени, это должен был быть этот этот (Recon.Ping)

10.
Для улучшения "Специалист по флягам" медика есть закомментированная альтернативная формула снижения цены на фляги. Цена вместо фиксированного уменьшения на 10 кредитов
тогда бы уменьшалась на 10%, а предел цены фляги был бы 1 вместо 5.
11-20
11.
Более того, предполагалось, что улучшение "специалист по флягам" медика даст ему дополнительные заряды фляг! На каждое улучшение плюсовался один заряд, так что всего он мог держать до 6 зарядов. По мне, очень жаль, что эту возможность выбросили, медик уж точно не самый сильный класс в MvM, даже с щитом.

12.

Но здесь есть ещё кое-что.
(Нет!)

В том же комментарии есть подозрительная строчка. А подозрительна она этим: "Если что-то ещё повышает максимальное количество зарядов, ...". Так что да, на каком-то этапе разработки обновления 2C разрабы планировали ввод чего-то ещё, что повышает макс. количество зарядов фляги. Что именно это было, мне выяснить так и не удалось. Возможно, эта идея не вышла даже на этап кодирования, но тем не менее она была.

13, проклятое число. Проклятому числу - проклятый факт.

ЛОВУШКА ШПИОНА!




Да, такая ассоциация от названия была у многих.

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

Использовать их, насколько я понял, можно было только в MvM (и насчёт этого сомнения, предупрежу - может, я не так понял код) и имелось аж целых четыре режима работы этой ловушки:
1. магнит (Magnet Trap),
2. перепрограммирование (Reprogramming),
3. глушение (Sap),
4. Repulsor - ...ээм, репульсор, я хз.

По названию двух первых вроде всё понятно. Магнит магнитит, а перепрограммирование перепрограммирует, ну, мы же про MvM говорим. А вот с глушилкой не всё так очевидно. На самом деле ловушка не глушила врагов в этом режиме, а давала невидимость союзникам.
Про репульсор вообще ничего конкретного сказать нельзя, от этого режима работы осталось лишь название. Интересно, что в других участка кода репульсор вообще закомментирован. Тайлер полагает, что перед вырезанием ловушки шпиона для этого режима просто не успели написать код, и я с ним соглашусь.

14.
Уж перепрограммирование точно должно было быть только в MvM. Оно заставляло роботов сменить команду и стать на сторону наёмников. И более того: перепрограммировать можно было даже разрушителя турелей, и при этом он взрывал роботов вместо людей. В таком режиме он наносил бы фиксированные 1000 урона вместо четырёхкратного количества жизни у жертвы. Между прочим, из файла с этим кодом мы можем узнать продолжительность функции перепрограммирования - 8 секунд.

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

16.
Немного о вырезанных улучшениях для MvM (тоже сомнения насчёт этого, надо перепроверить). На каком-то достаточно позднем этапе предполагалось сделать улучшение для лечебной пушки, которое позволило бы лечить постройки инжа, хоть и с достаточно низкой скоростью (10 ед/с).
Да-да, всё правильно, лечить турель медиганом. И причём это улучшение достаточно хорошо проработали, ведь имеется и необходимый для работы код, чтобы распознавать постройки как подходящий для лечения объект, и даже специальную систему частиц сделали! Выглядит красиво - вместо обычных красных крестиков по лучу пушки проносятся болтики и гайки.


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

Ещё я нашёл несколько неиспользованных атрибутов для MvM, но известно о них не так уж много. Для некоторых я ничего не смог раскопать, кроме их названия.

17.

Первое - это "healing rate", увеличение скорости лечения. Практически такое же улучшение, как и релизное "мастерство лечения", отличается лишь отсутствием повышенного регена самого медика. А это ведь достаточно полезная вещь, и аптечки меньше нужны, и догорание может скомпенсировать... ну да ладно. Отмечу, что сам этот атрибут вообще используется везде в игре, в самом улучшении "мастерство лечения", или для повышения скорости лечения быстроправа, или для замедления скорости лечения убер-медиков в MvM. Суть в том, что его планировали ввести и как улучшение для наёмников, однако в конце модифицировали, добавив ещё и реген.

18.

Ещё в списке атрибутов присутствует spy traps - ловушки шпиона, про которых я уже говорил ранее. Но что интереснее, рядом с этим атрибутом стоит некий "cloak phase", что-то вроде "мигающая невидимость". Что это означает? Загадка во тьме.
upd: была бы, если бы меня не ткнули вовремя в видео shounic'а. Это атрибут, позволяющий невидимому шпиону проходить сквозь врагов и убивать их, материлизовавшись внутри него.

19.

Кстати, в списке атрибутов уже есть строчки о ракетном ранце и некоем напалмовом огнемёте. Наверно, вы уже догадались, что это речь о новых оружках поджигателя, появившихся в последнем обновлении Jungle Inferno. Хочу отметить, что в слитом коде большинство геймлейных изменении, которое принесла обнова JI, пока нет. Это означает, что обещанное новое оружие давно было готово, и Вэлв по какой-то причине тянули жвачку, откладывая обновление. Может, доделывали новые карты или контракер, чёрт их разберёт.





20.


А дальше идут атрибуты под знаком STAGING_ONLY.
Эти атрибуты оказались неким комплексным вариантом улучшения, включающим в один апгрейд изменение сразу несколько параметров. По некоторым причинам Вэлв от такой концепции отказались, оставив для улучшений только один параметр, например, защиту от взрывов, или скорость стрельбы. Если не ошибаюсь, осталось только одно улучшение, меняющие сразу два параметра наёмника - это уже упомянутое "мастерство лечения".
А жаль, такие комплексные улучшения мне показались неплохой находкой, разнообразящей геймплей MvM. Чем-то Rise of Nations напомнило.

Итак, что это были за атрибуты?
Самая первая - это неиспользованные атрибуты для рукопашки инжа:
"construction expert" (эксперт по строительству) и
"support engineer" (инженер поддержки).

Первый атрибут (эксперт по строительству) включает в себя:
скорость строительства - 1,429 раз;
увеличение запаса металла - 1.5 раз;
увеличение ОЗ построек - в 1,429 раз.
Всё это по отдельности уже есть в релизном MvM, хоть и не с такими всратыми множителями.

Атрибут "инженер поддержки" предлагает кое-что поинтереснее:
скорость перезарядки телепорта - в 2 раза
ускорение после телепортации - ВКЛ (похоже, это бонус от ускорителя, подробнее см. в факте 26)
двухсторонний телепорт - ВКЛ
множитель раздатчика - 1,25 раз (скорее всего, скорость лечения и раздачи патронов\металла)
радиус действия раздатчика - в 3 раза
А вот скорости действия телепорта и раздатчика в релизном MvM нет! Хоть это и не особо приоритетные улучшения, было бы интересно посмотреть их в релизной игре.
21-30
21.
Ещё "airborn infantry" для основного оружия солдата. Тоже комплексный атрибут. Состав:
килька - 400 гр
томатная паста - 100 гр
консервант Е202.
Ладно, шучу. Нельзя в таких занудных руководствах совсем без юмора, понимаете?

улучшение управляемости в воздухе - в 10 раз
импульс от выстрела ракетой - ВКЛ (хз что это, атрибут вырезали)
обнулить урон от падения - ВКЛ
Здесь уже всё новое. Отменённый урон от падения и управляемость, очевидно, включены сюда для ракетных прыжков, а вот что за импульс такой, было бы интересно выяснить. Может, каждый выстрел в воздухе давал бы солду скорость в обратную сторону? Этакое реактивное движение уровня \tf2.

22.
Атрибуты для снайпера -
"sniper cloak" (невидимость\скрытность снайпера) и
"master sniper" (снайперское мастерство).

Снайперское мастерство - тоже сборный атрибут. Включает в себя:
пробитие насквозь - ВКЛ
увеличение скорости заряда - в 1,5 раз
увеличение скорости перезарядки - в 1,67 раз.
Здесь всё стандартно.

А вот насчёт первого - не особо понятно, что это такое. Снайпер - последний наёмник, которому невидимость может быть полезна, он как бы издалека обычно бьёт. Есть версия, что это был атрибут спецом для робо-снайперов, чтобы они били из невидимого состояния, но что тогда с лазерами?

23.
И наконец, что-то совсем невнятное для разведчика.
"ability doubletap teleport", если буквально - способность двойного касания для телепорта, или телепортироваться при двойном касании\нажатии. Да, это для разведчика, тут уж нельзя ошибиться, причём для его основного оружия. Что он мог делать им с телепортом, или куда и что мог телепортировать? Тут я уже без понятия. Единственное, что я смог надумать - это телепортация разведчика в точку прицеливания, когда жмёшь на кнопку активации приёма два раза. Жалко, что я так пока и не нашёл код собственно этих атрибутов, этот заинтересовал меня больше всего.

24.

Вот бесполезный, но показавшийся мне забавный факт: для закладки роботу требуется 1,9 секунд. Не 1, не 2 секунды, не 1,5 секунд, но ровно 1,9 секунд. Да, вот прям ровно одна целая девять десятых секунд.
...
Представьте: многолетний труд тестеров над переменной времени закладки бомбы, трудоёмкий анализ всех выигранных роботами игр, тестирование различных промежутков времени закладки бомбы, куча графиков, связей и формул на огромных досках в офисе Valvе, НАСА выделяет свой суперкомпьютер для решения этой проблемы.
"Ковальский, анализ!" "Да, мы склоняемся к значению чуть меньше 2. Цифра 1.85 слишком мала - 9,69% команд в учебке смогли убить закладывающего бомбу робота в промежуток времени между 1.85 и 1.95. Но 1.95 слишком велика, так как 13,37% команд бросили играть в MvM при значении ОЗ робота, заложившего бомбу, меньше 2,28. Нам нужно что-то среднее между 1,85 и 1,95!".
И, наконец, торжественное написание идеально отточенной и выверенной со всех геймплейных аспектов и точек зрения цифра 1,9. Ликование программерского отдела, стоящего при полном параде, Габен лично разбил бутылку шампанского о борт своего ПК. Кстати, не из-за этого ли до сих пор нет обнов...
так, я увлёкся.

25.
Опять же, в видео shounic'а это уже было, но я тоже расскажу: для инжа планировали сделать два новых подтипа телепорта, меняющие его функциональность. Один из них ("Speed Pad", ускоритель) придавал ступающим на него союзникам бонус скорости, а второй ("Catapult", катапульта) - запускал их в воздух. Отмечу, что код для катапульты, цитата, "был скопирован с Portal 2". Забавно.

26.
Немного поподробнее про отменённый ускоритель - код про него можно найти в файле телепорта, и читается он получше.
Итак, как и катапульта, он использовал модель обычного телепорта, и встающий на него игрок вместо телепортирования (я не вполне понил, но кажется, функции телепорта бы всё же замещались) получал бы обычный бонус ускорения на 4 секунды, как и от ракушки\хлыста солда, например. Улучшение ускорителя повышало бы время действия бонуса ускорения (на 1 секунду за каждый уровень, т.е. 5 на 2 уровне и 6 на 3) и понижало скорость перезарядки (1.66 сек \ 1.33 сек \ 1 сек).
Блин, жалко, что эксперименты кодеров Valve с новыми постройками прекратились. Скорее всего, они столкнулись с трудностями внедрения новых построек инжа в уже существующий движок TF2 - не зря они много раз ругались на "код-спагетти", а может, тупо забили, лол.

27.
Мини-раздатчик. Его код (весь под знаком STAGING_ONLY) присутствует в файле о раздатчике, и о его предполагаемом функионале вы можете посмотреть в видео shounic'а. Если коротко - миленькая версия раздатчика от neodos (газировщик разведчика и танк в Римовидении - его работы, кстати) со 100 ОЗ, стоил 70 металла и лечил\раздавал патроны со скоростью раздатчика первого уровня, без возможности улучшения и половинной ёмкостью - вмещает 200 металла.
А вот что действительно уникальная информация (пока) - так это то, что этот раздатчик мог...
Готовы?


ВЗРЫВАТЬСЯ.


Я серьёзно. Там есть необходимый для этого код. При разрушении он генерировал взрыв, мощность и радиус которого зависели от количества накопленного металла в нём. Пустой раздатчик взрывался бы с радиусом 150 HU и уроном 50, а взрыв полного бы увеличивался до 200 HU и наносил бы аж 300 урона. Как видите, все продумано более или менее. Но...
Чёрт, вот эта находка всего больше всего меня удивила. Даже не удивила, а просто оставила в прострации. Ну то есть... раздатчик? Взрываться?? Серьёзно???
Да как они вообще до этого додумалась? Каким образом шла эта мысль? Вот так и вижу:
- Итак, мы взяли у neodos модельку мини-раздатчика, что же мы изменим геймплейно, кроме его очевидного ослабления?
- Может, позволим игроку строить два раздатчика сразу?
- Ускорим возведение, как мини-турель!"
- Сделаем его бросаемым!"
- "ВЗОРВЁМ ЕГО."
---

Однако, как выяснилось позднее, это оказалось всего лишь механикой раздатчика из Team Fortress Classic. Фу ты.

28.
"Вам всё ещё мало мало взрывающихся вещей? Тогда мы идём к вам!" Наверно, именно так думали разработчики TF2, иначе как ещё объяснить наличие в коде варианта жучка для шпиона, который, ээээм... динамит. Да, "Dynamite_Pack", так и называется. Как приписал shounic в своём видео, когда рассказывал об этом, "зачем нам вообще глушить постройки, когда мы просто можем их взорвать нaхер лол". Ох, сложно делать факты о вещах, которые уже описывались кем-то. Хотя...

Вот этот ваш shounic рассказывал, что этот жучок должен был взрываться даже при попытке инжа снять его гаечным ключом? Вот такой вот обрекающий на смерть "жучок". Урон от взрыва (как постройке, так и задетым врагам) был бы смертельным в обоих случая, потому как равен текущему ОЗ цели * 1.5, почти как ножа шпиона, да и радиус взрыва неплохой, 200 HU (3,8 м), а время, через которое динамит взрывался, было бы равным тому, за которое обычный жучок бы уничтожил постройку. Почти весь код про него под знаком STAGING_ONLY, кроме описывания логики таймера взрыва, почему-то.

29.

В файле-заголовке shareddefs.h есть любопытные строки. Это несколько "TF_CURRENCY_(различные игровые ситуации вроде убийства, успешного сопровождения или даже поднятия коробки боеприпасов)". Например, "TF_ДЕНЬГИ_УБИЙСТВО".
На TCRF утверждают (и это, конечно же, 404UNF, кто же ещё) , что все эти строки связаны с механикой работы режима грабежа. Деньги в этом режиме могли давать и за убийства, и за выполнение задач на карте. Возможно... "шмыг"... возможно...

30.

Неумолимая сила будет отталкивать врага только в том случае, если дробинки нанесли ему 30 урона и больше. В отличие от дистанции (она, кстати, равна 400 HU) это условие отталкивания не так очевидно, однако оно есть.
31-40
31.
В файле для ПП снайпера есть код, который давал бы возможность ПП снайпера (в том числе и карабину) наносить криты при попадании в голову, но он отключён условием "использует ли локацию попаданий", которое отсутствует в файле описаний свойств оружий. В TF2 вообще единственные оружия, которые как-то используют хитлокации - это все основные для снайпера, то есть снайперки и лук, но, как мы видим, на каком-то этапе разработки игры ещё и для ПП подумывали такое сделать.
Ваш ПП всё ещё не наносит криты в голову? Тогда мы идём к вам!

32.
Достаточно обескураживающий факт для тех, кто давно играет в TF2, но не знает этого (как я лол). Расстояние, на котором лечебная пушка продолжает лечить пациента, больше того расстояния, на котором можно начать лечить его. Проверьте сами. Коэффициент "расстояния прилипания", как он назван в коде, равен 1.2, что означает - начать лечить можно на расстоянии 450 HU, а вот продолжать уже до 540 HU.

33.
Сейчас это может уже показаться забавным, но разработчики MvM на ранних этапах разработки MvM (апрель 2011) действительно планировали сделать уровни сложности для этого режима. А забавно здесь то, что сложность они бы повышали примитивным повышением ОЗ и урона роботов. В файле-регуляторе волн MvM есть строчки для этих "сложностей", всего их пять, и суть их в одном множителе, одинаковом для ОЗ и урона.

Сложность
Множитель
Легчайший
0.75
Лёгкий
0.90
Нормальный
1
Сложный
1.1
Сложнейший
1.25

Да, хорошо, что отказались для этого метода.


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

34.
Вот ещё интересная находка под знаком STAGING_ONLY. В ней описывается бонус к стартовым деньгам, который бы начислялся команде, если она не состоит в одном лобби.
Система такова: за каждое уникальное лобби, начиная со второго, команде дополнительно начислялось бы 20% стартовых денег. Получается, команда из одного лобби в 6 человек не получала бы бонуса вообще, а вот команде из 6 рандомов дали бы двойную стартовую сумму. Очевидно, что это была попытка поощрить игру со случайными игроками, однако не выпущенная даже из опытного режима.

35.
Вот когда в MvM умирает наёмник, что вы слышите? Правильно, этот звук.
Но что если я вам скажу, что на каком-то этапе разработки MvM планировали сделать отдельный звук смерти для каждого наёмника? Предварительное кэширование звуков раскрывает этот факт. Самих этих звуков в файлах уже нет - либо вырезали, либо отказались от этой идеи прежде, чем успели их сделать.

36.
Вопреки моим ожиданиям, условие вызывания реплики Администратора об отброшенной назад бомбе не зависит от попадания бомбы в какую-то область, наподобие пропасти на Decoy или низины на Mannworks. Всё обстоит по-другому.
Игра проверяет путевое расстояние (то есть сколько надо пройти роботу, а не прямой отрезок от бомбы до люка), и если оно оказалось на 2000 HU больше, чем было, вызывается это событие. Кстати, оттолкнувшему бомбу игроку начисляются 10 очков, плюс там ещё достижение есть, так что там не просто Хелен информирует, здесь кое-что ещё (нет!).

37.
Бонусный босс. Для MvM. И этот босс - ГЛАЗАСТУС!. Да, я тоже немного не понимаю, как и при каких обстоятельствах это всё планировалось реализовать (волна 666?), но кусочек именно такого кода скрыт под знаком STAGING_ONLY. Скорее всего, это была какая-то тестовая задумка в период между отходом от рейдовских идей и переходу к концепту волн роботов, от которой быстро отказались.

38.
Рыская по файлам кодов, я встречаю довольно много упоминаний о bounty_mode, но файла с описанием конкретно этого режима не нашёл, так что опишу его из обрывков той информации, что имею.
Bounty_mode (режим грабежа) - это очередной заброшенный Valve экспериментальный режим игры. Если кратко - некая попытка совместить обычную игру (казуал) и MvM. Из убитых игроков начинают выпадать деньги, ещё их можно получить при поднятий коробок\аптечек, а игрокам при касании шкафчика амуниции на спауне даётся доступ к меню улучшений, идентичному тому, что в MvM. На старте игроку даётся 1000 кредитов. Ну, и ещё по мелочи, в файле жучка есть приписка о расположении жучка на человеке в режиме грабежа, то есть, кажется, жучок собирались позволить применять на людях в этом режиме. Собственно, на этом и вся имеющаяся информация. Весь код, относящийся к режиму грабежа, под знаком STAGING_ONLY.

39.
И вот ещё один вырезанный режим игры, про который я вообще не слышал - Creep Mode. Режим, эмм, монстров? Ну как в доте, хы. Скорее всего, именно такое значение вкладывали разрабы в это слово. Не забываем - Вэлв ещё и DotA2 делали! Кода по этому режиму ещё меньше, чем по режиму налёта, и датирован он весь августом 2010 года. Интересная дата - самый поздний код, где упоминается режим налёта, датирован февралём 2011. Получается, какое-то время вальвы прорабатывали обе эти концепции PvE-режима, пока в период где-то от февраля до июня 2011 не решили полностью отбросить рейдовскую концепцию и принять вот эту, назвав её MvM.

40.
Что этот режим из себя представлял? А представлял из себя он, насколько я понял, очень раннюю тестовую версию сегодняшнего MvM.
Игра каждые 30 секунд создавала по шесть роботов-пулемётчиков (да, их модель была прописана в коде, то есть сама идея того, что роботы будут биться с людьми, уже была) и посылала их в бой. Всего прописано три волны, как-то маловато.
Что интереснее, есть закомментированный код, в котором предполагалось давать некий опыт за убийство монстров... крипов, я уж не знаю. Ну точно DotA. За шесть убитых давали повышение уровня - полный состав одной волны. Ещё больше походит на идею из доты, которую предполагали внедрить в TF2, но почти сразу отказались. В дополнение к этому в коде есть упоминания точек, то есть как и режим налёта, он базировался на CP - захват точек. Но что ещё более интересно - комментарии к логике кода игровых правил:
"только крипы могут захватывать контроль над точками",
"только крипы могут оборонять точки",
"только крипы могут захватывать точки".
Мне сложно понять, играли ли там люди за обе стороны или же только за одну. Если за обе - можно представить меньше похожий на MvM режим, где точки захватывают только роботы, а игроки защищают дружественных и убивают вражеских роботов.


Кстати, файлы логики поведения ботов при ношении флага (бомба - это тот же флаг, ну или разведданные в казуале) датированы маем 2011 - всё сходится, скорее всего, именно в это время вэлвовцы окончательно пришли к идее борьбы с роботами, проносящими бомбу, и писали код для ботов, единый как для казуала, так и для планировавшегося MvM.
41-45
41.
Предела сверхлечения разведчика от собранных пачек денег нет. Теперь официально. Я нашёл строчку кода, которая это прописывает. Факт 68 из моих прошлых сборников фактов подтверждён.

42.
Большие пачки денег выпадают, когда количество кредитов в них больше или равно 25, средние - когда больше или равно 10 и меньше 25, маленькие - когда меньше 10. Правильно оценивайте капиталистические приоритеты во время погони за деньгами, товарищи-разведчики!

43.
Подозрительная строчка в списке пользователей револьвера, в котором есть не только шпион, но ещё и инженер. Вырезанное оружие для него? Я не слышал о таком и даже никаких упоминаний в коде не видел, но всё же - факт есть факт. Либо это был очень-очень ранний концепт, либо его даже не успели толком закодить. Но всё же... согласитесь, револьвер для техассца - самое подходящее оружие.
P.S. Да, это вырезанный револьвер, стоило хоть раз зайти на страницу TCRF. Для него ещё и анимации остались в файла игры, зацените:
https://www.youtube.com/watch?time_continue=3&v=TYW8BsJ6dQs&feature=emb_logo

44.
Я видел некоторое дeрьмo в файле, который кэширует свойства оружия. Больше вырезанных оружек богу вырезанных оружек! То есть Габену. Я, наверно, просто оставлю эти строчки как они есть, в скобках припишу вероятный перевод и оружие, к которому предположительно они приписаны.

TF_WEAPON_DISPENSER_GUN (пушка\автомат-раздатчик) B.M.M.H - прототип спасателя, который Вэлв тестировали для обновления Инженера. Вместо лечения построек он бы пополнял патроны у союзников при попадании снаряда в них.

TF_WEAPON_LIFELINE (линия жизни...?) - скорее всего, это название чучела\приманки (Decoy) шпиона. Интересная вещица вообще. При использовании появлялась бы копия шпиона, бегущего в том же направлении и с той же скоростью, что и оригинал.

TF_WEAPON_GRENADE_CLEAVER (тесак-граната) - так обозначается сам снаряд тесака. Слово "граната" здесь потому, что используется механика бросания гранат, хотя самих гранат в игре нет. Иронично...

TF_WEAPON_CLEAVER (тесак) - А вот что это - непонятно. 404UNF предположил, что это был вырезанный концепт тесака как ручного оружия, а не бросаемого.

TF_WEAPON_GRENADE_WATERBALLOON (шар с водой, известен по иконке убийства)

TF_WEAPON_SNIPERRIFLE_REVOLVER (снайперка-револьвер)

45.
Про снайперку-револьвер могу подробнее. Она должна была стрелять снарядами, в отличие от всех хитскановых снайперок, скорость снаряда - 3000 HU/с, это скорость шприца из арбалета медика. Урон у неё какой-то ничтожный - 40 без прицеливания, 50 без заряда и 75 с полным зарядом (насколько я понял, градации урона при различных уровнях заряда здесь не предусмотрено). Её особенность - ускорение перезарядки на 0.3 секунды в случае попадания при полном заряде. Напоминает механику ярость дракона поджигателя. Наверно, когда снайперку вырезали, эту идею не оставили навечно гнить в коде, как обычно, а переделали под огнемёт. Если так, то это было здравое решение.
46-50
46.
А вот список снарядов, который идёт под знаком STAGING_ONLY.

"projectile_tranq" (транквилизатор)

"projectile_sniperbullet" (пуля снайперки)

"projectile_throwing_knife" (метательный нож)

"projectile_grenade_concussion" (оглушающая граната)

"projectile_grenade_teleport" (телепортирующая граната)

"projectile_jarate_bolt" (дротик с Джарате)

Про транквилизатор и снайперку со снарядами я уже рассказал. Метательные ножи и дротик с Джарате - это что-то новенькое. Кстати, ниже идёт код типов этих оружий, и про болт с Джарате сказано - "арбалет", что немного проясняет ситуацию. Арбалет с дротиками, обмазанными этой таинственной жёлтой жидкостью. Вторично (особенно после сиднейской сони), но можно поверить.

С гранатами вот посложнее. Оглушающая граната - это вообще-то вырезанное на стадии разработки TF2, где-то в 2005, оружие для разведчика, прямиком из TFC, однако в то, что её код просто оставили здесь, я не поверю - всё дело в знаке STAGING_ONLY. Какой смысл им было делать этот знак для игры, которая ещё была в разработке? Я думаю, разрабы какое-то время подумывали вернуть её в игру. А вот телепортирующей гранаты там не было, но она тоже под STAGING_ONLY. Загадка во тьме.
Благодаря 404UNF я отыскал код для неё, и да, они делают именно то, что значится в их названиях - оглушают и телепортируют.

47. Про арбалет с Джарате я нашёл очень мало информации, зато наткнулся на ещё одну вырезанную оружку. Судя по всему, это был либо аналог, либо прообраз арбалета крестоносца для медика. Стрелял он увеличенным шприцом от шприцемёта, как и релизный арбалет, и урон такой же наносил. Что интересно - при попадании во врага на него накладывался эффект зломолока, от 6 до 10 секунд действия. А что ещё более интересно - при попадании в союзника вместо лечения он накладывал все три убера вакцинатора сразу, длительностью от 1 до 3 секунд. Мда, интересно. Если стрела со зломолоком вполне нормально смотрится, то убер на союзников от этой стрелы выглядит как-то странно.

48. Метательные ножи, в свою очередь, базировались на шприце от шприцемёта, да, опять. Причём буквально: какая-то часть модельки шприца (если не вся, лол), в пяти(!)кратном увеличении должна была использоваться для модели ножа. Возможно, это был временный заполнитель.
больше информации не нашёл, увы

49. Вы никогда не задумывались, почему это в описании улучшения бронепробиваемости шпиона написано "улучшает урон против гигантов на 25%", а на деле увеличивает его аж на 100% по сравнению с изначальным уроном? Если и задумывались, то думали, что это какая-то ошибка. Ну откуда там вообще могут взяться 25%? А теперь мы можем взглянуть на код, который описывает это улучшение, и с удивлением обнаружить, что формально никакой ошибки нет и он действительно увеличивает урон на 25%. Да, я серьёзно.

Как так получается? Сначала задаётся базовый урон шпиона против гигантов - 250, а затем прописываются коэффициенты для улучшений. Для отсутствия улучшений это 25%, а при всех четырёх это 125%. И вот так получается, что шаг одного улучшения равен 25%. (святая Селестия, опять двадцать пять!) Вот отсюда и идёт цифра из описания. И не забывайте про утраивающие урон криты, которые ещё с казуальной версии постоянно наносятся при ударе в спину (зачем вообще эти криты были там, если имбаножик и так двойной урон наносит и гарантированно убивает любого?). Вот так и получается странно выглядящий урон 250*0.25%*3=187,5 (188 при округлении) без улучшений и 250*1.25*3=937.5 (938) с четырьмя улучшениями.
Вот это математика, блджaд, явно стоило того, чтобы вырезать ловушки шпиона.

50. Напоследок скажу одну вещицу, которая хоть и не относится прямо к игре, но всё же заслуживает упоминания. Итак, слив кода игры в виде полной копии исполняемых папок дал нам видение, как же эти папки называются. И в папке game есть три папки с буквами "tf" - собственно "tf", "tf2" и "tfc". В какой папке находятся файлы для собственно TF2?
Ну?
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...

В "tf".
Именно там все задействованные файлы и располагаются. А вот в остальных располагается уже древнее наследие TF2.
Я быстро введу в курс дела всех, кто не в курсе. Игра находилась 9 лет в разработке (то самое знаменитое "after nine years of delevopment" - никакая не шутка и не придумка), аж с 1998, прошла через две полностью отменённые стадии - реалистичную войнушку с бронетехникой и захватом укреплений (период Brotherhood of Arms, 1998-2000) и футуристическую историю про отражение вторжения инопланетян (период Invasion, где-то 2001-2004). Так вот, в папке "tfc", кроме файлов собсвтенно Team Fortress Classic, есть заготовки по первой итерации TF2, Brotherhood of Arms, а в папке "tf2" - код по второй итерации, Invasion. Вот так-то.

Между прочим, щит медика из MvM сильно похож на щит коммандос из итерации Invasion - когда интересовался сливом HL2 2003 года (где был ещё и код по TF2), узнал про сваянный фанатами работоспособный билд-огрызок Invasion, ознакомился с ним и заметил это сходство. Может быть так, что идею щита взяли из наработок тех лет? Вполне возможно. Вальвы хоть слишком много наработок и выбрасывают в небытие (помянем F-Stop, приквел к Portal с фотокамерой), но полностью от них никогда не отказываются.
Заключение
Ну вот и всё. Признаться, с этим руководством мне пришлось потрудиться больше, чем над каким-либо другим написанным мной. Я перерыл просто тонны строчек кода на предмет чего-то интересного, мне экстренно пришлось учить азы C++, плюс ещё постоянно отвлекали жизненные перипетии, так сказать.
А ещё это моё первое руководство, где в названии нет слова "MvM", кек. А ведь оно ни много ни мало 16-е по счёту. Да, TF2 - особая игра, без сомнения. Она умеет завлекать, всеми способами, и потом не отпускает.
Особая благодарность моему товарищу, в частности, за сделанный арт с ЛОВУШКОЙ ШПИОНА.
Подпишитесь на комментарии. Если в руководстве что-то будет неправильно, я исправлю и оповещу об этом комментарием, чтобы не вводить читателей в заблуждение. Хотя вам ещё и уведомления о комментариях других читателей будут приходить... в общем, решайте сами.
Ну и если вам понравилось руководство, можете заценить мои прошлые.

https://steamproxy.net/sharedfiles/filedetails/?id=1400973119

https://steamproxy.net/sharedfiles/filedetails/?id=1324080592

https://steamproxy.net/sharedfiles/filedetails/?id=1204638478
33 comentário(s)
serpantin 7/fev./2022 às 11:23 
"топ 50 фактов о мвм",так бы звучало более правдоподобно:jarate:
⛧Voŕt̢eX̷_F̧ưr̡y⛧ 8/jan./2022 às 15:18 
Святая селестия!
Fission Power  [autor(a)] 22/out./2021 às 17:03 
Ознакомившись с некоторыми статьями и уточнив у 404UNF, обновил информацию в 29 и 44 фактах.
Fission Power  [autor(a)] 14/out./2021 às 18:07 
В связи с готовящимся переводом для вики дополнил информацию в 16 и 40 пунктах.
Fission Power  [autor(a)] 30/ago./2021 às 8:34 
These are mentions of your help. I've asked a couple of things and you answered, so I decided I need to mention your contribuion.
And yeah, I need to translate this guide to English. The problem is - I'm too lazy.
30/ago./2021 às 3:35 
I see my name in here twice but other than that, I can't read any of this lmao
Fission Power  [autor(a)] 12/abr./2021 às 10:37 
Вот как? Чёрт, я не имел ни малейшего понятия об этом. А сейчас глянул на вики и - точно!Так вот откуда вэлвовцы взяли такую на первый взгляд сумасшедшую идею.
Ладно, добавил указание на это, спасибо.
Ashi 12/abr./2021 às 2:39 
Взрывать раздатчик? Хех прям как раздатчик из TFC, его тоже можно взрывать и наносить урон)
TiGGeRFeeD 22/mar./2021 às 9:10 
Увы, даже код рано или поздно (если не уже) закончится с таким стремлением ВаЛвЕ поддерживать игру. До сих пор не понимаю с чего вдруг TF бросили.
Fission Power  [autor(a)] 22/mar./2021 às 8:54 
Да, в условиях клинической смерти TF2 нам только и остаётся, что лазить в коде да фантазировать.