Вход в систему
Последние статьи
Самые комментируемые статьи
Автор: Алексей "Старпом" Макаренков
Ода глайду3D API, который погубили амбицииВ середине 90-х существовало множество игр, которые программировались под Glide. Сейчас многие игроки даже не знают, что это такое: кто-то называет Glide движком программирования, кто-то считает, что это какая-то хитрая библиотека — аналог нынешних шейдеров. На самом же деле Glide — это не движок, а 3D API, то есть интерфейс программирования приложений. Если еще проще, то это такая программа, которая позволяет девелоперам не думать, на каких видеокартах будет работать их игра. Они просто отдают 3D API команду (например, «сделай источник света»), и API переводит ее на понятный каждой видеокарте язык. Glide был одним из первых массовых 3D API. Году так в 1996-м все думали, что именно Glide станет законодателем мод и именно под него будут программировать все трехмерные игры. Не срослось. Проблемы было ровно две. Во-первых, Glide был заточен исключительно под акселераторы 3dfx Voodoo. Во-вторых, это был закрытый API: чтобы работать с ним, компании вынуждены были платить довольно приличные деньги. В результате пальма первенства постепенно перешла к открытым и бесплатным OpenGL и Direct3D, а уж когда в 2000 году 3dfx Interactive обанкротилась и была с потрохами куплена NVIDIA, Glide окончательно канул в Лету.
Лего-гоКак играть в конструктор при помощи 3D-редакторовВ видеоуроках по 3D-редакторам очень часто фигурируют различные модельки, очень похожие на те, что есть, например, в игре LEGO Indiana Jones: The Original Adventures, состоящие из трехмерных кусочков конструктора «Лего». Извечный вопрос начинающих моделеров на форумах: «Как сделать что-то подобное?» Легоподобных конструкторов (в виде плагинов, аддонов и даже самостоятельных утилит) существует довольно много. Но самый продвинутый (а заодно и самый популярный) из них — это плагин Ego для 3DS Max, созданный Мартином Энтедом. Главная его особенность в том, что для создания лего-персонажей практически не нужно знать сам «Макс». Делается это приблизительно так. Запускаете трехмерный редактор, на панели инструментов заходите на вкладку Create\Geometry, выбираете пункт Creative Tools, там кликаете на кнопку Object Type и выбираете кнопочку Ego. Задаете в блоке Ego Parameters различные параметры очередного лего-элемента, жмете на Ok, и нужный блок появляется на экране: его можно вращать, масштабировать, стыковать с другими уже созданными блоками. Сам плагин можно взять с нашего DVD из раздела «Игрострой».
Скоростное халфостроениеКарта для Half-Life 2 за часНа нашем форуме мы прочитали интересную историю. Один начинающий моделлер поспорил с одноклассником, что он сделает карту для Half-Life 2 за один вечер. Спор приятель выиграл: всего за несколько часов он создал вполне играбельную карту с приличным дизайном. Тут же разгорелся холивар — что начинающий левелмейкер просто использовал уже чью-то готовую карту. Мы, конечно, не провидцы, но подозреваем, что никакого плагиата не было, а человек всего лишь воспользовался программой Half-Life 2 Random Map Creator. Это такая насадка на Half-Life 2 SDK, способная генерировать игровые карты всего за несколько минут. Результат выходит не то чтобы очень хорошим, но вам не нужно создавать уровень с нуля. Всего несколькими щелчками мышки вы получаете приличную заготовку, которую можно довести до ума за несколько часов (одного вечера вполне достаточно). Random Map Creator работает по довольно простой схеме. Он загружает все шаблонные комнаты из игры (точнее — из SDK, который, в свою очередь, берет их непосредственно из движка), расставляет их случайным образом по уровню, после этого внутри каждой комнаты раскидывает дополнительные элементы вроде лестниц, бочек, балок, столов и стульев (расставляя лестницы и ступеньки, программа следит, чтобы они вели к дверям и проходам). Стартовая и финишная отметка задаются случайным образом, но так, чтобы они располагались максимально далеко друг от друга. Если вы никогда не работали в Random Map Creator, то вот вам краткий ликбез. После запуска утилиты вы увидите перед собой всего одно окно, на котором раскиданы всевозможные кнопки и окошки с настройками. Что за что отвечает, всегда написано рядом, или подсказка вылетает после наведения курсора на соответствующий элемент. Например, пункт Game Difficulty отвечает за сложность уровня, Ammo And Weapons определяет количество оружия и амуниции, можно даже задать число закрытых помещений на уровне (Rooms/Level). Определив все параметры, вы жмете на кнопку компиляции и получаете готовую карту, которую можно сразу же загрузить в игру и протестировать. Если что-то не понравилось, то стоит повторить создание — при этом даже не нужно менять параметры, при каждом заходе Random Map Creator делает разные уровни.
Warhammer-анатомияНа каждую хитрую гайку есть свой болтИгры серии Warhammer 40 000: Dawn of War отличаются железобетонными архивами. Обычными архиваторами и даже контекстными распаковщиками игры серии Warhammer 40 000: Dawn of War вскрыть довольно сложно. Но для этих целей давным-давно создана программа Dawn of War SGA Archives Unpacker. Она умеет курочить не только DoW-архивы, но и извлекает ресурсы из игр серии Company of Heroes. Забирайте утилиту с нашего DVD. Учись, играяДеградация обучающих режимов в играхРаньше в играх сплошь и рядом были обучающие режимы, их можно было активировать прямо из главного меню. Сейчас же такое попадается очень редко. Просто девелоперы наконец-то поняли, насколько важен для геймплея новый опыт. Никакие суперкрасивые уровни и лихо закрученный сюжет не способны сдержать зевоту у игроков, если раз за разом им приходится выполнять одни и те же действия. Поэтому новые возможности нужно вводить в игру постепенно. Пока на пути персонажа не появилась вертикальная стена, не надо учить его лазить по ней. Пока не появилась вода, не надо обучать плавать. Даже из снайперской винтовки лучше учить стрелять, только когда появится необходимость. А ведь раньше все эти знания пытались впихнуть в игрока еще на этапе обучения. В результате с самого начала случалось натуральное переедание — первый промах. Потом — игрок долго недоумевал, для чего его всему этому научили, если в игре не надо применять все эти навыки сразу, — второй промах. А когда, наконец, игра предоставляла возможность проявить себя, у игрока появлялось чувство: ну вот, мы же все это еще в самом начале проходили, ничего нового нет. Третий промах.
Последствия специализацииПочему профессиональные дизайнеры иногда оказываются дилетантамиНачинающие девелоперы и моделлеры, изучая «Фотошоп» и различные трехмерные редакторы, очень часто сталкиваются вот с каким явлением. Иногда даже матерые зубры дизайна, профессиональные моделлеры и художники не знают банальных вещей. Спрашиваешь их, скажем, какого эффекта можно добиться от такого-то фильтра, а они только руками разводят. Дело в том, что и 3DS Max, и «Фотошоп», и прочие подобные пакеты — это не просто сложные, но еще и многоцелевые программы. В том же «Максе» можно не только делать модели для игр, но и анимировать, создавать сложные трехмерные коллажи, разрабатывать архитектурные сооружения, просчитывать физику объектов из различных материалов... Представить себе человека, который бы специализировался на всем этом сразу, невозможно, а значит, всегда будут функции программ, которые конкретный специалист в своей работе не использует. Художнику не нужна физика, архитектор не изучает анимацию и так далее. Даже сами разработчики чаще всего не знают всех возможностей своих детищ в деталях. Все дело в том, что разные блоки сложных многофункциональных программ обычно разрабатываются не просто разными людьми, но даже разными подразделениями компаний. В общих чертах они, конечно, представляют, как устроены утилиты, но нюансов вполне могут и не знать. С игровыми редакторами попроще. Они далеко не так сложны, как тот же 3DS Max или Maya, профессиональный левелдизайнер задействует почти 100% функций, а вот модмейкеры зачастую используют лишь процентов 40-50.
MMOG-конструкторКак сделать MMOG, не зная даже азов программированияПро конструкторы офлайновых игр, с помощью которых можно создавать игры, даже не зная основ программирования, мы вам уже неоднократно рассказывали. Но есть подобный инструмент и для разработки MMOG. Называется ROBLOX Virtual Playworld. Обитает на сайте www.roblox.com. Практически вся программа построена на визуальном программировании. То есть вы просто кликаете по менюшкам, выбираете персонажей, расставляете их по уровню, мышкой рисуете маршруты перемещения, в диалоговых «облаках» печатаете текст для NPC (если делаете подобие MMORPG). Даже триггеры и скрипты можно вбивать не вручную, а накидать на уровень из длинного списка (каждому скрипту соответствует иконка, из которой обычно понятно, за что данный скрипт отвечает). Все это удовольствие совершенно бесплатное. Только будьте готовы к тому, что игра получится не очень-то красивой. Если быть точнее — просто страшной. Создатели ROBLOX постарались максимально скрыть несовершенство конструктора за нарочито небрежным визуальным стилем всех игровых элементов (легообразные персонажи, большие гротескные пушки и так далее), но все равно низкобюджетность пробивается изо всех щелей. Зато простенький сетевой шутер можно сделать в ROBLOX всего за пару вечеров. Потом еще столько же играть с друзьями во все это «великолепие» и благополучно забыть. А вот чем ROBLOX хорош, так это тем, что с него очень удобно переходить на продвинутые игровые редакторы и конструкторы — здесь есть отличный обучающий режим, а алгоритмы создания уровней идентичны тем, что используются в куда более сложных программах.
Третье измерение 2D«Фотошоп» и «Макс» — братья навекИзвечная головная боль всех начинающих трехмерщиков — текстурирование моделей. Опыта, чтобы изначально сделать грамотную текстуру в «Фотошопе», еще нет, поэтому происходит настоящая свистопляска. Делаешь текстуру, грузишь ее в трехмерный редактор, находишь ошибку, выгружаешь текстуру, загружаешь в «Фотошоп», правишь, опять загружаешь в редактор, находишь следующую ошибку... И так до бесконечности. Как в том анекдоте про даму, билетик и трамвай: открывает сумочку, достает кошелек, закрывает сумочку, открывает кошелек... В новом «Фотошопе» есть режим трехмерного моделирования, но он плохо совместим с «Максом». Но не может же быть, чтобы столь очевидную проблему нельзя было бы как-то решить? Программ-синхронизаторов существует довольно много, вот только далеко не все из них нормально работают. То с совместимостью проблемы (нужно устанавливать определенные версии «Макса» и «Фотошопа»), то со стабильностью... Мы путем долгих экспериментов остановились на Object Painter (скачать пробную версию можно с сайта http://cameleon-labs.com). На наш взгляд, эта программа самая удобная, да и багов в ней совсем немного. Утилита работает своеобразной прослойкой между «Максом» и «Фотошопом». Вам достаточно один раз загрузить текстуру в трехмерный редактор и наложить ее на модель. После этого запускаете Object Painter — в его окне тоже появляется ваша моделька с наложенной текстурой. С этого момента все изменения «шкурки» в «Фотошопе» тут же будут отображаться в Object Painter, а после нажатия специальной кнопки они погрузятся в «Макс». Можно сделать так, чтобы изменения сразу отображались в «Максе», но это сильно загрузит систему. Немного об анатомии программы. Большая часть рабочего окна отведена под окно перспективы, где в нем отображается ваша 3D-модель. Справа находится панель с вкладками Load Material (здесь подгружаются текстуры из «Фотошопа»), Layers (здесь можно перемещаться по слоям) и Channels (на этой вкладке вы галочками определяете, какие каналы отображать, а какие скрывать). Сверху расположены всевозможные менюшки с дополнительными настройками (отчасти они дублируют функции «Макса») и панель инструментов, на которой можно задать ориентацию камеры и масштаб. Давайте на простейшем примере разберемся, как работать с Object Painter. Выбираете пункт File/Open, загружаете любую модель и запускаете «Фотошоп». На закладке Load Material кликаете по пункту Load и в новом окошке жмете на Ok — текстура подгружается в «Фотошоп». Чтобы перемещать камеру, надо активировать режим Translate и использовать курсорные клавиши, повороты осуществляются мышкой с зажатой левой кнопкой. При помощи меню Refreshing Manual/Real можно настроить режим отображения текстур. Если нажать на Refresh, то включится режим ручного обновления (то есть все, что вы сделаете в «Фотошопе», появится в 3D-редакторе только после того, как вы активируете соответствующий пункт меню, — это дополнительно разгружает систему). Снайперские разборкиПуля — дура или сложная физическая модель?В некоторых играх (например, в Battlefield 2), когда стреляешь из снайперской винтовки, fps заметно падает, а в других (в том же Team Fortress 2) практически нет. Дело в том, как именно просчитывается выстрел из снайперской винтовки. Возможны два принципиально различающихся варианта. Самый простой — провести прямую, являющуюся логическим продолжением ствола винтовки, написать простенький скрипт, который отслеживает все препятствия на этой прямой. Когда игрок нажимает кнопку выстрела, пуля в тот же миг поражает первое встретившееся препятствие. В данном случае нет никакого просчета полета пули, процессор почти не загружается, ему достаточно обработать лишь один параметр — координату цели. Если игра устроена подобным образом, то при стрельбе из снайперской винтовки вы на любом расстоянии можете стрелять точно в голову и быть уверены, что пуля именно в нее и попадет. Другое дело, если игра обсчитывает полет пули, как в упомянутом Battlefield 2. Тут уже нагрузка более серьезная. Траектория движения рассчитывается по физическим формулам. Иногда разработчики хитрят — формулы используют, но не считают положение пули в каждый момент времени: просто рисуется нелинейная траектория, и в момент выстрела пуля моментально оказывается у ближайшего препятствия. Если же расчет ведется честно, то это очень серьезная нагрузка на процессор. А если на пути движения пули есть объекты, которые она может пробить? Это же надо просчитать, как эти объекты повлияли на траекторию! В BF 2 таких сложностей, конечно, нет, но алгоритм полета довольно честный, отсюда и падение fps.
Крепче за баранку держись...Основы модостроения для GTA 4С момента выхода PC-версии GTA 4 прошло уже немало времени, а вала фанатских модификаций для игры что-то не наблюдается. Дело в том, что Rockstar Games подложила модостроителям свинью, изначально интегрировав в свое детище ряд хеш-функций, предназначенных для проверки игровых файлов (моделей, текстур, скриптов, архивов и т.д.) на идентичность оригиналу. Измененная (пусть даже незначительно) игра напрочь отказывалась запускаться на машинах экспериментаторов. Но, как известно, нет такого замка, к которому невозможно было бы подобрать ключик. Спустя несколько месяцев после релиза народным умельцам удалось разработать ряд инструментов, предназначенных для отключения/обмана модуля сверки данных. Особенно на поприще «вскрытия» отличился наш с вами соотечественник Александр Корякин (его имя теперь записано на скрижали истории GTA-модотворцев всего мира). Он создал специальный загрузчик GTA 4 ASI Loader, с помощью которого можно подключать к GTA 4 библиотеки формата ASI, и крохотный плагин GTA 4 File Check Disabler, деактивирующий проверку измененных игровых файлов.
Казалось бы, дело в шляпе, но не тут-то было. Рокстаровцы выкатили очередной патч для GTA 4, который внес множество исправлений и надстроек, но вместе с тем снова заблокировал возможность редактирования. От проверки файлов на идентичность оригиналу девелоперы отказались, но любой измененный документ просто игнорировался. Выяснилось, что игра берет часть данных из архива filelist.pak, расположенного в директории \pc\data, не обращаясь при этом к большинству конфигурационных документов из папки \common\data. То есть если вы нарочно удалите, например, файл handling.dat, в котором задаются основные характеристики транспортных средств, то ничего страшного не случится (если вы собираетесь заняться моддингом игры, делать этого не стоит). К счастью, лекарство нашлось и на этот раз. Пользователь с ником aru представил на строгий суд общественности урезанную версию своего фирменного патча GTA 4 Magic Patcher, заточенную под 1.0.2 версию игры (заплатка проверена нами на совместимость и с патчем за номером 1.0.1.1 для локализации от «1С»). Это неофициальное обновление передает движку информацию о том, что данные теперь следует брать не из архива filelist.pak, а непосредственно из игровых файлов. Прежде чем приступить к перекройке игры, последовательно выполните следующие действия. Обновите GTA 4 до версии 1.0.1.1 или 1.0.2. Затем скачайте архив с GTA 4 Magic Patcher (http://aru.nd4spdworld.com/pic/gtaiv-magic.zip) и распакуйте его содержимое (там всего один файл — filelist.pak) в каталог pc\data с установленной игрой, обязательно подтвердите замену. Есть и другой способ, обнаруженный нами во время подготовки данного материала. Можно просто удалить из директории \pc\data с GTA 4 файлы filelist.pak и gta_cache.dat (этот документ может отсутствовать), после чего попробуйте запустить игру. Какую из этих двух схем использовать — зависит исключительно от ситуации. У некоторых возникают проблемы с инсталляцией модифицированного filelist.pak, кто-то же, напротив, сетует на то, что, если вырезать filelist.pak и gta_cache.dat, игра наотрез отказывается запускаться. Подготовительный этап завершен. Можно приступать к созданию модификаций. Начнем с самого простого — поучимся изменять характеристики оружия (точность, кучность, наносимый урон и многие другие свойства). Для этого воспользуемся специализированным редактором GTA 4 Weapon Editor. Запустите приложение и в появившемся окне нажмите кнопку Load. Поочередно откройте запрашиваемые программой файлы из каталога \common\data. Если вы все сделаете правильно, то увидите, что поля параметров заполнятся различными значениями.
Все свойства стволов распределены по категориям. Например, основные настройки (тип, группа, максимальное количество боеприпасов и т.д.) сосредоточились в блоке Data, «физические» характеристики — в группе Physics, атрибуты, отвечающие за внешний вид орудия, — в Assets, а различные флаги — в Flags (возможность стрельбы с двух рук, анимация перезарядки, необходимость целиться). Правка боевых характеристик оружия в Weapon Editor производится следующим образом. Выбираете ствол из раскрывающегося списка Weapon Type в верхней части приложения, активируете нужный блок параметров, например Data, и вбиваете в поле напротив приглянувшегося показателя новое значение. Когда закончите, щелкните по кнопке Save. Если редактор выдаст ошибку, отключите атрибут Только чтение в свойствах файлов ThrownWeaponInfo.xml, WeaponInfo.xml и MeleeAnims.dat (лежат в папке \common\data). Переходим к изменению параметров автомобилей. Делать это вручную очень неудобно: любая ошибка может привести к зависанию или вылету игры. Куда проще и удобнее воспользоваться функциональным редактором GTA 4 Handling Editor, который позволяет модифицировать параметры всех доступных в игре средств передвижения буквально несколькими щелчками мыши. Программа имеет очень простой интерфейс — всего лишь одна форма, на поверхности которой расположены различные поля, раскиданные по вкладкам. Mass содержит блок параметров, отвечающих за массу авто. Transmission — атрибуты, передающие движку информацию о максимальной скорости, числе передач, типе привода. Suspension — данные о жесткости подвески, «прыгучести» транспортного средства. Brakes & Traction — тормозные и тяговые показатели авто. Damage — характеристики, которые используются для расчета повреждений автомобилей в реальном времени. Misc — параметры, не попавшие ни в одну из групп (максимальное погружение машины в воду, стоимость болида и т.п.). Чтобы начать работу в Handling Editor, достаточно кликнуть мышью по кнопке Load и в диалоговом окне выбрать конфигурационный файл handling.dat из каталога \common\data. После этого можете приступать к модифицированию оригинальных настроек, прописывая новые значения в различные поля. Можно превратить простую легковушку в танк (достаточно повысить в несколько раз значение параметра Mass на одноименной вкладке), улучшить управляемость мотоциклами и даже добавить в игру самолеты, нарочно вырезанные разработчиками. Если интерфейс Handling Editor покажется вам неудобным, можете воспользоваться аналогичной утилитой X Handling Editor. Обновив параметры машин, посмотрите содержимое файла carcols.dat, он определяет раскраску авто. Проще всего это сделать в неофициальном редакторе X Car Color Editor. Запустили утилиту, выбрали нужную машину из списка в правой верхней части окна программы (Vehicle’s List), подобрали новый цвет в поле Available Colors и перетащили его в нужный слот (Primary Color — первичный цвет, Secondary Color — вторичный цвет, Specular — цвет отражений). Немного поэкспериментировав, вы сможете получить сотни необычных и интересных сочетаний. Еще вам наверняка пригодится утилита GTA 4 Ped Personality Editor. С помощью этого инструмента вы сможете отредактировать основные характеристики обитателей Либерти-Сити — пол (атрибут Sex), возраст (Age), привлекательность (Sexiness), силу представителя данной категории населения (Attack), знание языков (First Language, Second Language) и т.д. Если же захотите копнуть поглубже и получить доступ к тонким настройкам, сразу после запуска редактора нажмите кнопку Flags. Активируется окно с заголовком Flags, содержащее свыше двух десятков различных атрибутов.
При создании серьезного мода не обойтись без перерисовывания текстур. Большая их часть помещена в графические архивы типов IMG и RPF из каталога \pc\models\cdimages. Например, фрагменты радара находятся в базе radar.img, скины и модели оружия — в weapons.img, раскраски и модели транспортных средств — в vehicles.img, а модели и текстурные развертки персонажей — в pedprops.img, componentpeds.img и playerped.rpf (последний архив содержит файлы, отвечающие за внешний облик главного героя). Если вы заглянете в директорию \pc\textures, то обнаружите там несколько десятков неупакованных текстур, представленных WTD-файлами. Это и всевозможные игровые шрифты, и загрузочные экраны, и интерфейсные картинки, и значки радиостанций, и много чего еще. Все упомянутые выше форматы нестандартные, для работы с ними необходим комплексный редактор. Один из самых удобных — OpenIV (www.openiv.com). Давайте разберемся, как с ним работать. Запустите OpenIV и укажите полный путь к установленной игре: выберите пункт меню Инструменты/Параметры (клавиша F12) и на закладке Общие щелкните по кнопке Выбрать напротив комментария Путь к папке с GTA 4. Выполните команду Файл/Открыть и выберите произвольный графический архив формата IMG или RPF из директории \pc\models\cdimages — скажем, vehicles.img. В окне редактора отобразится список входящих в базу файлов. Чтобы найти среди них какой-то определенный, воспользуйтесь поиском. Давайте разберемся, как заменять стандартные текстуры картинками собственного производства. Дважды щелкните левой клавишей мышки по приглянувшемуся WTD-файлу — например, admiral.wtd. Откроется окно редактирования текстурной библиотеки. Выделите нужное изображение из списка в левой части подпрограммы, после чего нажмите кнопку Сохранить изображение. Перерисуйте картинку в любом графическом редакторе. По завершении малярных работ снова зайдите в редактор текстур. Добавьте в уже открытый WTD-файл, с которым вы ранее работали, подкорректированное изображение. Делается это следующим образом. Выбираете исходный рисунок из списка в левой части приложения (тот, что экспортировали ранее в формат PNG), давите на кнопку Заменить в верхней части окна, указываете путь к модифицированному изображению и кликаете по кнопке Открыть. Чтобы новая текстура отображалась правильно, в игре необходимо изменить так называемый уровень изображения на 1. Нажмите кнопку Изменить уровень в верхней части редактора и в открывшемся окошке введите в поле New Levels 1. Сохраните картинку (кнопка Сохранить) и закройте подпрограмму. В главном окне OpenIV выберите пункт меню Файл/Пересобрать, чтобы внесенные изменения вступили в силу. Если вы хотите перекроить текстуры из каталога \pc\textures, откройте содержимое игры в режиме редактирования (Файл/Открыть содержимое), загляните в папку \textures и измените любой WTD-файл по уже рассмотренной схеме. Все рассмотренные программы, а также избранные модификации для GTA 4 вы можете взять с нашего диска из раздела Игровые дополнения/Подборки/Grand Theft Auto 4. |