Данная статья постарается ответить на один из самых часто задаваемых вопросов новичков:
Я новичок. Какую игру мне делать?
Если вы новичок в разработке игр, обязательно прочитайте данную статью.
Ваш первый шаг чтобы начать разрабатывать игры здесь.
Вы выучили язык. Навыки наготове. Пришло время создать игру! После многих лет, потраченных на игры и обсуждений графики, дизайна и механики настало время представить игру, о которой вы мечтали. Например, наша первая игра, которую нам необходимо сделать, будет Final Fantasy 7 Remake. Так же в приоритете добавить многопользовательский онлайн.
Зачем?
Это, конечно, сделает игру лучше, и все ждут этот функцию, не так ли? Настало время искать информацию. На каком движке это было сделано? Какая нужна графика? Они использовали DirectX или OpenGL или вообще Unity? Каждый новый вопрос производит еще два вопроса. Это доходит до того, что задачи и цели могут быть непреодолимыми.
Но с амбициями цель может быть достигнута! Верно? К сожалению, многие, когда узнают сложность процесса создание игры это может подорвать амбиции, а в некоторых случаях полностью подорвать интерес. Эта статья поможет вам предотвратить это, а также укрепит ваши навыки создания игр.
Но для начала, давайте рассмотрим некоторые проблемы, с которыми сталкивается подавляющее большинство начинающих.
Некоторые проблемы.
Многие начинающие спрашивают, какой язык следует использовать. Ответ таков: любой. Да, верно: C, C++, Java, Python, Lua, Scheme, или F#. Язык - это всего лишь инструмент. Использование одного языка или другого не имеет значение. Не беспокойтесь о том, что используют профессионалы.
Для новичка единственным приоритетом и целью является наличие инструментов для создания игры. Вторым приоритетом является улучшение качества вашего кода и навыков, перейдем к этому немного позже. Помните, нет такого "Какой язык лучше?" или "Какой язык самый лучший?". Единственный вопрос, который задаст любой, у кого есть опыт: "Какой у вас опыт работы с языком?". На этом этапе в процессе разработке игры, умение языком, который вы используете, важнее самого языка. Это универсальная правда.
Теперь, когда вы выбрали язык, самое время выбрать то, как вы будете делать игру. Обычно выбор состоит из библиотеки для разработки игр, игрового движка или конструктора игр. Что следует выбрать? Если вы создаете прототипы или не являетесь программистом, то конструкторы игр, вероятно, будет лучшим выбором.
Конструкторы игр.
Конструкторы игр (например: Game Maker, RPG Maker, ENIGMA) умеют создавать игры (которые я перечислю позже), похожие на игры 8-битной и 16-битной эпохи. Конструкторы игр делают за вас некоторую тяжелую работу (например: загрузка/обработка изображений, физика, ввод) и позволит вам на сосредоточиться на самой игре. У большинства, если не у всех, есть свой язык. Такие языки больше всего похожи на C/C++/JavaScript.
Игровые движки.
Игровые движки, такие как Unreal, Crysis и Unity могут создавать игры любого вида (например: 2D, 3D, offline, online) и, следовательно, намного сложнее, а в некоторых случаях очень сложные для того типа игр, который должен делать новичок. Игровые движки следует использовать, когда у вас, как разработчика игр, уже есть несколько игр, и вы полностью понимаете механику создания игр.
Готовые библиотеки.
Для большинства начинающих разработчиков игр, особенно программистов, выбрать библиотеку для создания игры хороший выбор. Это проверит ваши навыки программирования и позволит узнать больше о языке. Как и с языком, библиотека не имеет значение. Будь то SDL, PyGame(только Python), SFML или Allegro, библиотека - это тоже всего лишь инструмент для создания игры. В основном, библиотеки для создания игр имеют более или менее одинаковые функции.
Теперь, после нашего выбора: язык и библиотеки для разработки игр или конструктор игр, мы готовы ответить на вопрос:
Какую игру я должен сделать?
Ответ на этот вопрос должен быть: доступную, выполнимую, и по большей части понятной. Именно поэтому следует выбрать 2D игры. Все понимают 2D игры. 2D-игры могут быть модными, но по своей сути они базовые с очень небольшим количеством «движущихся частей».
Верите ли вы мне или нет, но на этот вопрос есть конкретный ответ: Понг.
Почему?
Ну, Понг является одной из самых известных, и самых простых игр. Не нужно сидеть и долго понимать, как работает эта игра. Поэтому это лучший кандидат на первую игру. Каждая новая игра, представленная в этой статье, предназначена лишь для того, чтобы показать что-то новое, основываясь на том, чему вас научила ваша последняя игра. Навыки, которые извлекаются из каждой игры, суммируются, и не привязаны только к одной игре. Таким образом, каждая игра представляет собой шаг вперед с точки зрения сложности. Теперь я перечислю некоторые известные игры, которые определенно помогут вашим навыкам разработки игр и позволят вам иметь настоящие законченные игры в вашем портфолио. Я кратко укажу некоторые вещи, которые будут изучены для каждой игры.
Какие игры создавать?
Понг: Очень просто: ввод, физика, определение коллизии, звуки, счет.
Червячки: появление случайных улучшений, создание границ экрана, структура данных червя.
Breakout: навыки из игры понг, улучшения, карты
Missile Command: прицеливание, простой ИИ врагов, передвижение и звуки.
Space Invaders: простое передвижение для врагов и игрока, очень похожа на Breakout, только враги постоянно движутся вниз, простые звуки
Asteroids: астероиды(враги), игрок может двигаться в любое направление, астероиды появляются и двигаются случайно, простые звуки
Tetris: дизайн блоков, очищение линий, счет, простые анимации
Pac Man: простые анимации, ввод, определение коллизий, карты(дизайн уровней) и ИИ
Ikari Warriors: вид сверху, ИИ врагов, улучшение, счет, определение коллизий, карта(дизайн уровней), ввод, звуки, ИИ боссов.
Super Mario Bros: тоже самое, что и Ikari Warriors(только вид сбоку), ускорение, прыжок, платформы.
Список показывает игры с точки зрения сложности от наименьшего к большему, насколько это возможно при программировании. Есть игры, которые могут предложить другие люди, но эти 10 игр определенно дополнят то, что вам нужно знать при разработке 2D-игр. Если вы сможете сделать эти игры, то в разработке таких игр, как Sonic, Metroid или даже Zelda будут казаться для вас намного легче. Эти игры являются всего лишь вариациями или расширениями того, что вы уже изучили.
Конец.
Прежде чем завершить статью, я хочу сказать про завершение разработки игры. Как я уже говорил выше, ваша основная цель - создать и закончить игру. Однако, ваша второстепенная, и, возможно столь же важная цель - это улучшать и поддерживать свою игру. Можно с уверенностью сказать, что 99% программистов не пишут игру Понг правильно. Скорее всего, ваша первая, или даже вторая версия Понга или Червячков не станет шедевром архитектуры программного обеспечения, так и должно быть.
Однако, чтобы улучшить свой код и свои навыки, вам придется отправить код для проверки кода. Разрешение другим пользователям корректировать ваш код даст вам представление о лучшей структуре, и опасном коде, который может работать сейчас, но может дать сбой в ближайшем или далеком будущем.
Когда вы закончите одну игру и перейдете к следующей, не пинайте эту завершенную игру в корзину. Вернитесь назад и проведите рефакторинг и улучшите код. Это доказывает, что вы понимаете советы, которые дают вам другие пользователи, и показывает, что ваши навыки действительно стали лучше. Короче говоря, процесс создания игры должен быть следующим: создание > завершение > осмотр кода > рефакторинг. Опять же, как только вы отправите свой код для проверки, переходите к следующей игре в списке, но не забудьте вернуться и улучшить этот код после получения обратной связи.
Надеемся, что приведенный здесь совет поможет другим стать лучшими разработчиками игр.