Игрострой по-вятски. «Чёрная вода»

Как ни печально, герой сегодняшнего номера уже мёртв. Нет, это не человек, Боже упаси! Всего лишь проект компьютерной игры. Но, имея историю «жизни», уникальный внешний вид и черты, свойственные только игре «Чёрная вода», он стала воплощением жизни, воплощением мечты. И сегодня я расскажу вам о мечте очередного вятского парня сделать игру. К сожалению, мечте уже прошлых лет.

Самое начало...
Где-то на рубеже 2001—2002 годов второкурсник Кирилл Махнёв (ныне ему 26 лет), известный в кировском интернет-сообществе как Delirium, сел вот так вот и стал ваять... Тогда проект скромно назывался Horror Project. Его основная концепция — ужастик типа «Silent Hill» от первого лица с мёртвой девочкой в роли главного врага и элементами отстрела зомби для поддержания динамики. Тут стоит отметить интересный факт. Свою игру Delirium начал делать до выхода F.E.A.R. Но когда та появилась, негодованию разработчика не было предела. Впрочем, всё по порядку.
Началось всё с попыток разобраться в DarkBASIC — среде программирования для создания 2D и 3D игр, анимации, презентаций, слайд-шоу и даже бизнес-приложений (www.darkbasic.ru, darkbasic.thegamecreators.com). Но DarkBASIC не шибко приглянулся Кириллу из-за своей «корявости», как он выразился. Потом он попробовал Blitz 3D (www.blitzbasic.com), показавшийся ему более интересным. Естественно, первые попытки успехом было назвать трудно — так, разбирался, что к чему. Далее пришло на ум написать простенькую стрелялку. Писал для себя, без сюжета, без основной идеи. Просто чтобы работало. В результате появилась мини-игра с единственной комнатой, где нужно было отстреливать постоянно появляющихся из ниоткуда роботов. «Потом пришла логичная мысль, что если уровень сделать побольше, врагов сделать не появляющимися из ниоткуда, а расставить по углам, то будет практически нормальная игра», — говорит Кирилл.
Ну, а дальше, как выразился разработчик, пошло техническое развитие идеи. Писал подобие AI, заставляя монстров передвигаться с какой-никакой логикой, чтобы не просто спотыкались о стены в случайном направлении, а отворачивались от них, шли в сторону игрока и т.д. Делал открывающиеся плавно двери. Но, к сожалению, все эти нефиксированные предметы делались прямо в коде игры, из-за чего каждый раз для нового уровня в коде же и приходилось вносить изменения. Так Кирилл начал разбираться с форматом файлов уровней. Уровни он решил делать в 3D World Studio — специализированной программе для создания дизайна уровней и расстановки лайтмапов (3dworldstudio.thegamecreators.com).
Как вы уже поняли, Кирилл, в отличие от многих других девелоперов, начал реализацию игры не с продумывания сюжета, а с написания движка. В результате к моменту, когда у проекта был работающий движок, у него не было уровней, сюжета и даже названия.
Но, получив возможность быстро создавать и управлять динамическими объектами, автор захотел простую стрелялку превратить во что-то более серьезное. «Ещё свежи были впечатления от «Звонка», а Silent Hill 2 был одной из любимых игр, так что решено было совместить стрелялку с ужастиком», — так объясняет свой выбор Delirium. А позже признаётся: «Все игровые ресурсы типа текстур и звуков выдирал из других игр, так что недостатка в пугающих эффектах, угнетающей музыке и мрачных текстурах не было». Наверное, именно таким образом просто «Horror Project» превратился в «Чёрную воду».
Оставалось заскриптовать различные действия, падения предметов, передвижения камеры, появление монстров и т.п. Так появились зачатки скриптового движка. Буквально на днях я смог ознакомиться с демонстрацией его возможностей. Приятные воспоминания остаются даже не столько от его возможностей, сколько от аккуратности и проработанности деталей. Сразу видно бережное отношение автора к своему детищу. Похвально...
Имея в своём распоряжении скриптовый движок, редактор уровней и другие ресурсы, можно было бы просто тихо сидеть и делать уровни. Но это, видимо, было уже не так интересно, и процесс затянулся.

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

На момент «смерти» «Чёрной воды» был полностью готов уровень-пролог и уровень с всякими лабораториями. История такова: главный герой, по просьбе своего друга, отправляется в заброшенный дом, откуда был звонок от без вести пропавшей дочери. Суть миссии-пролога заключалась в том, чтобы побродить по этому дому, найти ключи от закрытых дверей, попутно натыкаясь на всякие непонятные вещи, типа выключающегося не во время света, теней в коридорах. Глубоко в подвале была комната с окровавленными стенами, из которых вылезали руки, а затем свет выключался и включался снова. А рук уже не было...
В уровне с лабораториями, как и в прологе, тоже было много дверей, лифт, комната-ловушка в стиле «Обители Зла» (где Йовович скачет через лазеры). Планировалась поездка на вагонетке а-ля Half Life. Ещё была заготовка уровня на большом корабле в открытом море.

Но всему этому уже не суждено сбыться. К сожалению ли, к счастью ли, но столь интересным способом Кириллу Махнёву уже не удастся потрепать ваши нервишки. Кто знает, может это и к лучшему?

Интервью с разработчиком
— Привет, Кирилл, ещё раз. Ответь, зачем и для кого ты делал игру?
— В основном для себя. Интересен был процесс. Уникальная возможность познакомиться с игрой изнутри. Очень много деталей, о которых и не подозреваешь, играя в готовый продукт. Начинаешь с передвижения игрока-камеры по миру (банальная обработка передвижения игрока переделывалась многократно), заканчиваешь работой с физическим движком. Плюс, постоянно было желание вплотную приблизиться к пределу возможностей Blitz 3D (кстати, язык называется как раз Blitz 3D, а не Blitz Basic). Предел этот всегда кажется очень близким — всё ограничено возможностями DirectX7, но в то же время, благодаря многочисленным модулям и библиотекам, удаётся отодвинуть эту границу настолько далеко вперёд, что использовать все возможности языка и его графического ядра становится очень сложно.

— Что было самое сложное в процессе её создания?
— Самое сложное — зайти в тупик и начать сначала. Кажется, что имеешь вполне работоспособный движок, но из-за изначально неправильного подхода не удаётся реализовать некоторые идеи, или всё упирается в недостаточную производительность. Выход один — переписать полностью часть кода, сделать его более красивым и оптимизированным. И вот, в один момент, работоспособный движок игры на несколько недель превращается в многочисленные строки кода, которые даже компилировать проблемно, не то, что протестировать в игре. Зато когда всё это, наконец, начинает работать!.. Это стоит потраченного времени.

— Расскажи, пожалуйста, читателям о том, какие технологии, движки и редакторы ты использовал в игре?
— Язык программирования — Blitz Basic, редактор уровней — 3D World Studio. Какие-то модели пытался рисовать в 3Ds Max. Ресурсы брал в основном из игр, были разные наработки, созданные другими разработчиками на Blitz (у них неплохой коммьюнити-сайт и такой же неплохой неофициальный русскоязычный ресурс). Физические движки перепробовал Newton, ODE, остановился на враппере Physx, так как его разрабатывал наш соотечественник. Враппер/wrapper — это библиотека для трансляции вызовов из блитца в библиотеки Physx.
Была ещё какая-то библиотека к блитцу, не помню, как называлась. Позволяла использовать эффекты типа refraction, bloom, даже тени динамические в духе DooM3 можно было делать, правда, с одним источником света. И всё это с аппаратным ускорением на уровне DirectX8. А ведь изначально графическое ядро блитца ограничено древнючим DirectX7.

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

— Да, печально... А что ты думаешь о геймдеве в Кирове?
— Не задумывался. Я занимался этим только потому, что было интересно. Наверное, он существует... этот геймдев в Кирове.

— Ты знаком с какими-то ещё интересными кировскими проектами?
— Мой товарищ, который познакомил меня с Blitz Basic, писал свою игру. Но, как и в моём случае, вся разработка прекратилась с окончанием учёбы. Больше и не припоминаю ничего значимого. Наверное, просто не очень интересовался.

— Какие советы можешь дать начинающим девелоперам?
— Начинающим девелоперам дам совет не строить больших планов, а начать с простых аркад. При желании качественно сделанную аркадную или логическую игрушку можно даже продать. Тогда как грандиозный проект, скорее всего, рухнет под всей своей грандиозностью. Но, с другой стороны, всегда нужно стремиться к большему, а значит — чем более гибким будет движок игры, тем большего успеха можно будет достичь с наименьшими затратами.

• • •
На сегодня увлекательное путешествие в мир гейм-девелопинга закончено. До встречи в следующем номере!

«Чёрная вода»
Жанр: Survival Horror / Action
Разработчик: Кирилл «Delirium» Махнёв
Дата разработки: 2002 – декабрь 2006 (проект закрыт, исходники утеряны)
Текущий статус: Tech-demo
Связь: deliriumxp@hotmail.com


Рекомендуем почитать: