Вобщем недавно шарился я по просторам глобальной сети и набрел на очень неплохую статейку, которую и собираюсь поведать всем новичкам геймдева, которые не представляют себе жизни без игростроя. Почему я решил поместить эту статью в данный раздел? Ну так или иначе, статья вам поможет в создании игр, а именно в начинании этого великого дела. Автор статьи и переводчик, названы в конце статьи, это я к тому чтобы вы не подумали что это я писал. Присаживаемся поудобнее и читаем...
Как научиться делать игры
Когда я разговариваю с людьми, желающими заниматься разработкой игр, первое, что я слышу от них, часто сводится к фразам 'Как научиться делать игры?' или 'Я хочу сделать игру, такую как Quake/Everquest/Starcraft и т.д.' Ответ на первый вопрос лежит за гранью реального, так он должен охватить слишком много разных аспектов, каждый из которых может быть бесконечно сложен.
Второе утверждение также нереально - в излагаемых в нем намерениях. Starcraft, Everquest и Quake делались командами профессионалов, которые распоряжаются бюджетами обычно превышающими миллион долларов. И что более важно, все эти игры были сделаны людьми, имеющими большой опыт в создании игр. Они не просто взяли и решили делать игры, после чего стали выпускать хиты - они начинали с малого и достигли успеха своим трудом. Это то, что нужно понять каждому, кто заинтересован в том, как научиться создавать игры, - понять и повторять, повторять до тех пор, пока это не станет частью ваших мыслей, такой, что вы бы не смогли представить себе жизнь без этой очевидной, универсальной истины.
До тех пор, пока вы не поймете, что все навыки для разработки игр изучаются накоплением опыта (что означает начинать с очень малого и работать, чтобы продвигаться вперед), вы будете обречены на то, что вы никогда не закончите ваши проекты. Даже те немногочисленные команды, которым удалось закончить нетривиальный проект без того, чтобы сделать до этого несколько небольших, должны были обучаться постепенно, просто они затратили гораздо больше времени, чем могли бы сэкономить, если бы начали с меньших проектов.
Итак, как же мне начать?
Тетрис.
Тетрис является единственной идеальной игрой, с которой следует начать путь к становлению опытного разработчика игр. Потому что у тетриса есть все элементы, которые можно увидеть во всех играх, и его можно сделать с наименьшими затратами труда. Кроме того, вам не нужно быть художником, чтобы сделать тетрис, который хорошо выглядит. Каждый, кто может нарисовать квадрат с помощью программы рисования, может сделать тетрис коммерческого качества.
Это еще одно преимущество в пользу того, чтобы начать с тетриса. Вы сможете не только сделать полностью работающую игру, забавную и притягательную, она еще и будет выглядеть не хуже любой коммерческой версии. Квадраты есть квадраты, неважно кто их рисует, и тетрамино (фигуры в тетрисе) являются всего лишь набором из четырех квадратов.
У тетриса есть все компонетны, общие для абсолютно всех игр. У него есть игровой цикл (процесс, который повторяется снова и снова, до тех пор, пока игра не закончится). Игровой цикл читает входные данные, обрабатывает их, обновляет элементы игры (падающие фигуры), и проверяет условия выигрыша/проигрыша.
Каждая игра, которую вы будете когда-либо создавать, делает все эти вещи, поэтому очень важно изучить этот процесс и практически реализовать его. После того, как вы завершите эту, вашу первую игру, вы сможете осознать, как тяжело это может быть, и как долго это может занять при создании следующих игр. Без того, чтобы сделать это хотя бы раз до конца, вы никогда не будете полностью иметь должного представления о каждом из этих элементов. Когда у вас будут большие проекты, будет больше неизвестных вещей, судить о сложности которых и количестве затрачиваемого времени вы не сможете. А если вы не поймете полностью весь процесс, потому что вы не смогли реализовать его, вы будете беспомощны при составлении расписаний и оценке временных затрат, и в конце концов потерпите неудачу.
Есть кое-что, что мне следует упомянуть - когда вы сделаете вашу игру, вы не сможете назвать ее 'Тетрис'. Тетрис это торговая марка Tetris Company, которой владеет Алексей Пажитнов, изобретатель тетриса. Он обладает исключительным правом на использование имени 'Тетрис', и я полагаю, что верно также и то, что вы не можете сделать игру с падающими блоками, используя в имени окончание 'трис', так как это очевидно играет на популярности имени Тетрис.
Однако, все это неважно для вас, если вы назовете вашу игру 'Падающее небо', или еще как-нибудь без окончания 'трис', так как компания-изобретатель не владеет игровым процессом, интерфейсом, или идеей падающих блоков. Если кто-либо скажет вам что-нибудь другое, скажите, что нельзя владеть идеями, и если вам нужны доказательства, посмотрите информацию на USPTO ( http://www.uspto.gov/ ).
Что же дальше?
После того, как вы полностью, абсолютно, до конца завершите вашу версию тетриса, вы готовы для следующего испытания - Breakout.
Breakout это похожая игра, но она требует более сложной обработки столкновений, чем тетрис. Вам также понадобится реализовать простую физику отражения мяча от различных частей биты и кирпичей.
Разработка и реализация уровней - еще одна ваша задача при написании Breakout, и для того, чтобы ваша игра имела больше одного уровня, вам будет нужно определиться со способом сохранения карт уровней. Это будет работа с еще одним компонентом всех больших игр - загрузка, сохранение ресурсов и переключение уровней.
После того, как вы закончите ваш Breakout-шедевр, вам следует двигаться дальше, путем создания игры Pac-Man. Pac-Man это большой шаг вперед, потому что в этой игре используются элементы искуственного интеллекта врагов - artificial intelligence (AI). Вы могли и не знать, но в оригинальном Pac-Man у всех четырех различных призраков есть свои различные цели, которые они пытаются достичь чтобы победить вас как команда. Агрессор будет пытаться следовать за вами кратчайшим путем, заставляя вас напрямую убегать от него. Перехватчик попытается добраться до ближайшей развилки, куда вы должны будете попасть, убегая от агрессора. Второй перехватчик постарается оставаться ближе к середине и отрезать вас от туннелей с боков экрана. И последний призрак будет бесцельно слоняться, благодаря чему он часто находится в секции, которая вам необходима для завершения карты.
Такой детальный AI был довольно сложен для игр того времени, и для вашей первой игры с вражеским AI это будет хорошим испытанием.
Pac-Man также увеличивает сложность карт и добавляет больше гибкости для использования звуков, так как звук определенно был одним из важных элементов успеха Pac-Man. (В конце концов, что бы из себя представлял Pac-Man без жужжащего звука передвижения игрока?).
Напоследок, игра, которую, как я полагаю, вам следует создать, это аркада с боковым перемещением, такая как Super Mario Brothers, где вы можете прыгать по платформам, стрелять, приседать, и взаимодействовать с врагами.
В играх с боковым перемещением появляется возможность прибавить сложности вражескому AI, через использование боссов, имеющих свои стили поведения, которые, играя, вам нужно научиться определять, чтобы победить. Также добавляется сложность отображению на экране. Теперь вы должны создать экран с возможностью прокрутки по крайней мере в двух направлениях, если не в четырех, и будете иметь дело с 'обрезанием' игровой области по границе экрана, что достаточно сложно. Вам также будет нужно поработать над физикой прыжков и движений персонажей и траекториями выстрелов.
Также понадобится значительно больше врагов, чем до этого, и вам будет необходимо отслеживать их текущее состояние (жив/мертв, активен/неактивен), и определять, на экране ли они, или нет. Сложность уровней также увеличивается, как и сложность хранения ресурсов карт/персонажей, и на этом шаге вам определенно понадобится создать редактор уровней.
Редактор уровней должен иметь возможность размещения кусков фона, прокрутки фона, прокрутки карты, выбора элементов фона как кистей, работы с кистями, функции 'Вырезать-вставить', отмены и размещения врагов. Если вы решите обойтись без написания чего-либо из вышеперечисленного, вы скорее всего пожалеете об этом, и если у вас есть художник или дизайнер уровней, им вероятно также не очень это понравится (как бы ВЫ себя чувствовали, если бы вам пришлось редактировать уровень работая с текстовыми файлами, содержащими множество чисел и запятых?). Я бы также предложил вам сохранение предыдущих версий, так как часто легче вернуться к предыдущей версии, чем перерисовывать все заново.
И наконец, у игр с боковым перемещением есть настоящая возможность выигрыша! Когда вы доходите до конца таких игр, вы на самом деле ПРИХОДИТЕ куда-то, поэтому вы можете также добавить в игру развивающийся сюжет (и не забудьте какой-нибудь фейерверк в конце уровня, для того чтобы у игрока было чувство завершенности и НАСТОЯЩЕЕ шоу с фейерверками в награду за победу в игре... очень недружелюбно просто помещать на экран слова 'Вы победили!', после того как игрок провел бесчисленные часы над игрой).
Завершающие штрихи...
Закончить игру это не значит просто заставить ее работать. У законченной игры должен быть открывающий экран, закрывающий экран, опции меню (если они необходимы, по крайней мере должны быть инструкции как начать игру и как играть), вводный экран перед началом игры, финальные заставки и таблица рекордов (там, где она нужна).
Если вы не можете поместить вашу игру в игровой автомат 80х годов, если она не будет в нем смотреться должным образом, то ваша игра не завершена.
Есть большая разница между игрой, представляющей из собой 'скелетную основу', и игрой, над которой вы поработали, сделав все необходимые завершающие штрихи. По времени это займет от пары дней до двух недель (зависит от размера игры). Это время будет значительно увеличиваться (иногда экспоненциально) по мере вашего продвижения от тетриса к Breakout и так далее.
Тем не менее, результат будет очень важен, касательно как вашего понимания процесса разработки игр, так и вашей личной гордости своей работой, а также удовлетворения и завершенности (которая творит чудеса в плане уверенности в своих силах!).
Нелегко показывать людям вашу игру и постоянно просить их не обращать внимания на тот или иной недочет - у них не будет точно такого же впечатления, какое могло бы быть, если бы игра работала без проблем и все было бы хорошо преподнесено и полностью завершено. Разве что только другие разработчики игр более терпимы в этом отношении, так как они знают все сложности процесса разработки.
Что более важно, вы досконально изучите, как по-настоящему нужно завершать игры. Если вы остановитесь на том, чтобы игра просто работала, вы упустите множество деталей, необходимых для создания законченной игры, что приведет к прорехам в ваших знаниях, когда в будущем вы станете планировать большие проекты.
Но эти игры глупые!
Вобще-то, эти игры ясно показывают основы создания ЛЮБЫХ игр. Отбросьте в сторону причудливый трехмерный интерфейс игры со стрельбой - она так и останется стрелялкой. Вы могли бы сделать такую же игру с двумерным видом, при этом сам игровой процесс программировался бы точно также.
Разве не глупо делать игру, которая будет иметь СОВЕРШЕННО одинаковые элементы с игрой Quake? Если вы уберете 3D интерфейс и посмотрите на то, что действительно происходит в игре, кажется ли это все еще таким же недостижимым?
Даже если и кажется - это проект не для начинающих. Элементов, которые следует разработать и довести до конца даже первом проекте настолько много, что я настоятельно рекомендую вамследовать указанной мной последовательности игр, для того чтобы постепенно наращивать свое понимание процесса их разработки. (Когда вы учитесь плавать, разве вы СРАЗУ ЖЕ начинаете с прыжка с большой высоты в глубокую воду? НЕТ! Вы начинаете на мели, вы учитесь плавать по-собачьи, и уже затем постепенно изучаете все остальное.)
Прежде чем вы что-либо начнете, вам следует выяснить для себя, что именно вы хотите. Вы хотите делать игры, или просто научиться копировать технологию Quake? Если все, что вас интересует, это технология, тогда начните изучать графические технологии и не тратьте время на игры.
Если вы действительно заинтересованы в создании игр, то вам следует контролировать свое желание сделать игру с использованием новейших технологий и фокусироваться на достижении возможности сделать это. Лучший способ сделать это - практиковаться в создании и (что более важно) завершении игр, следуя указанным мной или подобным путем, что даст вам необходимый опыт.
Гордитесь вашими играми!
Вы слышали, чтобы студенты стеснялись того, что они студенты, просто потому что они еще не работают? Вы учитесь, и даже простую игру сложно создать, особенно если вы хотите сделать это ХОРОШО. Это прекрасно видно по людям, которые НЕ сделали даже простой игры, но постоянно об этом говорят. Когда вы закончите игру, можете считать, что вы на более высшем уровне, чем тот, кто не сделал свою игру, даже если его идея звучит феноменально и соответствует играм последней моды. Это не игра, если вы не можете в нее играть.
Я создал свою игру, где же мой Ferrari?
Мне жаль, но одна игра, две игры, даже пять игр не ведут к этому. В прошлом году для РС было выпущено 3500 игр, и только несколько принесли много денег. Большинство из них делались не маленькими группами с самофинансированием, они финансировались крупными издателями, и, возможно, имели многомиллионные бюджеты и примерно такие же рекламные кампании. Это не та индустрия, к которой можно просто присоединиться, требуется много времени и опыта, чтобы научиться делать качественные игры, которые будут хорошо продаваться, и которые в дальнейшем будут финансировать издатели.
Тем не менее, есть нечто большее в жизни создателя игр, чем многомиллионные бюджеты, и я настоятельно рекомендую обратить на это внимание. Хотя, конечно, нет ничего плохого или зазорного в создании коммерческих игр с малым бюджетом, они могут быть даже лучше высокобюджетных, и при этом гораздо легче будет найти издателя. В конце концов, вам не придется тратить годы на один и тот же проект, и если он не раскрутится, потеря будет невелика.
Просто осознайте, чего именно вы хотите от создания игр и сконцентрируйтесь на достижении этого.
Автор статьи : Geoff Howland
Перевод : Евгений Казеко
Ссылка на источник здесь.