- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF96:В помощь новичку
Материал из Linuxformat.
В помощь новичку
'Сегодня мы открываем новую рубрику, посвященную разработке компьютерных игр. Слово для приветствия предоставляется идеологу Игростроя LXF – Андрею Прахову.
эксперт
Андрей Прахов
Вращается в сферах
СМИ, активно
продвигая идею Open
Source в своем
окружении. Участник
нескольких игровых
проектов, большой
любитель Pascal и
почитатель C++. На
данный момент,
работает в команде
над очередной игрой,
а в свободное время
поддерживает сайт
http://linuxmedia.ru/.
В жизни любого игромана наступает волнующий момент, когда он вдруг осознает собственное величие и начинает мечтать о создании грандиозной игры всех времен и народов. Как правило, после долгих месяцев разработки, большого количества выпитого пива и выкуренных сигарет выясняется, что все, что делалось, было изначально неверно или привело совсем не к тому результату. После этого молодая команда распадается, проникаясь неверием в свои силы и вообще в звезду гейм-дева. Целью данной статьи является предостережение от неверных шагов и небольшая порция советов, основанных на личном опыте.
Итак, с чего начинается игра? Разумеется, с идеи! А идей бывает очень много, особенно на начальном этапе. Необходимо выделить суть будущей игры и попытаться законспектировать ее членораздельно для понимания всеми участниками проекта.
Особый вопрос стоит о взаимоотношениях внутри команды. Не секрет, что основой работы молодых команд является энтузиазм, желание создать «игру своей мечты». Как правило, ее члены объединены какой-то общей идеей, ради воплощения которой, они, собственно, и скооперировались. В обсуждениях, и часто весьма жарких, привносятся новые и подчас сногшибательные «фичи», причем каждый хочет сделать именно по-своему. При этом нередко происходит дикое смешение различных жанров.
Совет No1. Забудьте об «игре своей мечты»! Если вы хотите добиться реальных результатов, остановитесь на чем-нибудь конкретном, пусть это весьма отдаленно напоминает первоначальный замысел.
Очень важно на начальном этапе ввести некое подобие субординации между участниками. Понятное дело, что все тут собрались одаренные, работают на голом энтузиазме, но тем не менее должны быть люди, ответственные за организационную часть. Если у вас, к примеру, есть гейм-дизайнер, то за ним решающее слово о введении в игру каких-либо новшеств. И, обязательно, должен быть один руководитель проекта, взваливший на себя решение основных вопросов (он вполне может совмещать несколько должностей: скажем, координатора и программиста).
Очень желательно наличие в команде всех необходимых специалистов: отсутствие какого-либо звена влечет за собой излишний простой и, вследствие этого, остывание к игре всех остальных.
В основе любой мало-мальски серьезной игры лежит документ, имеющий характерное название – «дизайн-документ», скрупулезно описывающий игровой мир проекта (характеристика главного героя, NPC, расы, оружие, ход событий и т.д.). Может, это и кажется излишним бюрократизмом, но вернитесь к тому моменту, когда говорилось об индивидуальном видении идеи. Человек имеет тенденцию забывать обо всем, кроме текущей задачи. Впоследствии этот документ предоставляется издателю; его отсутствие заявляет, мягко говоря, о несерьезном отношении разработчиков к своему детищу. Дизайн-документ – это паспорт игры!
Совет No2. Не поленитесь и разложите по полочкам документально то, что вы хотели бы видеть в игре. Каждый в команде должен знать, над чем он работает и во что это выльется.
Следующей крупной ошибкой является желание всенепременно использовать свой движок. Ясно дело, ваш код самый лучший и будет иметь совсем уж запредельные возможности, но прикиньте, сколько времени вы потратите на его создание, отладку, тестирование... а как же игра? Совсем немногие компании имеют возможность заняться разработкой собственного движка. Чаще всего берется уже готовый код и оптимизируется под свои нужды. Под Linux имеется немало интересных (и главное, бесплатных!) разработок, которые, возможно, вам приглянутся: SDL, Ogre, Nebula, GLScene, QuakeEngine I, II...
Если вы предполагаете распространять игру на коммерческой основе – а это вполне естественное желание – следите за лицензионной чистотой. Издатель обязательно поинтересуется программным обеспечением, которое вы использовали. К счастью, Linux имеет немало уникальных инструментов, созданных на основе бесплатных лицензий. К примеру, если ваш 3D-моделлер желает использовать 3DS Max, намекните ему о существовании не менее мощного и бесплатного редактора Blender (кстати, Blender имеет прямой экспорт модели в формате движка Ogre).
И, наконец, на форумах, посвященных гейм-деву, часто можно встретить вопрос: «А какой язык программирования мне использовать?». Да какой знаете, тот и используйте. Но! Следует помнить о том, что назначения и возможности у языков различные. Так, C# или Pascal хороши для разработки дополнительного инструментария, Pyhton или Lua – для скриптов, а вот основной код лучше все-таки писать на C/C++. Тем более, некоторые движки имеют привязки к определенным языкам. Между прочим, планируйте свои ресурсы с учетом того, что придется писать немало промежуточных утилит: всевозможных редакторов частиц, уровней, файлов конфигурации, и т.п. Вот для таких задач очень даже подойдут быстрые средства разработки.
Совет No3. Тщательно планируйте программную сторону проекта с учетом ваших возможностей. Не стоит, скажем, тратить силы на создание уровней в Blender, лучше написать специализированный редактор для этих целей. В то же время, создание дополнительного инструментария не является первоочередной задачей, и если есть возможность найти что-то готовое и подходящее – не идите на поводу своих амбиций, а используйте уже имеющееся.
Подытожим. Создание игры – процесс длительный, увлекательный и достаточно затратный. Средств для этого, ясное дело, у начинающих не имеется, поэтому важно все время подогревать интерес людей к проекту. Если человек не видит результата своей работы, то он очень быстро охладевает к ней.
Старайтесь шире использовать чужой код с целью экономии времени. В Интернете можно найти немало готовых разработок, к примеру, на http://www.sourceforge.net. В этом нет ничего зазорного!
Следите за лицензионной чистотой, заранее думайте о кислом выражении лица издателя. Это касается не только инструментария разработки, но и основного кода, арта, музыки.
Ну и удачи, и большо-о-о-го терпения!