Смертельная лужа: Почему герои старых игр тонули как топоры и при чем тут экономия ресурсов
Вспомните GTA Vice City. Томми Версетти - крутой парень, машина для убийства, но стоит ему упасть с пирса, как он сразу умирал. Почему элитные киллеры, суперсолдаты и спасители миров в играх начала 2000-х не умели плавать?
Это не лень разработчиков и не «боязнь воды» у персонажей. За этим стоял холодный расчет и жесткие технические ограничения.
1. Проблема «Двух игр в одной»
Для нас плавание это просто продолжение движения. Для разработчика того времени плавание это совершенно другая игра. Чтобы персонаж поплыл, нужно было:
- Создать отдельный набор анимаций (гребки, бултыхания, нырок).
- Переписать физику: в воде на игрока должна действовать выталкивающая сила (архимедова), сопротивление среды и инерция.
- Изменить логику управления: персонаж должен перемещаться в трех измерениях (вверх-вниз), а не в двух.
В условиях дефицита памяти на PS1 или PS2 тратить драгоценные мегабайты на анимацию плавания, которая нужна в 5% игры, было непозволительной роскошью. Проще было прописать скрипт: «Если координата Z игрока совпадает с уровнем воды — нанести 1000 единиц урона».
2. Прозрачность и «кошмар» для железа
Вода — это самый сложный объект для рендеринга. Она должна быть прозрачной, отражать небо, преломлять свет и иметь искажения. В старых движках прозрачность (Alpha-blending) была очень «дорогой» операцией для видеокарты. Если игрок погружался под воду, движку нужно было рисовать и то, что под водой, и саму поверхность воды, и отражения на ней. Это вызывало резкое падение FPS. Чтобы консоль не «взрывалась», разработчики просто не пускали нас под поверхность.
3. Вода как «естественный забор»
В геймдизайне есть понятие «невидимые стены». Если разработчику нужно ограничить карту, он может поставить бетонный забор (выглядит плохо) или налить океан. Смертельная вода — это идеальный ограничитель. Вам не нужно строить бесконечный мир. Вы просто делаете воду ядовитой или глубокой, и игрок сам понимает: «Туда нельзя». Это сохраняло целостность игрового мира, не ломая погружение (хотя и бесило).
4. Навигация ботов (Navmesh)
Это «невидимая» проблема. Боты в играх ходят по специальной сетке (навмешу). Создать сетку для ходьбы по земле — просто. Создать сетку для перемещения в объеме воды, где враг может быть над тобой, под тобой или сзади — невероятно сложно для процессоров того времени. Чтобы враги не тупили и не застревали в текстурах воды, разработчики просто запрещали всем туда заходить.
Как разработчики оправдывали костыли
- Альтаир, мастер-ассасин, умирал при контакте с водой в первой части. Ubisoft нашли гениальный выход: они заявили, что это не Альтаир не умеет плавать, а Анимус (машина памяти) имеет баг в коде и не может правильно воссоздать симуляцию плавания в этой эпохе. Техническое ограничение стало частью киберпанк-лора.
- «Личная драма» (Red Dead Redemption) Джон Марстон в первой RDR тонул мгновенно. Игроки гадали: почему суровый ковбой боится речки? В Red Dead Redemption 2 (приквеле) Rockstar превратили это в шутку: Артур Морган постоянно подкалывает молодого Джона из-за того, что тот не умеет плавать. Ошибка первой части стала каноничной чертой характера героя.
- «Смертельная экология» (Half-Life, Fallout, InFamous) В Half-Life в воде жили пиявки, которые съедали вас за секунды. В Fallout вода была радиоактивной. В InFamous главный герой Коул Макграт управляет электричеством, поэтому контакт с водой для него — буквально короткое замыкание. Логично? Абсолютно.
Итог
Сегодня вода в играх — это повод для гордости (вспомните Horizon Forbidden West или Sea of Thieves). Но раньше каждый метр водной глади был результатом компромисса между амбициями дизайнера и немощностью железа.
Смертельная вода была не багом, а «костылем», который помогал играм работать.