на главную страницуна главную страницуна главную страницу

Новости | 3D-Видео, тюнеры и LCD | iT-Среда | MacLife | Мобильные устройства | Ноутбуки | Носители информации | Платформа ПК | Приложения и утилиты | Принтеры и периферия | ProAudio | Проекторы и ТВ | Сети и серверы | Цифровой звук | Цифровое видео | Цифровое фото | Карта сайта | Поиск

HomePlanet: Дневники разработчиков

Часть III: Механика


Автор: Алексей Медведев (Project Leader, Revolt Games)




Logo of HomePlanet Разработчик: Revolt Games
Издатель в России: Руссобит-М
Жанр: Космический военный симулятор
Дата выхода: середина марта 2003 года


  1. Описание игры
  2. Часть I: «Тайна зарождения HomePlanet»
  3. Часть II: «Художественная»
  4. Часть III: «Механика»



Дневник третий, в котором рассказывается об особенностях построения механики игры, физических законах, действующих в «HomePlanet» и соотношении реалистичности и играбельности.


Часть III: «Механика»

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

800x600 - 36 Кб

В качестве лирического отступления мне хочется поделиться одним секретом. Может быть, для кого-то он и не является таковым, но... не важно. Пусть прочитают еще раз. Так вот, нет на свете ленивее существа, чем программист. Для решения поставленной им проблемы он проанализирует кучу способов создания необходимого алгоритма и всегда выберет тот, который снимет с него кучу работы. Проверено неоднократно. К чему это я? К тому, чтобы рассказать вам про скрипты в нашем проекте. Скрипт — это как раз та самая палочка-выручалочка, которая позволяет снять с программиста те самые задачи, которые ему лень решать. Приведу пример: дизайнер игры придумал, что во время уничтожения корабля должен появиться красочный взрыв, после чего корабль должен разорваться на куски, которые, отваливаясь и отлетая в стороны, оставляют за собой следы в виде замерзшего кислорода. Так ли это будет на самом деле — дизайнеру (ладно, ладно — МНЕ) неизвестно, в бюджете денег на натурные испытания не предусмотрено. Ну, мы, конечно, пытались их выбить из издателя, но его смутила сумма в 25.000.000$. Так вот, допустим, первоначально взрыв планировался состоящим из пяти кадров анимации. Программист исправно все это сделал, и, посмотрев на результат, я понял, что кадров неплохо было бы добавить. Программист опять поправил — снова мало. В третий раз он не стал это просто исправлять в коде, а, потратив больше времени, написал код, который берет все необходимые (и даже немного больше) данные из внешнего источника — файла скрипта. Довольный, он продемонстрировал его нам и, написав документацию на то, как этим скриптом пользоваться, программист освободил себя в будущем от необходимости править что-либо во взрывах кораблей. Конечно, если я придумаю еще что-нибудь, ну, скажем, молнии от замыкания электрической проводки, то ему опять придется немного подправить свой код, чтобы добавить новую возможность в скрипты. Но это все же гораздо проще, чем опять программировать это жестко в коде. Вот так, ведомый ленью (а может, это просто такой алгоритм работы его головного мозга), он переложил рутинную часть работы на головы дизайнеров проекта.

К чему это я все? Да к тому, что сама игра — то, во что вы будете играть, — процентов на 60 минимум как раз и будет состоять из этих скриптов. Не только взрывов, нет. У нас скриптами управляется практически все: миссии, оружие, сами корабли, искусственный интеллект, спецэффекты и т.д.

800x600 - 66 Кб
800x600 - 28 Кб

Использование скриптов имеет существенные преимущества. Главное — проект не так сильно привязан к программисту. Т.е. существует огромный объем работы, который проходит вообще без участия программиста («вообще» — это, конечно, в идеале; на практике возгласы, обращенные к программисту по поводу найденной очередной ошибки, мы слышим очень часто :)). Также возможность быстро посмотреть какие-либо изменения — это очень важно и главное — эффективно! Зачастую результат использования нескольких строчек скрипта превосходит наши самые смелые ожидания.

Еще один важный положительный факт использования скриптов — это возможность постмодификации игры. Например, вы все знаете много 800x600 - 24 Кб примеров проектов, который живут дольше именно благодаря возможности изменения игры. Если разработчик изначально учитывает эту возможность, то можно (если, конечно, сам проект оказался коммерчески успешным) предсказать этому продукту долгую жизнь. Мы изначально решили сделать игру максимально открытой, поэтому предусмотрели возможность модифицирования всего, что может потребоваться будущим мод-мейкерам. Скажем, ничего не будет мешать сделать абсолютно новый корабль, с другим внешним видом, с другими двигателями и вооружением, который, я не исключаю, будет гораздо лучше нашего «Дрэйзерa». Или создать собственную целую компанию из любого количества миссий с абсолютно другим сюжетом. Или изменить тот самый взрыв корабля, сделав его более реалистичным (может, кто-то таки найдет 25.000.000$ на этот эксперимент? :)). Или поменять еще что-то, о чем даже я пока не догадываюсь :).

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

800x600 - 37 Кб

Код, отвечающий за графику в космосимах, не очень сложен — ну, конечно, относительно. Из того, что стоит упомянуть, — это, пожалуй, то, что мы включили поддержку технологии «TRUFORM» компании ATI. Владельцы карт Radeon будут наслаждаться гораздо большим количеством полигонов и, как следствие, более точной и красивой системой освещения.

[ Читайте четвертый дневник ]



Опубликовано — 26 февраля 2003 г.
 
Комментарии?  Поправки?  Дополнения? alien@ixbt.com


на главную страницуна главную страницуна главную страницу

Новости | 3D-Видео, тюнеры и LCD | iT-Среда | MacLife | Мобильные устройства | Ноутбуки | Носители информации | Платформа ПК | Приложения и утилиты | Принтеры и периферия | ProAudio | Проекторы и ТВ | Сети и серверы | Цифровой звук | Цифровое видео | Цифровое фото | Карта сайта | Поиск

Copyright © by iXBT.com, 1997—2012. Produced by iXBT.com