Абзац
:: Поиск
:: ПоддерЖка ПрОекта
Webmoney:
  • Z610389805629
  • R427996570517
  • E023541002978
  • :: №20 (27.06.2004) ПрОсмотрОв: 3994

    Рубрика: В помощь разработчику.

    Номер: №20 (27.06.2004).



    Как научиться делать игры

    Когда я разговариваю с людьми, желающими заниматься разработкой игр, первое, что я слышу от них, часто сводится к фразам «Как научиться делать игры?» или «Я хочу сделать игру, такую как Quake/Everquest/Starcraft и т.д.» Ответ на первый вопрос лежит за гранью реального, так он должен охватить слишком много разных аспектов, каждый из которых может быть бесконечно сложен.

    Второе утверждение также нереально - в излагаемых в нем намерениях. Starcraft, Everquest и Quake делались командами профессионалов, которые распоряжаются бюджетами обычно превышающими миллион долларов. И что более важно, все эти игры были сделаны людьми, имеющими большой опыт в создании игр. Они не просто взяли и решили делать игры, после чего стали выпускать хиты - они начинали с малого и достигли успеха своим трудом.

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

    Итак, как же мне начать?


    Тетрис

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

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

    У тетриса есть все компоненты, общие для абсолютно всех игр. У него есть игровой цикл (процесс, который повторяется снова и снова, до тех пор, пока игра не закончится). Игровой цикл читает входные данные, обрабатывает их, обновляет элементы игры (падающие фигуры), и проверяет условия выигрыша/проигрыша.

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

    Есть кое-что, что мне еще следует упомянуть. Когда вы сделаете свою игру, вы не сможете назвать ее «Тетрис». Тетрис это торговая марка Tetris Company, которой владеет Алексей Пажитнов, изобретатель тетриса. Он обладает исключительным правом на использование имени «Тетрис», и я полагаю, что верно также и то, что вы не можете сделать игру с падающими блоками, используя в имени окончание «трис», так как это очевидно играет на популярности имени Тетрис.

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

    Что же дальше?

    После того, как вы полностью, абсолютно, до конца завершите вашу версию тетриса, вы готовы для следующего испытания - 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, через использование боссов, имеющих свои стили поведения, которые,  вам нужно научиться определять, чтобы победить. Вам также будет нужно поработать над физикой прыжков и движений персонажей и траекториями выстрелов.

    Также понадобится значительно больше врагов, чем до этого, и вам будет необходимо отслеживать их текущее состояние (жив/мертв, активен/неактивен), и определять, на экране ли они, или нет. Сложность уровней также увеличивается, как и сложность хранения ресурсов карт/персонажей, и на этом шаге вам определенно понадобится создать редактор уровней.

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

    И наконец, у игр с боковым перемещением есть настоящая возможность выигрыша! Когда вы доходите до конца таких игр, вы на самом деле ПРИХОДИТЕ куда-то, поэтому вы можете также добавить в игру развивающийся сюжет (и не забудьте какой-нибудь фейерверк в конце уровня, для того чтобы у игрока было чувство завершенности и НАСТОЯЩЕЕ шоу с фейерверками в награду за победу в игре... очень недружелюбно просто помещать на экран слова «Вы победили!», после того как игрок провел бесчисленные часы над игрой).


    Завершающие штрихи...

    Закончить игру это не значит просто заставить ее работать. У законченной игры должен быть открывающий экран, закрывающий экран, опции меню (если они необходимы, по крайней мере должны быть инструкции как начать игру и как играть), вводный экран перед началом игры, финальные заставки и таблица рекордов (там, где она нужна).

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

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

    Что более важно, если вы остановитесь на том, чтобы игра просто работала, вы упустите множество деталей, необходимых для создания законченной игры, что приведет к прорехам в ваших знаниях, когда в будущем вы станете планировать большие проекты.


    Но эти игры глупые!

    Вообще, эти игры ясно показывают основы создания ЛЮБЫХ игр. Отбросьте в сторону причудливый трехмерный интерфейс игры со стрельбой - она так и останется стрелялкой. Вы могли бы сделать такую же игру с двумерным видом, при этом сам игровой процесс программировался бы точно также.

    Разве не глупо делать игру, которая будет иметь СОВЕРШЕННО одинаковые элементы с игрой Quake? Если вы уберете 3D интерфейс и посмотрите на то, что действительно происходит в игре, кажется ли это все еще таким же недостижимым?

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

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


    Не стесняйтесь своих игр!

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

    Я создал свою игру, где же мой Ferrari?

    Мне жаль, но одна игра, две, даже пять игр не ведут к этому. Только за один год, например, для PC выпускается порядка 3500 игр, и только некоторые из них приносят большие прибыли. Большинство игр делались не маленькими группами с самофинансированием, а финансировались крупными издателями, и, возможно, имели многомиллионные бюджеты.

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


    Geoff Howland

    Перевод Евгения Казеко


    Публикуется в сокращении.

    © 2004-2013 Perspective group