HomePlanet: Дневники разработчиковЧасть III: МеханикаАвтор: Алексей Медведев (Project Leader, Revolt Games)
![]()
Дневник третий, в котором рассказывается об особенностях построения механики игры, физических законах, действующих в «HomePlanet» и соотношении реалистичности и играбельности. Часть III: «Механика» Логически программную часть кода нашей игры (да, в общем, и не только нашей) можно разделить на несколько частей это физическая часть, конечно же, графическая, код искусственного интеллекта, а также небольшие кусочки, отвечающие за интерфейс, миссии и т.п. И коль я уже рассказал про художественную часть и те проблемы, которые у нас возникали в процессе ее создания, то в этой части дневника самое место описать все, что у нас происходило и происходит с кодом игры и всем, что с ним связано. ![]() В качестве лирического отступления мне хочется поделиться одним секретом. Может быть, для кого-то он и не является таковым, но... не важно. Пусть прочитают еще раз. Так вот, нет на свете ленивее существа, чем программист. Для решения поставленной им проблемы он проанализирует кучу способов создания необходимого алгоритма и всегда выберет тот, который снимет с него кучу работы. Проверено неоднократно. К чему это я? К тому, чтобы рассказать вам про скрипты в нашем проекте. Скрипт это как раз та самая палочка-выручалочка, которая позволяет снять с программиста те самые задачи, которые ему лень решать. Приведу пример: дизайнер игры придумал, что во время уничтожения корабля должен появиться красочный взрыв, после чего корабль должен разорваться на куски, которые, отваливаясь и отлетая в стороны, оставляют за собой следы в виде замерзшего кислорода. Так ли это будет на самом деле дизайнеру (ладно, ладно МНЕ) неизвестно, в бюджете денег на натурные испытания не предусмотрено. Ну, мы, конечно, пытались их выбить из издателя, но его смутила сумма в 25.000.000$. Так вот, допустим, первоначально взрыв планировался состоящим из пяти кадров анимации. Программист исправно все это сделал, и, посмотрев на результат, я понял, что кадров неплохо было бы добавить. Программист опять поправил снова мало. В третий раз он не стал это просто исправлять в коде, а, потратив больше времени, написал код, который берет все необходимые (и даже немного больше) данные из внешнего источника файла скрипта. Довольный, он продемонстрировал его нам и, написав документацию на то, как этим скриптом пользоваться, программист освободил себя в будущем от необходимости править что-либо во взрывах кораблей. Конечно, если я придумаю еще что-нибудь, ну, скажем, молнии от замыкания электрической проводки, то ему опять придется немного подправить свой код, чтобы добавить новую возможность в скрипты. Но это все же гораздо проще, чем опять программировать это жестко в коде. Вот так, ведомый ленью (а может, это просто такой алгоритм работы его головного мозга), он переложил рутинную часть работы на головы дизайнеров проекта. К чему это я все? Да к тому, что сама игра то, во что вы будете играть, процентов на 60 минимум как раз и будет состоять из этих скриптов. Не только взрывов, нет. У нас скриптами управляется практически все: миссии, оружие, сами корабли, искусственный интеллект, спецэффекты и т.д.
Использование скриптов имеет существенные преимущества. Главное проект не так сильно привязан к программисту. Т.е. существует огромный объем работы, который проходит вообще без участия программиста («вообще» это, конечно, в идеале; на практике возгласы, обращенные к программисту по поводу найденной очередной ошибки, мы слышим очень часто :)). Также возможность быстро посмотреть какие-либо изменения это очень важно и главное эффективно! Зачастую результат использования нескольких строчек скрипта превосходит наши самые смелые ожидания. Еще один важный положительный факт использования скриптов это возможность постмодификации игры. Например, вы все знаете много Воспев хвалу скриптам, стоит немного рассказать о других частях игры. Конечно, прежде всего о физике. Это действительно самая сложная часть кода игры. В нескольких десятках строчек кода уместились законы Ньютона, а также механика соударений. В результате заумная и очень интересная физическая модель поведения кораблей. Реальная, ньютоновская, позволяющая вытворять чудеса и немного непривычная для игроков. В настоящий момент мы уже окончательно определились со всеми физическими параметрами кораблей, и можно смело заявить, что битва между реализмом и играбельностью окончилась боевой ничьей. Реализм напоминает о себе заносами и инерцией, а также практически полным отсутствием лимита скорости. Играбельность тем, что заносы предсказуемы и к ним привыкаешь очень быстро. ![]() Код, отвечающий за графику в космосимах, не очень сложен ну, конечно, относительно. Из того, что стоит упомянуть, это, пожалуй, то, что мы включили поддержку технологии «TRUFORM» компании ATI. Владельцы карт Radeon будут наслаждаться гораздо большим количеством полигонов и, как следствие, более точной и красивой системой освещения. [ Читайте четвертый дневник ]
Опубликовано 26 февраля 2003 г.
| ||||
| Комментарии? Поправки? Дополнения? alien@ixbt.com |