05 ноября 2008
Обновлено 17.05.2023

Горячая линия: игрострой

Горячая линия: игрострой - изображение обложка

Льюис24 часа в сутки вопросы по созданию, модифицированию и вскрытию игр принимаются на адрес gamedev@igromania.ru и по SMS на короткий номер 1121 с префиксом #dev (в начале сообщения печатаете слово #dev, а затем, через пробел, сам вопрос). Стоимость каждого SMS — 3 рубля. Обратите внимание, ответы на вопросы даются только в журнале.

Анимация скелетов

В папках с играми то и дело встречаю какие-то непонятные SMD-файлы. Что это такое? Недавно удалил несколько из Team Fortress 2, так в игре у меня персонаж начал не бегать, а парить над землей с выставленными в стороны руками и ногами. А потом игра просто вылетела. — _SMS с номера +7-916--06-49_Все очень логично. Моделька персонажа перестала бегать, потому что вы стерли скелетную анимацию: именно она обычно пакуется в файлы формата SMD, иногда в них же прячутся текстуры модели и карта нормалей, но это уже довольно редкий случай. Изначально формат был придуманValve Softwareдля скелетной анимации первогоHalf-Life* , но оказался таким удобным, что его тут же взяли на вооружение и другие компании (благо никаких патентов Valve не оформляли).

Единственный недостаток SMD — система хранения файлов. Модель хранится отдельно (в главном SMD-архиве), а в остальных файлах запакованы данные об анимации (на одну анимацию один файл). Но даже несмотря на это (при вызове анимации приходится обращаться последовательно к двум файлам — сначала вызывать модель, а затем скелетную анимацию к ней), SMD в разы удобней другого популярного «скелетного» формата — MDL. В каждом MDL-файле хранится и модель, и анимация к ней. Казалось бы, это значительно удобнее, чем SMD, ведь движку каждый раз придется вызывать в память лишь один блок. На деле же MDL-файлы занимают очень много места. Как-то ради эксперимента (и чтобы увеличить скорость загрузки) мы попытались перевести все SMD-файлы (и это только новые анимации, исходные зашиты в движок игры) мода для Titan Quest в MDL. В итоге размер дополнения вырос с 72 Мб почти до 1 Гб.

При этом MDL-файлы неплохо сжимаются, и при желании их можно было бы упаковать до вполне разумных объемов — не до 72, так уж до 100 Мб точно. Вот только в этом случае игра начнет нещадно тормозить. Каждый раз движку придется сначала распаковывать архив и только после этого подгружать его в память.

Все грани полигона

Постоянно путаюсь: полигон — это всегда треугольник или нет? Вы иногда используете эти термины в качестве синонимов, но когда я смотрю на трехмерные модели персонажей в 3DS Max, то там попадаются и четырехугольники, и пятиугольники. Как оно на самом деле? — _SMS с номера +7-903--14-57_*

В переводе с английского polygon означает многоугольник. То есть полигоном формально можно назвать хоть стоугольник, и это будет правильно. Но в компьютерной графике под полигоном обычно понимают « простейшую геометрическую фигуру, состоящую из трех вершин и соединяющих их отрезков », то есть треугольник. Это удобнее всего. Если вы хоть немного помните школьный курс тригонометрии, то для вас не секрет, что треугольник является жесткой фигурой. То есть при одной длине составляющих его отрезков возможен строго один вариант треугольника — углы изменить не получится. А это значит, что для описания одного треугольника программными средствами нужно задать всего три числа — либо длины сторон, либо координаты вершин (можно даже двумя числами обойтись — задать два угла или один угол и длину стороны). Никаких лишних углов, ориентаций и прочего мусора в коде использовать не придется.

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

Если вы создаете модель не в игровом редакторе, где такие полигоны из нескольких треугольников заранее четко описаны в коде, а в графическом пакете (скажем, в 3DS Max ), то использовать фигуры сложнее треугольника не стоит. И вот почему: даже простейший квадрат можно разбить на две разных пары треугольников (диагонали из разных углов), а если вершин еще больше, то число возможных комбинаций треугольников возрастает в геометрической прогрессии. Предугадать, на какие группы треугольников разобьет ваш многоугольник движок конкретной игры, невозможно, последствия же могут быть самыми печальными. Скажем, если текстура накладывается по определенным координатам каркасной сетки, то в итоге вы получите изображение рук где-нибудь в области носа, сам нос — под мышкой, а глаза и вовсе окажутся натянутыми на колено.

GTA 4: анатомия и физиология

Скоро выходит GTA 4. Я слышал, что движок этой игры, кроме графики, мало чем отличается от GTA: San Andreas. Это правда? Может, и утилиты будут похожи, не придется переучиваться? — _SMS с номера +7-901--45-12_GTA 4создан на новом движкеRAGE*(Rockstar Advanced Game Engine). Напомним, что в основу всех GTA, начиная сGTA 3и заканчиваяGTA: San Andreas, был положен движокRenderWareот компанииCriterion. И рокстаровцы при разработке собственной технологии явно ориентировались на него. По сути, RAGE отличается от RenderWare только внутренней структурой кода, поддержкой эффектов постобработки, новых HDRI-модулей, шейдеров и физической библиотекиEuphoria , которая обеспечивает реалистичное падение тел и плавное движение машин. А вот все форматы архивов, таблиц, логика движка — точно такие же, как в RenderWare.

Весь контент (звуки, модели, скрипты, текстуры) RAGE пакует в IMG и RPF -архивы. В GTA: SA базы данных использовались только для хранения текстур и моделей, а ролики, тексты и конфигурационные файлы лежали в исходных форматах.

Помимо этого в GTA 4 появились дополнительные форматы хранения игровых моделей и текстур, а также абсолютно новый скриптовый движок (так что скриптингу придется учиться заново). А вот все IPL- , IDE- , DAT- и XML- документы по-прежнему могут быть изменены в любом текстовом редакторе, подойдет даже «Блокнот».

Уже сейчас, ориентируясь на консольную версию GTA 4, игроки создают свои утилиты, многие из них выйдут одновременно с релизом игры на PC. В частности, готовится несколько редакторов скриптов, модификатор игровых архивов, экспортеры 3D-моделей и даже мощная программа для редактирования карт. Самое же для нас важное, что все эти программы создают люди, занимавшиеся когда-то моддингом GTA: SA, и внутренняя архитектура редакторов будет точно такой же, вплоть до совпадения кнопок в меню (это отлично видно на скриншотах).

Ну и в заключение разговора несколько полезных ссылок:

http://scope.quackler.com по данному адресу в Сети проживает онлайновый редактор скриптов для GTA 4. Чтобы посмотреть, как устроен код миссий, придется зарегистрироваться. Только после этого вам дадут доступ к синтаксису нового скриптового движка (кстати, он очень напоминает язык программирования C++ ) и разрешат попрактиковаться в написании несложных модификаций/заданий к игре. Обратите внимание, полнофункциональные инструменты для редактирования скриптов выдаются только зарекомендовавшим себя пользователям с сайта GTAForums.com. Такая вот своеобразная мера предосторожности, чтобы скрипты раньше времени не уплыли к пиратам.

http://openiv.sannybuilder.com блог создателей редактора OpenIV (кстати, это отечественная разработка), который позволяет менять практически весь игровой контент. Здесь регулярно публикуются скриншоты модулей, вживленных в тело OpenIV, интересные заметки и некоторые другие материалы, посвященные GTA 4. Релиз первой версии OpenIV запланирован на конец ноября 2008 года.

Безумный генератор

Не сочтите меня ленивым, но я постоянно использую встроенные в редакторы игр генераторы карт. Вот и сейчас начал очередную карту для C &C 3: Tiberium Wars, и первым делом рука потянулась к кнопочке «Создать карту автоматически». Но, черт возьми, почему эти генераторы вообще не развиваются? Я уже лет шесть слежу, не придумают ли разработчики что-то новое, но воз и ныне там — как генерировалась полная ерунда, так и продолжает.

И сразу вопрос вдогонку: можно ли с помощью редактора WorldBuilder программно создавать объекты на карте? А то я уже подумываю, что нормальный генератор карт можно сделать самостоятельно, и он в любом случае будет лучше, чем тот, что предлагают разработчики. — Алексей Старостин

Что правда то правда. Автоматические генераторы карт практически не эволюционируют. Можно долго рассуждать на тему, что этот довесок к основным утилитам делается по остаточному принципу, что на него никогда не хватает времени, да мало ли какие еще причины существуют. Вот только одно «но». Похожий вопрос мы задавали одному из известных западных разработчиков ролевых игр около года назад. В финальную версию интервью этот вопрос так и не попал — руководство компании попросило удалить его из текста и вообще никак не использовать с привязкой к конкретной игре, человеку и компании. Поэтому обрисуем ситуацию, не переходя на личности.

Есть много способов сделать генераторы карт лучше. Давным-давно можно было бы научить их делать грамотный баланс сторон (не просто копировать, а именно добиваться баланса при разном наборе строений/юнитов/ресурсов), правильно распределять по карте ресурсы (если речь о стратегиях) или монстров (если речь о ролевых играх), да что там — даже сюжеты квестов генератор уже вполне мог бы придумывать сам. Вот только разработчики вполне сознательно всего этого не делают.

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

Так что эволюция генераторов искусственно тормозится некоторыми разработчиками. А кто-то просто не задумывается над этой проблемой.

Что же касается генерации объектов в WorldBuilder, то тут все очень просто. В редакторе для этого есть два основных скрипта (оба проживают в категории Scripting\Unit include Structures Other\Spawn ). Spawn: Spawn Unit идеально подходит для добавления на карту предмета по заданным координатам, подсмотреть которые можно в строке состояния в нижней части редактора. Spawn: Spawn — Unnamed Unit on a Team at a Waypoint удобнее использовать, когда требуется поместить, например, юнит на вейпойнт.

Одно огорчает: сделать хороший генератор самостоятельно вряд ли получится. Ведь скриптового доступа к соответствующим процедурам движка, увы, не предусмотрено.

GTA-локализация

В последних выпусках «Игромании» вы рассказывали про локализацию модов к компьютерным играм. А как насчет локализации самих игр? Я вот с нетерпением жду выхода GTA 4 и собираюсь перевести ее своими силами. А пока начинаю перевод GTA: San Andreas. Но сразу возникло множество проблем. Не могли бы вы поэтапно описать, что и как нужно делать? Да и стоит ли вообще браться? — Роман Грохов

Ничего сложного в переводе GTA: San Andreas нет, локализовать его значительно проще, чем, скажем, Half-Life 2 или Warcraft 3. Игра уже не новая, поэтому рассказывать про ее перевод совсем уж без повода мы бы не стали, но… Уже сейчас анонсированы утилиты для редактирования GTA 4 (подробнее об этом читайте на предыдущей странице), и они очень похожи на аналогичные программы для GTA: SA. Так что давайте потренируемся, а когда четвертая часть выйдет, изучим тему более подробно.

Для перевода игры нам понадобятся следующие инструменты: TXD Workshop — редактор текстур, Grand Theft Auto GXT Editor — редактор GXT-файлов, содержащих все тексты (описания миссий, названия пунктов меню, подсказки, сообщения об ошибках). Оба редактора лежат на нашем диске в разделе «Игрострой».

Первым делом необходимо научить игру понимать русские буквы. Запустите TXD Workshop и, выбрав пункт меню File/Open , откройте файл fonts.txd из папки \Models установленной игры. Перед вами появятся названия двух текстур, которые нужно изменить. Тут есть два варианта. Либо взять уже готовый набор русских шрифтов font2r.bmp , поставляемый вместе с GXT Editor, и импортировать его поверх английской раскладки, либо перерисовать оригинальный font2r.bmp в «Фотошопе».

Когда файл с русским шрифтом готов к импорту в игру, кликните по кнопке Alpha/Mask в TXD Workshop, выберите из списка первое изображение, нажмите кнопку Import на панели инструментов и импортируйте в TXD-файл текстуру font2r.bmp. Проделайте ту же операцию со второй текстурой. Сохраните изменения ( Ctrl+S ) и выйдите из редактора.

Запустите Grand Theft Auto GXT Editor. Большую часть экрана занимает таблица, в нее загружаются все игровые тексты из GXT-файлов. Под таблицей располагается окно просмотра. Слева находится список секций GXT-файла: в секции Main содержатся тексты миссий и меню, сообщения, подсказки, в остальных располагаются сообщения для отдельных миссий, комментарии к скриптам и т.д.

Выберите пункт меню File/Open и откройте файл american.gxt из папки \Text. Далее нужно настроить программу так, чтобы можно было без всяких проблем вбивать с клавиатуры русские литеры. Для этого проследуйте в меню Settings/Translation , в появившемся окне нажмите кнопку Load , загрузите таблицу транслитерации gtavcrus.tbl , находящуюся в каталоге с редактором текстов GTA: SA, и нажмите кнопку OK. Теперь мы можем печатать по-русски, игра нас поймет, но поймем ли мы себя сами: в окне предпросмотра вместо нормальных русских букв пока отображается какая-то абракадабра. Чтобы устранить эту проблему, зайдите в меню Settings/Load First Texture и в новом окне откройте файл font2r.bmp. Проделайте аналогичную операцию в меню Settings/Load Second Texture.

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

Ну и в завершение разговора еще одна рекомендация. Если захотите отформатировать игровой текст (например, выделить какие-то слова диалога жирным или наклонным шрифтом), то можно использовать вот такой прием. Допустим, вы перевели фразу « Эй, приятель! Заложи взрывчатку в гараже », нужно выделить сочетание слов « заложи взрывчатку ». Для этого перед словом « заложи » и после слова « взрывчатку » необходимо поставить параметр h , заключенный между двумя тильдами, то есть: « Эй, приятель! ~h~Заложи взрывчатку~h~ в гараже ». Другие опции форматирования перечислены в файле gxtedit_rus.txt , поставляющемся вместе с GXT Editor.

Ё-моё

Меня всегда удивляло, почему в газетах, журналах и книгах так редко встречается буква «ё». В «Игромании» вы ее, кстати, тоже не используете. Но тут я еще могу понять — сложности набора, не все типографии поддерживают, текст иногда плохо выглядит, если в нем много этой буквы. Но почему разработчики и локализаторы игр упорно отказываются от «ё»? — Антон Губерник

С играми все еще сложнее, чем с печатными изданиями. Главная проблема заключается в том, что на злосчастную «ё» нет места в таблицах ASCII-кодов. Стоит забыть всего про одну буковку, и весь текст превратится в нечитаемую мешанину. Так что с «ё» редакторы локализаций борются всеми возможными способами. Существует даже специальный набор правил, которые не позволяют коварной букве проникнуть в игру:

1. Во всех программах для работы с текстом (Excel, Word) отключаются функции автозамены.

2. Пишется специальный макрос, проводящий замены всех букв «ё».

3. Для игрового движка создается специальная программа, отслеживающая изменения в ASCII-таблицах. Если вдруг код одной из ячеек будет заменен, то такая утилита тут же сообщит об этом и «заморозит» состояние всех ячеек в том виде, в каком они были до изменения.

4. Очень часто редакторы составляют длинные списки слов русского языка, в которых есть буква «ё», и после того, как все диалоги уже запакованы в игру, еще раз задают поиск по этим словам, чтобы окончательно убедиться, что ни одной буквы «ё» в игре нет.

Кстати, не подумайте, что подобные военные действия ведутся только против буквы «ё». Похожим образом сражаются и с другими спецсимволами, например со «слитным» троеточием (не три отдельных символа подряд, а знак троеточия, кодирующийся в движке одной цифрой), с длинным тире, состоящим из двух маленьких. Вроде бы мелочи, но в игре такие символы могут выглядеть как черт-те что, поэтому от них приходится избавляться.

Игры БОЛЬШИЕ и маленькие

Как разрабатываются маленькие игры — для телефонов и наладонников? Их делают те же люди, что и игры для PC, или там свои команды, свои издатели? — _SMS с номера +7-916--71-08_На этот вопрос мы попросили ответить специалистов компанииFour Entertainment*, разрабатывающей игры для смартфонов, —Романа Кунина, руководителя разработки мобильной онлайновой игрыGo, Toury!, и директора компанииАлександра Соболева.[Игромания]: Насколько сильно разработка игр для мобильных платформ — телефонов, смартфонов, КПК — отличается от производства игр больших?[Роман]: Одно из главных отличий в том, что малые игры обычно делаются сразу под несколько платформ, например под несколько моделей телефонов, смартфонов и КПК от разных производителей. Вроде бы одну и ту же игру делаешь, но различается программная среда, разрешение. Иногда приходится не только графику адаптировать, но и код переписывать с нуля. Ведь делать игру под Symbian и Windows Mobile — приблизительно то же самое, что переписывать Windows-ориентированный движок под Mac OS.

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

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

[Игромания]: Есть ли отличия в программных средствах, подходе к дизайну, производству графики?

[Роман]: С геймдизайном все точно так же, как и в больших играх. Само собой, при работе над каким-нибудь эротическим пасьянсом дизайн не представляет особой сложности — и так понятно, что и как делать. Но если вы создаете аркаду, квест или онлайновую игру (как раз наш случай), то геймдизайнер автоматически становится главным. У нас перед дизайнерами однажды стояла интересная задача — как сделать онлайн-игру так, чтобы пользователю было во что поиграть, когда Сеть недоступна.

Если до этого вы работали над большими играми, то кое-чему придется переучиться. У меня лично был забавный опыт с художниками. Так сложилось, что за последние пять лет я сильно привык к 3D-графике. А тут — спрайтовый движок. Некоторые банальные вещи в голове не укладывались, до смешного доходило: как это так — чтобы персонажа боком повернуть, его надо почти с нуля перерисовывать! А ведь это отдельное техзадание, время, деньги…

[Игромания]: Сколько времени уходит на среднестатистическую мобильную игру? Сколько денег нужно?

[Александр]: Почему-то многие считают, что мобильные игры делаются очень быстро и стоят очень дешево. Если сравнивать с PC или Xbox 360, то да, деньги поменьше, но суммы все равно серьезные, да и разработка может длиться довольно долго.

Простейшую стрелялку на одном экране можно сделать и за 3-4 дня, потратив на нее менее $1000, но среднестатистический платформер обходится уже в $50-100 тыс., а работа над ним длится около полугода. Если же говорить про мобильные онлайновые игры (их популярность сейчас стремительно растет), то они могут стоить более $1 млн и разрабатываться по полтора-два года.

[Игромания]: Каковы основные пути распространения мобильных игр? Из чего складывается доход разработчика?

[Александр]: Главный доход — деньги, которые игроки платят, чтобы скачать игру. Эта сумма делится между контент-провайдером и разработчиком. Кстати, в мире мобильных игр девелоперу не так сложно стать издателем — надо лишь договориться с игровыми порталами, многие из них берут не такие уж большие деньги.

Посчитайте сами. Одна игра стоит $5. Если на разработку было потрачено $10 тыс., то, чтобы окупить расходы, нужно всего 2000 скачиваний, а обычно их на порядок больше.

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

[Игромания]: В вашем бизнесе только свои издатели или мобильными играми занимаются издатели больших игр тоже?

[Александр]: Издатели у нас свои, хотя и «большие братья» тоже заглядывают в нашу обитель. Но чаще всего это происходит тогда, когда им нужно выпустить на мобильных устройствах небольшую игру в поддержку своего хита на PC и домашних консолях. Готовится к выходу какой-нибудь DOOM 4, люди его активно ждут, а тут на смартфонах — раз! — и появляется одноименная аркада. Это отличный способ заработать, да еще и разрекламировать главный проект.

[Игромания]: Насколько сильно рынку мобильных игр досаждают пираты?

[Александр]: Пираты уж точно не убивают мобильные игры. Да, есть определенные потери, но их можно назвать незначительными. Онлайновым же проектам пиратство вообще не страшно — деньги-то получаются от продажи контента. Были случаи, когда пираты воровали всю начинку с сервера, запускали свой собственный и начинали зарабатывать на этом. Но и в этом случае всегда можно сменить протокол связи и оставить злодеев с носом.

[Игромания]: Насколько просто разработчику больших игр перепрофилироваться в разработчика малых? Бывают ли обратные случаи?

[Роман]: По-разному случается. Как ни странно, но проблемы чаще возникают, когда большие разработчики приходят в индустрию маленьких игр. Они банально недооценивают сложность проектов. Кажется, что уж если делал сложные игры для PC, то с телефонами проблем быть не должно. И тут оказывается, что очень многие приемы (дизайнерские и программные) на малых платформах не работают. Нельзя просто взять и «сделать красиво», вызвав нужный шейдер из памяти видеокарты. Здесь такого просто нет. И подобных мелочей миллионы. Переходить с разработки мобильных игр к проектам для PC тоже совсем не просто. Представьте, что вы два года проработали над двухмерным графическим движком, все знаете о программировании спрайтовой графики на J2ME (Java для мобильных платформ), а вам предлагают написать каскадный Shadow Map на С++. Если такого опыта не было, придется многому научиться.

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь