Дизайн компьютерных игр обучение. Продвинутый JS: игры и визуализация. Что представляет собой процесс создания компьютерных игр

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

Что представляет собой процесс создания компьютерных игр?

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

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

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

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

JavaScript. Быстрый старт

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

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

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

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

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

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

В меню некоторых видеоигр есть раздел с различными бонусными материалами, в качестве которых нередко выступают концепт-арты, созданные дизайнерами в процессе разработки. Хорошими примерами могут послужить концепт-арты из таких старых, можно сказать, «классических» игр, как «TMNT 2: Battle Nexus» (2004), «X-Men Legends II: Rise of Apocalypse» (2005), «Reservoir Dogs» (2006). Во всяком случае, именно эти примеры вспомнились в данный момент.

Последняя игра из нашего списка, «Reservoir Dogs» может служить не только примером хорошего концепт-арта. Саундтреки в стиле 1970-х годов позволяют в полной мере погрузиться в атмосферу этого боевика, созданного по мотивам одноименного фильма, режиссером которого является сам Квентин Тарантино. Кстати, в любой из частей игры «Silent Hill» можно отметить отличную работу композитора Акиры Ямаока (Akira Yamaoka), музыка которого помогла сделать игру по-настоящему «атмосферной». Но что-то я отвлекся

Для того чтобы интересным идеям было откуда взяться, советую читать как можно больше литературы в жанре научной фантастики и фэнтези. В список для чтения следует записать Джона Толкина («Властелин колец»), Джорджа Мартина («Песнь льда и пламени», иначе говоря, «Игра престолов»), Братьев Стругацких, Эдгара По, Рея Брэдбери.

По поводу последнего автора можно привести красноречивый пример - постапокалиптическую игру «Fallout 3», где все пропитано концепцией «Марсианских хроник» Брэдбери. В некоторых эпизодах даже цитируются фрагменты из произведения. Полезны будут и произведения историко-приключенческого жанра. Здесь на первый план выйдут такие фигуры, как Александр Дюма, Виктор Гюго, Джек Лондон.

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

Начало карьеры

Предложить кандидатуру в компанию по разработке видеоигр? Отличный план! Работать в этом случае можно как в «классическом» режиме, т. е. в офисе с 9:00 до 18:00, так и удаленно, найдя работу на одной из бирж фриланса. Конечно дизайнером компьютерных игр сразу вас никто не возьмет, но не спешите расстраиваться. Нужно ведь с чего-то начать и проявить себя.

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

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

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

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

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

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

  • Разработка игр
  • Начиная серию статей о гейм-дизайне, в первую очередь стоит выяснить, что же это такое и кто такие эти гейм-дизайнеры?

    Гейм-дизайн – это набор решений, которые определяют какой должна быть игра. Принимать эти решения придётся вам, и касаться они могут чего угодно.

    Что же нужно, чтобы начать придумывать свою игру? Вы можете предположить, что это навыки использования движков, таких как Unreal Engine или Unity, может быть знания языков программирования и скриптинга или годы опыта?

    Нет, просто подойдите к зеркалу и вы увидите всё, что вам нужно – голова и руки! С помощью первого вы сможете придумать любую идею и рассказать о ней другим людям, а с помощью второго записать свои мысли. Удержать в голове всё сразу сложно, так что обязательно записывайте каждую мелочь, что приходит вам в голову, а уже после начинайте работать с этим. Также это поможет вам высказать в правильном ключе другим людям о своих концепциях.

    А как же технические навыки, спросите вы? Многие игры могут быть созданы и подавно без них: карточные игры, настольные игры, текстовые приключения! Не обязательно начинать свой путь с создания Minecraft, главное – это начать. Но, даже создавая игру на такие платформы, как PC или iOS, вам не требуется знать каждой мельчайшей детали. Чтобы принимать верные решения, главное – представлять о каждой области в целом. Ведь гейм-дизайнер – самая многогранная профессия в игровой индустрии. Придётся узнать обо всём понемногу.

    Кто-то думает, что гейм-дизайнер – это тот, кто придумывает историю для игры. Нет, это не так. Мы с вами должны придумать не только историю, хотя иногда и её тоже, а каждую деталь: правила, задания, как игра выглядит, как она чувствуется, темп геймплея, награды, наказания и всё остальное, с чем игроку придётся столкнуться во время своего приключения.

    Т.е. гейм-дизайнер должен всё это придумать, записать и радоваться результату? К сожалению, это никогда не работает так просто. Наша область – самая непредсказуемая из всех возможных. Никто не может вообразить, как будет выглядеть та или иная идея в финальном её виде. Как она впишется в игру? Что игрок будет чувствовать? Как изменится баланс? Есть десятки вещей, которые могут пойти не так, как вы ожидали, вам придётся изменять свою идею, адаптировать её под игру или даже адаптировать всю игру под одну единственную идею!

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

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

    Как же вы можете стать гейм-дизайнером? Ведь вы только окончили университет, а может быть, всё ещё учитесь? Первое, что поможет вам – это анализ других игр. Нужно понимать на подсознательном уровне, что работает хорошо и делает ваше творение лучше, а что может повредить.

    Итак, допустим вы играли в неисчислимое количество игр и понимаете, как всё работает? Тогда немедленно попробуйте создать что-нибудь своё! Прежде, чем искать работу, нужно ведь хотя бы попытаться. Перед вами безграничные просторы:

    • Читайте книжки про гейм-дизайн – правда, для этого могут понадобиться знания английского, ибо вся хорошая литература именно на нём
    • Пишите концепты, показывайте своим друзьям, выкладывайте на сайты, слушайте чужое мнение
    • Подумайте над тем, как можно улучшить существующие игры, пишите об этом на форумах, общайтесь с комьюнити
    • Создавайте моды для популярных игр, пишите истории и воплощайте их в жизнь. Skyrim вам поможет здесь в первую очередь
    • Попытайтесь разобраться в любом движке и сделать на нём простейшую игру, хотя это задача не из лёгких и не всем она под силу. Не отчаивайтесь, кому-то лучше удаётся теоретический дизайн – это в порядке вещей
    • Примеры сложных движков, но на них в основном работают в компаниях: Unity, Unreal Engine, Cry Engine
    • Примеры более простых движков для одиночек: RPG maker, Game Maker Studio





    • Попробуйте создать своё текстовое приключение, к примеру, на движке Quest5 или ADRIFT
    • Создавайте настольные и карточные игры, играйте в них с друзьями
    • Создавайте системы баланса несуществующих игр в Excel, может быть, баланс – это ваше призвание? В любом случае, эти навыки определённо пригодятся!
    • Да хотя бы сходите на ту же Конференцию Разработчиков Игр и послушайте различных докладчиков, для начинающих информация может оказаться полезной

    Помимо развития навыков, всё, что вы можете показать другим, определённо поможет вам при устройстве на работу. Даже картонная настольная игра. Как же найти работу? Ведь вы хотите делать игры? Устраивайтесь кем угодно! Тестером, комьюнити-менеджером, младшим гейм-дизайнером, главное попасть в индустрию и развиваться.

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

    Какие навыки могут понадобиться гейм-дизайнеру при создании игры?

    • Анимация – вы должны представлять, что ожидаете от персонажей, как они должны двигаться, как ваш дизайн может использовать эти возможности
    • Аудитория – вы должны представлять, кто будет играть в вашу игру и что они от неё ожидают, самое главное это оправдать эти ожидания
    • Архитектура – да, да, создавая целые города и миры, вам придётся вдохновляться мировой архитектурой, чтобы ваши локации выглядели настоящими и живыми
    • “Brainstorm” – сложно перевести это выражения (МОЗГ БУРЯ), по сути вам придётся создавать десятки и сотни идей, нужно уметь это делать, не ограничивая себя рамками

    • Бизнес – большинство игр делается ради денег и, чтобы эти деньги заработать, нужно представлять какую игру стоит сделать, особенно в наше “Free to Play” время
    • Кинематографичность – во многих присутствует особенное поведение камеры и кат-сцены, вы должны представлять, как с помощью этих элементов улучшить ощущения игрока
    • Коммуникативность – это, наверное, главное ваше орудие. Вам придётся говорить с людьми каждый день, каждый час, каждую минуту. Правильно объяснить свои мысли всей команде – это очень важно
    • Сценарий – не на всех проектах существуют сценаристы и, зачастую, гейм-дизайнер выполняет эту роль
    • Экономика – во многих современных играх очень сложная ресурсная экономика и вам придётся рассчитывать её и создавать системы баланса
    • История – зачастую игры рассказывают о тех или иных периодах в истории человечества, и знание разных эпох могут сильно вам помочь
    • Менеджмент – чтобы команда достигала хороших результатов, ей всегда требуется хорошее управление. Дизайнеры могут преуспеть и в этой области, помогая организовать работу
    • Математика – чтобы сбалансировать любую игру, потребуются те или иные знания математики. Чем лучше вы чувствуете себя в этой области, тем проще вам будет
    • Музыка, звук – хороший саундтрек и звуковое сопровождение могут сделать даже не самую лучшую игру – шедевром, создавая атмосферу и погружая игрока в происходящие вокруг события
    • Психология – вам нужно сделать людей счастливыми, а для этого нужно понимать как они мыслят и что желают
    • Публичные выступления – да, не все любят выступать перед обществом, но гейм-дизайнеру нередко приходится это делать: рассказать о новых идеях, представить концепт, объяснить инженерам как работает та или иная вещь
    • Техническая документация – умение создавать точные инструкции для программистов и художников очень помогут вам. Ведь допустив малейшее недопонимание, вы можете получить совершенно другой результат

    Ну и, конечно, главное умение – это умение слушать. Вам придётся слушать многих: вашу команду, аудиторию, игру, самого себя.

    • Вряд ли вы обладаете всеми навыками, перечисленными выше. Однако, ваша команда, скорее всего, имеет их все. Умение слушать своих коллег и принимать верные решения сильно вам поможет
    • Аудитория – это те люди, кто будут играть в вашу игру. Если они недовольны, значит, вы провалились. Вы должны знать лучше, чем они сами, что же они хотят
    • Игру – только внимательно следя за процессом развития игры, вы поймёте, что пошло не так, и сможете исправить это в нужный момент
    • Слушайте самого себя – зачастую, когда ты разрабатываешь игру в ограниченные сроки, не успеваешь прислушаться к собственному внутреннему голосу, а когда понимаешь, что что-то сделано не так, то бывает слишком поздно

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

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

    Гейм-дизайнер создает форму и содержание игрового процесса. Игровой дизайн определяет взаимодействие игрока с игровым миром, условия победы и поражения, сложность игры.

    Как стать и куда двигаться дальше

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

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

    Будет полезно почитать «The Art of Game Design: A Book of Lenses» Джесси Шелла, изучить игровые движки - например, бесплатного для индивидуального использования Unity3D .

    «Будьте готовы к тому, что, вероятно, потребуется больший набор навыков, чем тот, которым вы сейчас обладаете. К примеру: работа над созданием персонажей может потребовать не только навыков графического дизайна, но и базовых навыков программирования, чтобы задать все параметры персонажа во внутренней архитектуре игры. Создание игровых прототипов также подразумевает умение работать с кодом. И наоборот: разработка алгоритмов стрельбы требует понимания того, как эта механика скажется на удобстве прицеливания и комфорте игры».

    Из личных качеств важны:

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

    При поиске первой работы очень пригодятся собственные разработки в портфолио:

    «На первом курсе университета я попросился в сценаристы на разработку очередного „Убийцы Сталкера“. Проект был на энтузиазме, и брали кого угодно. Так я научился работать в команде и выполнять глобальные серьезные задачи. Позже сделал на движке GM Studio демо-версию собственной игры, довольно простой 2D top-down action. На первую работу прислал резюме, где написал, что у меня нет выпущенных проектов, но есть опыт работы и проект, который я сделал сам.

    Свои игры были самым ценным вкладом в трудоустройство. Продюсер, который принимал меня, сказал, что собственная разработка на порядок ценнее любых модификаций и карт для существующих игр, поскольку подразумевает самостоятельную наладку CCC (Camera, Control, Character) - тех аспектов, которые считаются самыми важными в любой игре. Я согласен с ним: своя разработка помогает смотреть на гейм-дизайн детальнее. Когда программируешь сам, сталкиваешься с необходимостью определять любую мелочь. Делаешь ошибки и стремительно учишься думать наперед, прогнозировать последствия своих решений».

    Возможные карьерные пути гейм-дизайнера:

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

    Благодарю за помощь в написании статьи Александра Шевченко , Андрея Петкевича , Артема Запорожца , Олега Горчакова и Родиона Баскакова . Все цитаты взяты из их рассказов.

    Гейм-дизайнер (game designer, геймдиз) — это создатель игр в широком смысле этого слова. Его можно назвать продюсером игр, ответственным за игровой дизайн проекта. Профессия гейм-дизайнера находится на стыке творческих идей и технического документирования. Это человек, который отвечает за разработку дизайна компьютерной игры, а также за правила, содержание, игровой процесс, целостное видение игры.

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

    Гейм-дизайнер - это человек-волшебник, который складывает картинки, мозаики игры в своей голове в единое целое. Это единое целое нужно описать так, чтобы было понятно всем остальным людям, которые работают над проектом игры. Идеи нужно превратить в технические задания, распределить их по специалистам. Гейм-дизайнер создает мир, в который будут потом играть миллионы. Он должен на 100% знать каким должен получиться финальный проект, при написании ТЗ учесть мельчайшие подробности будущей игры и донести это до команды разработчиков. В этой профессии нужен и талант, и вдохновение, и огромное количество знаний практически во всех областях.

    Всего 2 года назад я была 17-летней школьницей и ничего не знала о программировании. Это не помешало мне начать учиться и через несколько месяцев выпустить свою первую игру в Steam. Сегодня у меня более 10 игр для ПК, интернета и мобильных устройств и свыше 1,9 млн игроков.

    Не важно, что вы умеете сейчас - при должном желании вы тоже сможете делать игры. Два года назад такое казалось невозможным: это было самое сложное, что я сделала в жизни, и оно того стоило. Теперь я понимаю, что в разработке игр, как и в любом другом деле, вы растёте только тогда, когда пробуете, ошибаетесь и совершенствуетесь.

    Всему, что я знаю, я научилась сама, а теперь научу вас.

    Чтобы сделать игру, нужно пройти 6 этапов:

    • Концепция
    • Графика
    • Программирование
    • Подготовка к публикации
    • Публикация
    В статье для каждого этапа я выделю:
    - Советы, которые я вынесла из своего и чужого опыта.
    - Инструменты, которые я считаю наиболее полезными. У вас есть классная идея. Но как оформить её на бумаге?

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

    • Фишки. Что делает вашу идею крутой? Это самый главный вопрос. Как только вы сможете уловить и зафиксировать это, остальные этапы покажутся легче. Ваша игра поднимает острые темы? Станет новой классикой? Или будет отличаться от всего, что было раньше?
    • Механика. Что делает игрок и зачем? Это ваш игровой процесс. Он может быть простым, как поочерёдное нажатие клавиш Q, W, O, P в игре QWOP , или сложным, как комбинации в Dwarf Fortress.
    • Легенда. Благодаря чему игроки запомнят вашу игру? С какими эмоциями они будут её покидать? У каждой игры есть история. Если стория неочевидна, игрок сам создаст её. История бывает разная: возрастание чисел в игре 2048, восхождение империй в Civilization или безмолвные взаимодействия в Monument Valley. Подумайте, какая легенда будет стоять за вашей игрой.
    • Настроение. Какое впечатление производит игра? Какие визуальные эффекты и музыка будут этому способствовать? Важно первое впечатление, которое сможет зацепить игрока и затем заставить его снова возвращаться к игре. Возможно, вам захочется ретро-эффекта с пиксельной графикой и 8-битной музыкой или современного вида с плоской геометрией - подумайте об этом.
    • Участвуйте в хакатонах. Вам и другим участникам нужно будет сделать игру за отведённое время. Как минимум вы вдохновитесь и встретите единомышленников. Попробуйте Ludum Dare , один из самых больших геймджемов.
    • Создайте список идей. Записывайте каждую новую мысль. В моменты ступора всегда можно заглянуть в список и найти что-то интересное. Так выглядит мой личный Google Doc идей и заметок .
    Когда приходит вдохновение, бросайте всё и пишите. В следующий раз, когда мысль уйдёт, не понадобится высасывать идеи из пальца.

    Инструменты

    Ведение заметок:
    • Заметки на Mac OS.
    • Google Документы.
    • Трелло.
    Командная работа:
    • Google Диск.
    • GitHub. Требуется git и Unity .gitignore.
    • Unity Collab. Самый простой инструмент, но с ограничениями в бесплатной версии.
    Я делаю игры на Unity. Дальше речь пойдёт о нём, но не бойтесь использовать другой движок.

    Вдохновение:

    • Книга Джесси Шелл «Искусство геймдизайна ».
    • Сайт для разработчиков игр Gamasutra .
    Если вы не умеете программировать, сначала прочтите раздел «Программирование». Вряд ли вы хотите потратить время на графику и выкинуть её потому, что под неё не написать код.

    Даже если вы не умеете рисовать, игру можно сделать красивой, используя три визуальных принципа: цвет, форма и объём.

    Thomas Was Alone - простая и прекрасная игра

    Интерфейс

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


    Неудачный и удачный шрифт

    2D-анимация

    Анимацию можно реализовать двумя способами:
    • Покадровая анимация. Когда вы отрисовываете каждый кадр. Для этого используйте таблицы спрайтов и Sprite Packer в Unity.
    • Скелетная анимация. Отрисовывается каждая подвижная конечность, затем анимируется её позиция и повороты. Это быстрее, легче и тратит меньше оперативной памяти. Для 2D-анимации на Unity используйте пивоты (точки привязки) или плагин Anima 2D .

    Что ещё может пригодиться

    Советы, которые применимы не только к игровой графике, но и к другим программам:
    • Объекты-тайлы используются для создания плитки и требуют меньше места на жёстком диске.

    Без тайлов и с тайлом

    • 9-slice объекты с немасштабируемыми границами и масштабируемым центром позволяют увеличивать изображения без заполнения памяти.

    Пятно расширяется, но углы остаются прежними

    • Делайте разрешение каждого объекта таким, чтобы оно делилось на 4 или было степенью числа 2.
    • В Photoshop вы можете сохранить каждый слой в отдельный файл через Файл > Экспорт > Быстрый экспорт в [формат изображения].

    Инструменты

    Создание интерфейса:
    • Photoshop.
    • Sketch.
    Принципы создания интерфейса:

    Создание 2D объектов:

    • Photoshop.
    • Gimp.
    • Paint Tool SAI - для графики в стиле аниме.
    Создание 3D объектов:
    • Blender - мощное ПО со сложным обучением.
    • Maya - для анимации.
    • Max - для отрисовки.
    Бесплатные игровые ассеты:
    • Behance - шрифты, иконки и прочее.
    • KennyNL - высококачественные объекты, готовые к использованию в играх.
    • Open Game Dev Art - огромная библиотека графики, созданной другими пользователями.
    Вдохновление:
    • Dribbble - закрытое сообщество дизайнеров.
    • Behance - сообщество дизайнеров, к которому может присоединиться любой желающий.
    • itch.io - сообщество создателей инди-игр.
    Выберите игровой движок, среду разработки и начинайте погружаться в код.

    Представленных ниже знаний достаточно для начала. Все примеры написаны на C++, одном из языков программирования в Unity3D. (Примечание переводчика: на самом деле в Unity используется C#, который похож на C++ ).

    1. Типы данных и переменные. В основе кода лежат данные, которые хранятся в переменных. Можно объявить переменную так:

      Int i = 0;
      int - тип данных, i - имя переменной, = 0 - значение переменной.

      Часто используемые типы данных:
      int и long - для целых чисел,
      float и double - для чисел с плавающей точкой,
      string - строчные данные.

    2. Условия. С помощью оператора if можно создать условия для выполнения кода:

      If (true){ // истина всегда истинна! doThings(); // я внутри выражения, и я выполняюсь! }
      Используя оператор else , можно расширить условие и отобразить что делать, если условие не соответствует истине:

      Int i = 1; if (i == 0){ doThings(); } else if (i == 1){ doOtherThings(); // теперь запускаюсь я! }

    3. Циклы for/while. While-циклы повторяют части кода, пока условие остаётся истинным. Как только условие перестаёт быть истинным, цикл обрывается.

      While (someBool == true){ // условие doThings(); // Буду выполняться, пока условие истинно }
      For-циклы похожи на while-циклы. Для while мы пишем так:

      Int i = 0; while (i < condition){ doThings(); i++; // счётчик, по которому цикл продолжается }
      Равнозначный for-цикл будет таким:

      For (int i = 0; i < condition; i++){ doThings(); }

    4. Структуры данных. У нас есть данные, с которыми можно взаимодействовать. К тому же их можно хранить в особой структуре - массиве, списке, очереди, стеке или наборе.
      Простой примера массива:

      /* Допустим, у нас есть числа от 0 до 9. Будем хранить их в массиве! */ int arr = new int; /* Скобки нужны для объявления массива. Мы присваиваем массив из 10 элементов переменной arr. Теперь он выглядит так: arr = [ 0 0 0 0 0 0 0 0 0 0 ] */ for (int i=0; i<10; i++){ arr[i]=i; // Мы присваиваем позиции i значение i. //Заметили, что счёт начинается с нуля? } /* После цикла наш массив будет выглядеть так: arr = [ 0 1 2 3 4 5 6 7 8 9 ] */

    5. Функции и исключения. Функция - это короткая строчка кода, заменяющая огромное количество строчек кода. Например, выведем функцию EatBread() , которая содержит следующее:

      Void EatBread(){ //<---это функция breadAte=true; printf("Я ОЩУЩАЮ УГЛЕВОДЫ, ОНИ БЕГУТ ВНУТРИ МЕНЯ"); }

    Тогда при выводе функции выполняются два выражения внутри неё.

    Если в коде что-то идёт не так, на помощь приходят исключения. Они как бы говорят: «Так, погоди, здесь ты сделал что-то нелогичное. Перепроверь ещё раз».

    О чём ещё надо знать:

    1. Язык. На каком языке вы будете программировать? Чаще всего игры пишут на C++, JavaScript или C#. Языки отличаются синтаксисом и областью применения.
    2. API (Application Programming Interface). Как только вы ознакомились с базой, приступайте к изучению программного интерфейса приложения для конкретного игрового движка. Они представляют собой набор полезных инструментов, упакованных в простые классы и функции. API сильно упрощает жизнь программиста.
    3. Посмотрите примеры проектов на выбранном игровом движке. Можно найти много бесплатных примеров игр на движках Unreal и Unity. Это позволит увидеть итог и весь процесс работы целиком, а также почерпнуть идеи для своей будущей игры.
    Немного вдохновения. Знаю, программирование поначалу пугает. Всё кажется бессмысленным, вы постоянно спотыкаетесь и перед лицом постоянных ошибок хотите сдаться, но это не значит, что программирование не для вас.
    Код - это вызов самому себе. И ничего не понимать поначалу - нормально.

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

    Другие немаловажные основы программирования:

    • Объектно-ориентированное программирование. Делает код более естественным.
    • Соглашение об именовании. Называйте классы, методы и переменные так, чтобы вам и другим программистам была понятна их цель. Например, назовите функцию атаки ближнего боя,

      MeleeAttack ()
      а не

      MA()
      или

      Protecbutalsoattac()

    • Декомпозиция. Сделайте из повторяющегося кода функцию и вызывайте её вместо копирования повторяющихся строк.
    • Шаблон проектирования Singleton («Одиночка»). Шаблон программирования, который позволяет данным храниться в одном месте.
    • Избегание статических переменных. Помимо использования синглтонов, я избегала статических переменных - они живут только на время игры, медленные и могут вести себя непредсказуемо.
    • Шаблон проектирования Observer («Наблюдатель»). Позволяет объекту узнавать о состоянии других объектов, не теряя компьютерного времени на проверку.
    Вещи, свойственные Unity:
    • Сопрограммы. Позволяют начать выполнять действие, продолжать в течение нужного времени и затем прекратить. Я использую их для визуальных эффектов взрывов, резких движений.
    • Класс ScriptableObject. Он хранит данные с меньшими затратами, чем базовый класс MonoBehaviour.

    Инструменты

    Игровые движки:
    • Свой движок на C/C++. Низкий порог входа. (Примечание переводчика: на самом деле, создание своего движка требует больших усилий и глубокого знания принципов программирования ).
    • Unity. Поддерживает 2D/3D. Требует знаний JavaScript/C#. Средний порог входа. Разработка для нескольких платформ.
    • Unreal. Поддерживает 2D/3D. Требует знаний C++. Средний порог входа. Разработка для нескольких платформ.
    • pixi.js. Только 2D. Требует знаний JavaScript. Средний порог входа. Разработка для браузера.
    • GameMaker Studio. Поддерживает 2D/3D. Требует знаний специального языка движка GML (Game Maker Language). Для новичков. Разработка для нескольких платформ.
    • Corona. Только 2D. Требует знаний Lua (похож на JavaScript). Для новичков. Разработка для нескольких платформ.
    Среды разработки:
    • Visual Studio Code (для MacOS) - не зависает, имеет встроенную справочную информацию и удобные «горячие» клавиши.
    • Visual Studio (для Windows).
    • MonoDevelop - устанавливается с Unity, иногда подвисает.
    Бесплатные ассеты Unity:

    В Unity Asset Store, bitbucket и GitHub очень много бесплатных ассетов. В своих проектах я использую минимум по два. Они упрощают жизнь, но далеко не идеальны. Заметили ошибку - исправляйте и говорите разработчику о ней.

    • Keijiro Takahashi - работает над Unity, доступные проекты визуальных эффектов с открытым исходным кодом.
    Немаловажный, даже главный источник решения проблем с кодом - Гугл!
    Аудио способно создавать настроение и погружать в игру, но для него нужна память.

    Для начала решите: вы хотите звук? Если да, будет ли в игре музыка, звуковые эффекты, озвучка или повествование.

    В любом случае потребуется запись и сведение таким образом, чтобы звук подходил под настроение игры. Например, Bastion использует органические и инструментальные звуки, хорошо вписывающиеся в мир игры. Crypt of the Necrodancer включил в себя смесь электронных ритмов и восьмибитного рока, чтобы передать темп и яркость игры.

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

    Инструменты

    Приложения для работы с аудио:
    • Logic Pro (только для MacOS). Цена 200 $.
    • FL Studio. Цена 99–899 $. Есть бесплатная демоверсия.
    • Reaper. Цена 60–225 $.
    • Audacity. Бесплатная программа. Имеет мало возможностей, но полезен для чистки аудио.
    Создание ретро-эффектов:

    Бесплатные звуки:

    • Soundcloud . Здесь можно найти бесконечно много звуков и музыки под лицензией Creative Commons. Начните с этого плейлиста . Использовать можно бесплатно, но не забудьте указать авторство.
    Существует небольшая вероятность - на 99,99 процентов, что в игре есть ошибки. А это значит, что самое время заняться баг-тестом.

    Как тестировать игру на баги?

    1. Дайте другим поиграть в игру. Желательно вместе с вами, на случай, если они столкнутся с ошибкой и не смогут понять или объяснить её.
    2. Проверьте игру на разных платформах. В редакторе может не быть проблем, но работает ли она там, где её будут запускать? Будьте особенно внимательны с Linux и Android.
    Итак, баг найден. Что теперь?

    1. Проверьте консоль на исключения. Если нашли исключение, найдите файл и строку, где сработало исключение. Если оно звучит по-марсиански, поищите решение в сети, и подумайте, почему именно в этой строке срабатывает исключение.
    2. Напишите в консоль. Попробуйте вывести логи (системные файлы) в предполагаемых местах ошибки. Введите разные переменные и сверьте полученные значения с ожидаемыми. При несовпадении - исправляйте.
    3. Проверьте логи. Системные записи вашего проекта дадут больше информации, чем консоль. Прочтите строки, где сработало исключение. Гуглите всё, что не знаете.
    4. Поспите. Всё починится с утра. Это просто плохой сон:)

    Типичные ошибки

    • NullReferenceException.

      Var.doThing(); //throws NullReferenceException: Object reference not set to an instance of an object
      В чём дело: функция выполняется с несуществующей (null) переменной.
      Быстрое решение: проверьте, является ли переменная null.

      If(var != null) { var.doThing(); // выполняем функцию безопасно! }

    • SyntaxErrorException.
      В чём дело: ошибки в синтаксисе.
      Быстрое решение: в сообщении указано, какой символ выдал ошибку. Найдите и исправьте его.
      Примечание: Проверьте, какие кавычки вы используете.
      " //правильные кавычки;
      " //ненужные кавычки, они принесут вам немало ошибок.
    • Розовый или чёрный экран.
      Возможная проблема: не обработался шейдер.
      Возможные причины: вы используете 3D-шейдеры в 2D-игре или шейдеры, которые не поддерживаются операционной системой. Убедитесь, что вы используете мобильные шейдеры для мобильных игр.
    Как закончите с ошибками, приступайте к оптимизации производительности и использования памяти. Пользователи смогут запускать игру быстрее и не испытывать проблем с нагреванием устройств.
    • Установите нужную частоту кадров. Для визуальной новеллы хватит 20 кадров в секунду, а вот для шутера нужны 60. Низкая частота кадров тратит меньше времени на отрисовку.
    • Анимация / система частиц / выборочная обработка. Объекты, невидимые для камеры игрока, не обрабатываются. Персонажи анимируются, частицы обновляются, 3D-модели обрабатываются только в поле зрения игрока.
    • Сжатие текстур и звуков. Для сжатия текстур используйте Crunch . Потоковая музыка и распаковка звуковых эффектов перегружают игру. Попробуйте снизить качество аудио. Сжатие может заметно снизить качество объектов.
    • Не позволяйте Raycast касаться лишних объектов. Raycast похожи на маленькие лучи, выстреливающие из ваших пальцев или мыши, когда вы касаетесь экрана или кликаете. Найдите объекты, которые не должны реагировать на действия игрока и удалите их из вычислений Raycast.
    • Используйте объектный пул. Частое создание и удаление большого количества объектов снижает производительность. Вместо этого, объедините их в список, очередь или другую структуру. Например, пули должны объединяться в один массив.
    • Оптимизируйте шейдеры. Задайте материал для каждого визуализатора. Игре не придётся создавать новые материалы в начале игры, что сэкономит ресурсы. Пусть визуализатор включает только то, что функционально необходимо.
    • Используйте AssetBundles (дословно «комплекты активов») вместо старой системы Resources в Unity. AssetBundles экспортирует ваши файлы из Unity и помещает в один файл, экономя оперативную память.
    Статьи по теме: