Журналы

Тексты

А также

Ссылки

Поиск

Game.EXE №9(50)’1999 / Полигон

Lionhead Studios: записки на дисплее

Продолжение. Начало см. в #8’99.

Работа в хоромах, или Мы ускоряемся

Друзья, это было жуткой подставой — переезжать в Research Park университета графства Суррей. Новое логово Lionhead находилось в каких-то двух шагах от Bullfrog’овской разлапистой лилии, в том же самом владении. Шесть различных компаний претендовали на то, чтобы занять помещение нашего нового офиса на Frederick Sanger Rd. Но управляющие Research Park хорошо знали Питера, и Lionhead “по блату” вышел победителем этого могучего тендера. Bullfrog — местная достопримечательность, компания хорошо известна в Гилдфорде как пример удачного бизнеса. И это, несомненно, помогло убедить владельцев отдать предпочтение заявке Lionhead.

Мы заказали огромные полукруглые столы, настолько большие, чтобы каждый мог разместить у себя по два компьютера, иметь вдоволь свободного пространства, хранить внушительную коллекцию компакт-дисков и даже играть в “Монополию”, не мешая другим работать. Установлены обитые алюминием двери высотой в 2,5 метра с ручками из нержавеющей стали в виде фигурок космических захватчиков. Стулья в приемной отделаны резной фанеровкой, с черной бархатной обивкой подушек и изогнутыми хромированными ножками.

В новом офисе просторно и уютно В новом офисе просторно и уютно

В звуковой студии установлены микшеры и аппаратура для создания аудиоэффектов общей стоимостью 50000 фунтов стерлингов. Плюс ко всему проект нового офиса включал комнату со стенами, изогнутыми в форме груши, — место, где программеры могли бы расслабляться во время ночных бдений.

Замечу, что вся начинка офиса была “засекречена”до окончания строительных работ. Никто, кроме меня и Тима Ранса, не мог войти в офис, пока там толклись строители, а Питеру и подавно вход был заказан. Когда же, наконец, Lionhead в полном составе явился взглянуть на свое новое обиталище, лица у ребят сами по себе расплылись в торжествующих улыбках. Откупорили шампанское. Тут же начались шутливые споры о том, кто и где будет сидеть. Художник Марк Хили тотчас отправился в Гилдфорд закупать украшения для своего нового стола. Вернулся он с полудюжиной горшков с цветами, сумкой, битком набитой отполированными камешками (чтобы приклеить их вокруг монитора), а также молитвенной циновкой, которую немедленно расстелил на столе. Короче, его стол стал его “храмом”. А еще парень купил нечто вроде амулета-погремушки из высушенных семян. Теперь, когда ему не поддается какой-либо особо строптивый кусок анимации, он встает и медленно ходит вокруг стола, потрясая этой погремушкой, словно какой-нибудь знахарь из племени апачей. Психоделическое зрелище.

Расселл Шоу — аудиобог в бейсболке (козырьком вперед — вседа!) Расселл Шоу — аудиобог в бейсболке (козырьком вперед — вседа!)

Наконец-то у нас было вдоволь свободного места, в котором мы так остро нуждались, наконец-то мы могли нанять новых людей. Объявление о приеме на работу, опубликованное в журнале Edge, привлекло свыше 100 претендентов. В первых рядах вновь пришедших оказался Расселл Шоу (Russell Shaw), ставший музыкальным редактором. Свитер с высоким воротником, джинсы и бейсболка (к счастью, всегда повернутая козырьком вперед) — я не помню, чтобы он хоть раз был одет как-то иначе. Расселл — рьяный энтузиаст всего и вся. У него есть привычка называть всех “дружочек”, как это принято у кокни. Спросите Расселла, что он думает об игре, которую вы дали ему на выходные, и он ответит вам: “Ну, это... ЗдОрово, дружочек. Действительно здорово. Угу. Большое спасибо, дружочек. Великолепно. Отлично. Угу.” Однажды я подслушал его разговор с женой по телефону: “Я буду дома в половине восьмого. Угу. Великолепно. До встречи, дружочек”.

Джейми Дюрран и его альтер-эго (на спинке кресла) Джейми Дюрран и его альтер-эго (на спинке кресла)

Несмотря на то что Рассел — единственный из нас, у кого есть отдельная комната, он никогда ее не закрывает. А поскольку он проигрывает одну и ту же музыкальную фразу по нескольку раз, то теперь три-четыре музыкальных трека этак ненавязчиво крутятся в голове любого Lionhead’овца. Несомненно, этим трекам прямая дорога на наш вебсайт.

Кстати, о сайте. В том, что он работает (да и вообще хоть как-то существует), заслуга еще одного новичка — Джейми Дюррана (Jamie Durrant), который поразил нас своими прежними художественными работами и был принят в команду сразу, как только мы переехали в Research Park. Во время собеседования он предложил взглянуть на свой собственный вебсайт. Откуда мы узнали о двух основных качествах Джейми: во-первых, хотя он хотел работать в Lionhead художником, он оказался еще и весьма талантливым веб-дизайнером. В первую же неделю он спроектировал нам вебсайт, на котором были: интерактивная головоломка с нашим логотипом, сетевая камера, постоянно обновляющая снимки офиса Lionhead, шутки, головоломки, биографии, истории, отсылки на другие страницы и многое другое. Если вы хотите посмотреть, во что Джейми превратил сайт Lionhead, сходите на http://www.lionhead.co.uk. Не пожалеете.

Мысли Джонти

Мы продолжаем интервьюировать программиста Джонти Барнса на предмет выявления всех прелестей его профессии.

Вопрос: Что представляет собой процесс программирования компьютерных игр?

Ответ: Если вы любите компьютерные игры так же, как я, то зарабатывать на жизнь их созданием — это сплошное удовольствие. Честно говоря, у меня такое чувство, будто мне платят за то, что я занимаюсь своим любимым хобби в компании приятелей.

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

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

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

Второе, что мы узнали о Джейми, — это то, что он гей и гордится этим (судя по тому, что сообщает о сем факте на своей персональной страничке в Интернете). Он даже назвал свою команду по Fantasy Football “Жеманные атлеты” (геи часто называют себя словом “жеманный”). Увы, несмотря на все вышеперечисленные достоинства, спорт в целом не принадлежит к тем вещам, в которых Джейми особенно силен.

В том году, о котором идет речь, каждый член команды Lionhead должен был организовать хотя бы одно соревнование, результаты которого попали бы в Олимпийскую лигу Lionhead. Индивидуальные соревнования могут быть по компьютерным играм, настольным играм, разным видам спорта... по всему, чему угодно, лишь бы в итоге оценивался каждый участник. Естественно, каждый выбирает ту игру, в которой он силен. Тим Ранс, наш технический директор, организовал соревнования по бадминтону. Джейми остается только мечтать о победе.

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

Должен добавить, что Олимпийские игры 1997 года имели интригующее завершение. Приближалось Рождество, оставалось сыграть только две игры. Программист Джонти Барнс и я шли ноздря в ноздрю. Вопреки всем расчетам я умудрился выиграть соревнования по настольному футболу, победив в последней игре самого Демиса (экс-чемпиона Кембриджа по настольному футболу, ни больше ни меньше!). Демис никак не мог смириться со своим фиаско и оплакивал печальный для себя итог соревнований в течение нескольких недель. Так или иначе, это позволило мне подняться на 4,5 пункта выше Джонти. Следовательно, все должно было решиться в последнюю неделю соревнований по Fantasy Football, и развязка должна была случиться аккурат в сочельник. К большому моему сожалению, Джонти выиграл, взяв 5 баллов. Итак, на главном призе было выгравировано имя первого победителя Олимпийских игр Lionhead. И имя это было “Джонти”. К сожалению. Ведь он вырвал победу у меня прямо из рук. Он обогнал меня всего на ПОЛ-ОЧКА!

Другим значительным преимуществом нового офиса было то, что мы как будто стали успевать проделывать гораздо больше работы. Да еще и предстоящая в мае очередная Е3 подстегивала нас хорошенько. В результате тестовая версия Black & White продвигалась очень и очень недурно. В планы Питера в первую очередь входил выпуск упрощенной версии игры, чтобы мы могли протестировать геймплей. Никакой роскошной графики или замысловатой анимации, только базовый рабочий вариант, в которой мы могли бы играть, тестировать, модифицировать и снова играть. Как только нас удовлетворит отлаживаемая версия, ее передадут художникам, которые заменят в ней тестовые спрайты на дивные произведения искусства. В следующем выпуске “Дневников” я попытаюсь наглядно проиллюстрировать процесс становления игры от ее первых шагов до той версии, которая была показана на выставке Е3 в мае.

Чем они все занимаются целыми днями (и годами), или О пользе научных конференций

Лишь только в мае 1998-го на выставке Е3 в Атланте мне впервые удалось получить более или менее осмысленное представление о Black & White, игре, над которой мы работали все предыдущие 9 месяцев. О, сколько раз за это время я раздраженно вздымал руки к небу: “Где же эта игра? Где? Хотел бы я знать! Никто ничего не может мне показать! Чем они все занимаются целыми днями?! Где эта чертова игра?!” Но каждый раз ответом мне были снисходительные взгляды — будто они утихомиривали не в меру раздражительного ребенка. Они уверяли меня, что все продвигается прекрасно. Питер, Тим, Марк и Джонти уже, мол, давно тестируют базовую версию игры на предмет ее сетевой играбельности. Но ведь там просто не на что было смотреть! Большие красные кубы, передвигающиеся по пейзажам, сотканным из каких-то сетей и паутин. И это игра?!

И все же ночная пахота кодеров в те несколько недель накануне Е3 произвела на свет то, что даже я смог оценить. По общему признанию, это была лишь рабочая демо-версия Black & White, созданная для тестирования геймплея. Но в ней уже было множество основных элементов игры: пейзажи, племена, заклинания, существа колоссальных размеров — и все это жило! Крошечные селяне шатались по паутине своих пасторальных пейзажей, рубили деревья, ловили рыбу и распахивали поля. Щелчок мыши мог создать заклинание в виде шаровой молнии, катающейся вдоль этого пейзажа. Огр размером с Годзиллу топтал несчастных пейзан, наклонялся и пожирал их, словно семечки.

Но каким макаром эти прибамбасы вдруг ожили? Я не имел ни малейшего понятия, как и из чего сделана Black & White. Поэтому, когда я вернулся из Атланты, то первым делом попросил старшего программиста Джонти Барнса прочесть мне лекцию.

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

Как только все подготовительные вопросы были улажены, команда программистов (всего четверо на тот момент) могла начинать работать над библиотеками и инструментами. Библиотеки — это небольшие служебные файлы, которые скрывают основной “движок” от чисто игрового кода. Примером могут служить стандартные подпрограммы, использующиеся для управления экраном.

Инструменты — это такие служебные программы, которые буквально сшивают удивительное множество графических файлов в формат, который игровой “движок” сможет прочитать. Здесь в качестве примера можно назвать редактор спрайтов, используемый для выравнивания анимированных фреймов. Первым заданием Джонти, кстати, было начать работу над редактором спрайтов. Позже он передаст эстафету программисту-стажеру Полу Неттлтону — дабы тот завершил шлифовку деталей.

Системный администратор Тим Ранс начал работу с планирования служебных программ для сетевой игры. Они были разработаны и протестированы на игре Snakes, написанной Тимом специально для этой цели.

Поскольку Black & White игра многопользовательская, то она должна работать как в локальной сети, так и через Интернет. Секрет в том, что игра разбита на индивидуальные сюжетные ходы, хотя кажется, что она протекает гладко. В идеале необходимо иметь такое количество ходов, каким будет количество выводимых на экран кадров в секунду (fps). В конечном счете, наша команда надеется достичь скорости в 40 кадров в секунду. Однако, поскольку Интернет не справился бы с передачей данных с такой скоростью, Тиму предстоит разработать такой способ раздельной передачи данных, чтобы на пользовательской машине скорость ходов в секунду и кадров в секунду совпадала.

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

Процесс накопления существом “жизненного опыта” уяснить не так просто, и, следовательно, эта часть задания будет закончена позже. Все эти “состояния” искусственного интеллекта записываются в таблицы формата Excel, и Марк пишет служебные программы для считывания данных из этих таблиц в общую базу данных игры. Вся прелесть пользования таблицами состоит в том, что во время тестирования баланс игры может быть легко изменен тестерами, которые ничего не понимают в программировании. Они просто открывают таблицу, меняют несколько цифр, и в мгновение ока баланс преображается! Существо удвоило свою силу, уменьшило скорость наполовину или увеличило свирепость на 50%!

Тем временем Джонти начал работать над моделью движения — то есть тем, как существа должны перемещаться по поверхности (но ни в коем случае не под ней и не внутри нее!), как они будут ускорять ход, спускаясь вниз, и замедлять его при подъеме. Он также занимался разработкой навигационной программы, которая направляла бы поселянина или другое существо из точки А в точку В самым удобным и эффективным способом. Это была та самая навигационная программа, которая позволила Джонти заполучить Final Fantasy VII в споре с Питером несколько месяцев назад (надеюсь, вы помните, что Питер обломался, когда так и не сумел обнаружить ошибку в навигационной программе Джонти, и проиграл ему коробку с FFVII — см. 4-й по счету “Дневник”).

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

Другой нелегкой задачей для Джонти было рассчитать передвижения стадных животных, которые в Black & White присутствуют в изрядных количествах: овец, крупного рогатого скота, свиней, а также стаек птиц, изящно парящих в небесах. Все эти божьи твари должны двигаться одновременно естественным и непринужденным образом, а не в строгом военном стиле или же хаотично, выпадая из своей стаи. Джонти нашел подходящее решение в Интернете, где откопал исследовательские статьи Крейга Рейнольдса (Craig Reynolds) по теории Бойда, представленные на конференции SIGGRAPH. Эта теория использовалась киношниками при создании спецэффектов, например при изображении полчищ летучих мышей в Batman Returns. Именно эти сугубо научные статьи и вдохновили Джонти на создание “стадного” алгоритма.

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

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

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

Использование спрайтов — относительно простой способ создания графических объектов. Но поскольку они двухмерны, необходимо создавать дополнительные картинки, на которых объект будет показан со всех возможных ракурсов (речь же идет о трехмерной игре, не забыли?). Человека, например, можно изобразить в 16 различных ракурсах. Чтобы заставить его еще и ходить, потребуется нарисовать, допустим, дополнительно 8 анимационных кадров — по одному для каждого положения рук и ног (кадры зациклены, чтобы создать иллюзию движения). Следовательно, чтобы человечек зашагал в трехмерной игре, необходимо, как минимум, 128 (8х16) неповторяющихся картинок.

Однако художники могут создавать объекты и в 3D. Для этого у нас есть Марк Хили и Джейми Дюрран, использующие пакет программ 3D Studio Max. Здесь все состоит из геометрических форм (“полигонов”), которые создают “кожу” вокруг объекта, смоделированного в 3D. Чем проще объект, тем меньше требуется полигонов для его отображения. Например, для отображения куба используется всего 6 square-полигонов. Для более сложных объектов, например человеческого лица, могут быть употреблены сотни и даже тысячи полигонов. Количество полигонов, используемых художниками, зависит от двух факторов: степени реализма, с которой художник хочет нарисовать лицо, и скорости, с которой игра должна продвигаться в трехмерном пространстве. Как только меняется точка обзора, компьютер просчитывает перспективу, изменяет относительные размеры и положение каждого из полигонов, а затем перерисовывает объект. Чем больше полигонов нуждается в перерисовке, тем больше времени процессор пыхтит над расчетами графики (вот почему 3D-акселераторы столь эффективны, ведь они разгружают процессор, беря на себя этот неблагодарный труд).

Следует заметить, что рисовать в 3D весьма непросто, но после того как “проволочный каркас” объекта создан из полигонов, раскрасить и анимировать его уже не представляет большого труда (каждому полигону назначается свой цвет или текстура). А поскольку объект был создан в 3D, его, естественно, можно рассматривать в любом ракурсе. Теперь нет никакой необходимости рисовать объекты в 16 различных ракурсах. Компьютер сделает это за вас.

На момент проведения прошлогодней Е3 наша любимая Black & White была примерно в середине разработки. Было написано 143000 строк кода, и основной список графики перевалил за 16000 рисунков, которые еще предстояло нарисовать. Если вас впечатляют такие объемы работы, то вы легко поймете, почему для создания только одной игры может понадобиться команда из 15 программистов и художников, которая будет трудиться до седьмого пота целых два (а то и больше) года. Джонти Барнс очень четко сформулировал наши дальнейшие задачи. Однажды он сказал мне: “Я могу справиться с таким огромным количеством работы, только решая последовательно одну задачу за другой. Если бы в мои мозги забабахали все эти задачи одновременно, я бы попросту свихнулся и не смог программировать эту игру!”

(Продолжение следует.)

The .LHX Files © 1999 Steve Jackson

Стив Джексон, очарованный очевидец.

Перевод с английского Михаила Новикова и Марии Горбатовой.

Править | Загрузить | История | Последние изменения | Справочная