Level up! Руководство по созданию классных видеоигр — страница 20 из 70

В начале был статический экран, и статический экран был хорош для Invaders from Space и серии Kongs of Donkey[117]. Но то было в 1981-м, когда никто не знал ничего получше. А потом возопили игроки и возжелали большего. И в 1982 году спустилась с небес компания Irem в фиолетовом луноходе и подарила миру параллакс, и было это хорошо.



Параллаксная прокрутка (parallax scrolling). Когда камера движется по параллаксу, мир движется вместе с ней. Этот вид обзора произвел революцию в играх, позволив разработчикам создавать более длинные и глубокие миры.



Есть два типа параллаксной прокрутки. Первая – обычная: движение камеры зависит от движения игрока; по сути, он остается в середине экрана, пока мир вокруг него движется, прямо как в старомодном вестерне. Н-но! При такой прокрутке следите за тем, как подгружается уровень, чтобы игрок не обогнал подгрузку. И обязательно пройдите уровень задом наперед, чтобы убедиться, что игрок не сможет сломать игру.



Второй тип параллакса – форсированная прокрутка (forced scroll). Игрок вынужден «гнаться» за автоматически движущейся камерой. Неудивительно, что впервые такая прокрутка появилась в играх про вождение и полеты типа Moon Patrol или Scramble. Популярной она стала в шутерах от первого лица вроде Operation Wolf и рельсовых шутерах от третьего лица Panzer Dragoon, а позже использовалась для сцен погонь, например в Crash Bandicoot. Если игрок не поспевает за камерой, обычно с ним происходит что-то ужасное (например, смерть). Поэтому форсированная прокрутка отлично подходит для секций, где вам нужно надавить на игрока; но не забывайте, что не стоит этим злоупотреблять (если только такой прием не лежит в основе всей игры).

Параллаксная прокрутка царила в играх все девяностые (я тому свидетель). Их была целая куча! Но когда много людей раз за разом делают игры в одном жанре, со временем туда просачиваются инновации. И сюда просочились. Дважды.

Первой стал mode 7 – режим, названный так в честь седьмого (из восьми) фоновых слоев на SNES[118]. Художники рисовали фон в перспективе, будто он уходит вдаль. Прокручивая изображение земли, разработчики создавали иллюзию того, что фон бесконечно движется к горизонту или от него. Прибавьте к этому спрайт персонажа на машинке, лицом к камере или от нее, – и возникает впечатление, что он едет к игроку или прочь. Прекрасные примеры mode 7 – Mario Kart, F-Zero, Super Star Wars. Но создавать уровни в этом режиме подчас непросто, ведь настоящего задника у него нет: эффект работает только с бесконечным пространством. Сейчас технологии развились и позволяют разрабатывать полноценные 3D-уровни без графических уловок, но некоторые разработчики (особо старой закалки) до сих пор иногда используют термин.



Есть и другой способ формировать иллюзию глубины, вдохновленный многоплановой камерой (multi-plane camera) из традиционной анимации. Такая камера «умеет» приближаться к экрану и удаляться от него. Двигая ее по оси Z, можно прокладывать на уровне параллельные маршруты. Игры вроде Disney’s Hercules Action Game (Disney Interactive, 1997) создают бимерный (bi-dimensional) геймплей[119], предтечу того, что теперь называют 2.5D. У приближения камеры в бимерной игре есть побочный эффект: когда мы приближаем немасштабированный спрайт, видны все его пиксели. Современные ретро-игры иногда специально имитируют этот эффект.


Камера от первого лица (first person camera)


По мере того как геймплей перемещался на ось Z, разработчики стали пробовать более кинематографичные виды обзора. Некоторые игры экспериментировали с камерой от первого лица еще в семидесятые, но популярной она стала после выхода Wolfenstein 3D (Apogee Software, 1992) и ее последовательницы – Doom (id Software, 1993). Такая камера появляется во многих жанрах, от гонок до платформеров, но сильнее всего ассоциируется с шутерами от первого лица. Несмотря на популярность, определить, оптимален ли он для конкретной игры, довольно трудно. Вот небольшой анализ его плюсов и минусов.



Как видите, аргументов за и против поровну. Но как бы то ни было, камера от первого лица позволяет вставлять всякие клевые визуальные эффекты.

• Брызги крови: многие современные шутеры от первого лица «заляпывают экран кровью», чтобы показать нанесенный игровому персонажу урон. Можно еще затемнять экран или делать картинку бледнее, что символизирует близость смерти. Иногда эти эффекты выражены сильно, иногда слабее. На мой взгляд, если игрок и так уже умирает, нечестно дополнительно усложнять ему игру, не давая видеть геймплей (и откуда идет урон!).

• Капли дождя / туман / засветы: эффекты погоды можно показывать так, как иногда их видим мы сами, например в новостях. В гонках порой даже встречается механика дворников, позволяющая очищать экран от «загрязнения».

• «Взгляд “хищника”»: речь о тепловом зрении из фильма «Хищник»; можно симулировать подобные эффекты от первого лица – тогда игрок почувствует, что сам использует какую-то ультрасовременную или инопланетную технологию. Только убедитесь, что эффект не просто круто выглядит, а еще и дает игроку геймплейные преимущества.

• Мутная/«пьяная» камера: при обзоре от первого лица дизайнер заставляет игрока влезть в шкуру героя. Так что, если измененное состояние сознания не слишком мешает управлению и длится не слишком долго, всегда можно хорошенько приложить игрока по голове – или хотя бы симулировать для него жуткое похмелье.

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

УДDукачивание из-за движения в Doom – вполне реальная штука. Оно случается, когда глаза регистрируют движение, а внутреннее ухо (отвечающее за равновесие) нет. На укачивание сильно влияет поле обзора камеры: чем оно больше, тем больше игроков будет тошнить[120]. У жертвы укачивания выступает испарина, кружится голова, возникает головная боль и тошнота.



Чтобы игроки не заблевали вам всю игру, попробуйте вот что: максимально приблизьте частоту кадров к 60 FPS (frames per second, кадров в секунду). Не ставьте на передний план качающиеся элементы (например, оружие игрока). Пол или поверхность уровня делайте максимально ровными[121]. Добавляйте в окружение большие стационарные объекты, на которых можно сфокусироваться. Не размахивайте камерой. Не давайте игроку слишком часто и быстро смотреть вверх и вниз.

И хоть я не врач – и даже не исполняю роль врача в сериале, – советую перед тем, как долго играть в шутер от первого лица, подышать свежим воздухом, выпить стакан воды и принять лекарство от укачивания.

Камера от третьего лица (third person camera)

Ваша игра не превратится в тошниловку, если вы отодвинете камеру до обзора от третьего лица. Решение это не универсальное, но я выяснил, что если игроку есть на чем сфокусировать зрение, он не страдает от УДD. Еще при виде от третьего лица можно лучше рассмотреть мир, экшен и то, что подкрадывается со спины. Берегись, Война! Там скелет с мечом!



У идеи отодвинуть камеру за спину персонажа множество преимуществ. Во-первых, есть шанс хорошенько разглядеть своего героя… ну, то есть его задницу[122]. Впрочем, это можно исправить, если позволить герою разворачиваться и бежать в камеру. Но тогда нужно убедиться, что движения соотносятся с игроком. Управление будет зависеть от направления камеры или героя? Влево – относительно героя или камеры? И как игрок вернет камеру к исходному состоянию? Хм. Кажется, все сложнее, чем я думал.

Наладить работу камеры от третьего лица может быть самой сложной задачей в проекте. Тут есть пространство для косяков – давайте пройдемся по потенциальным проблемам и попробуем сделать все правильно.

Движение камеры. Когда я учился в школе, у меня была подработка, которой я занимался после уроков, – записывать на видео спортивные соревнования. Фокусируясь на игре, я переставал замечать все остальное вокруг. Так что нередко начинал идти спиной вперед, натыкался на тренера или спотыкался о спортивный инвентарь, что: а) не помогает снять хорошее видео и б) в целом всех бесит. Чтобы этого избежать, я нанял друга следить за своим перемещением – и отныне снимал с минимумом столкновений.



Благодаря опыту я знаю, что за любой камерой надо следить – даже в видеоиграх. Вот и говорю: относитесь к ней как к живому человеку. Программируя ее перемещение по миру, оставляйте ей пространство для маневра, а игроку – возможность этим пространством управлять. Камеру, которая сама следует за героем, нередко называют преследующей (follow cam). За годы работы с фиксированной 3D-камерой я научился следить вот за чем.

Коллизия камеры с объектом (sorting). Это то, что происходит, когда камера проходит сквозь персонажа или геометрию. Мало что быстрее ломает иллюзию правдоподобия. Что еще хуже, камера в процессе нередко показывает фоновый слой мира – обычно небо или просто плоский цвет. Выглядит отвратительно. Стоит приложить все усилия, чтобы в вашей игре такого не было.

Коллизии можно избежать, если внимательно следить за камерой и геометрией. Один из способов – прописать камере радиус, в котором она будет замечать окружающие объекты и уворачиваться, проходя под ними, над ними или сбоку от них. Если не хотите, чтобы игра просчитывала столько коллизий (это ее замедляет), пусть объекты становятся прозрачными. Внутри уровня такой прием работает неплохо, но вот со стенами по периметру уровня так поступать не стоит. Не стоит и убирать предметы полностью – если объекты на уровне станут мигать, исчезая и снова появляясь, это собьет игрока с толку! (Да и выглядеть будет плохо.)