Как написать игру бесплатно

Это статья для новичков в геймдеве. Для тех, кто хочет сделать игру, но не знает с чего начать.

Я постараюсь, по шагам, объяснить весь процесс от желания до релиза. Погнали!

Кто я такой?

Я гейм-дизайнер с 10-летним стажем. Работал в многих компаниях, например в Playgendary. Делал разное: и казуалки для мобилок, и танковый шутер для PC.

Теперь я инди-разработчик. Живу за счёт продажи своих игр. Выпустили 4 игры для PC и Консолей. Сейчас разрабатываю игру They Are Here: Alien Abduction Horror — хоррор от 1-го лица, про похищение пришельцами.

They Are Here: Alien Abduction Horror

Шаг 1. Запасись энтузиазмом

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

Как пополнять запас энтузиазма? Смотри документалки, читай истории успеха разработчиков. Это мотивирует!

Смотри по сторонам: на другие игры, фильмы, кино, на новые технологии. Желание изучить что-то новое или сделать что-то похожее — это то, что нужно.

Шаг 2. Собери команду или сделай всё сам!

Одному — проще. Проще придумать идею и принимать решения. Не надо спорить и описывать задачи. Сделать игру одному — возможно. Я например сделал 4 игры один.

С командой — лучше. Лучше получается качество. Твои решения критикуются, и результат улучшается. Можно распределить обязанности и сделать игру быстрее. Последнюю игру я делаю в команде со своей женой. Она отвечает за историю, критикует мои решения, помогает с артом, ищет стримеров.

Короче — есть команда, круто! Нет команды — делай всё сам, это не трудно.

Типичный инди-разработчик

Шаг 3. Сформулируй цель разработки

Очень важно понять — для чего тебе всё это?

Ну например:

1. Трудоустройство в геймдев компанию.

Продукт — портфолио. Приоритет — качество исполнения.

Вопросы: На какую должность хотим устроиться? В какую компанию(и)? Какими играми занимается компания(и)? Чему нужно научиться?

2. Научиться делать игры, освоить навык.

Продукт — опытный образец. Приоритет- новые знания.

Вопросы: Какой навык освоить? Как сделать какую-то конкретную штуку?

3. Рассказать о чём то важном.

Продукт — манифест. Приоритет — донести идею до масс.

Вопросы: Поймут ли мою идею? Как сделать продукт более массовым?

4. Сделать игру о которой мечтал.

Продукт — мечта. Приоритет — воплотить своё видение.

Вопросы: Что я хочу видеть? Чем можно пренебречь? Как закончить проект?

5. Построить свой бизнес.

Продукт — актив. Приоритет — получить доход.

Вопросы: Какие игры лучше продаются? Сколько времени займет разработка? Как сократить это время?

Цель может быть не одна. Цели могут меняться от игры к игре.

Короче — ты должен ответить на вопрос — зачем я делаю эту игру?

А рально, зачем?

Шаг 4. Вспомни, что ты умеешь или любишь

Например, я и моя жена — фанаты фильмов ужасов про пришельцев. Типа «Знаки», «Мрачные небеса», «Секретные материалы». Поэтому нам проще работать над идеями и сценарием для They Are Here

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

Тян одобряет отталкиваться от умений и увлечений

Короче — твои умения и увлечения — это твои преимущества. Учитывай их при выборе платформы, движка, жанра игры. А пока, просто подумай над этим.

Шаг 5. Выбери платформу

Если просто, то есть 2 пути: Мобилки или ПК + Консоли.

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

Путь 1. Мобики

Аудитория:

  • Массовая аудитория. Дети, пенсионеры, скучающие продавщицы. Это не геймеры. Всё должно быть очень понятно и просто.
  • Играют по 1 — 5 минут. В перерывах, в очередях, на работе. Чтобы «убить время».
  • Ценится простая яркая графика.
  • Упор на простой, но залипательный кор-геймплей.

Плюсы:

  • Некоторые жанры (головоломки, аркады) — наиболее просты в разработке. Можно сделать небольшой прототип (1-5 уровней) и показать его работодателю, например.
  • Не требуется красивая или сложная графика. Главное — чтобы было понятно.
  • Простой геймплей и гейм-дизайн.
  • Будет плюсом, если сам привык к мобильным девайсам и играм.

Минусы:

  • Очень. Высокая. конкуренция. Игр миллионы и почти все они — бесплатные. Игроки приходят только с рекламы. Нет рекламы — нет игроков. Нет денег.
  • Монетизация. Нужно встраивать рекламу или внутри-игровые покупки в игру. Знать куда и как. Тестировать чтобы всё это работало.
  • Аналитика. Нужно понимать что такое LTV. Почему он должен быть > чем CPI. Встраивать аналитику в игру.
  • Будь готов делать по 20 прототипов или улучшать продукт, пока LTV не станет > CPI.
  • Заработать денег небольшой команде, можно только с издателем. Я лично не знаю других путей.

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

Если пофиг на доход — классная, лёгкая платформа.

Если решишься, узнай подробнее про:

  • Гипер-казуальные игры (всё по теме гейм-дизайна и производства).
  • Как найти издателя гипер-казуальных игр.
  • Казуальная графика.
  • Low-poly графика.
  • Казуальные игроки (сложность казуальных игр и туториалы).
  • Аналитика мобильных игр (CPI, LTV, Retention).
  • Монетизация мобильных игр.
  • Оптимизация мобильных игр.
  • Google Play и App Store. Регистрация аккаунта разработчика. Правила и рекомендации. SEO.
  • Рекламные медиаторы и сети (Iron Source, AdMob и т.п.).
  • Сервисы рыночной аналитики мобильных игр (Sensor Tower, App Annie).

Путь 2. ПК + Консоли

Аудитория:

  • Хардкорные геймеры.
  • Играют по несколько часов. Дома. Чтобы погрузиться в игру.
  • Ценится реалистичная или стильная графика.
  • Упор на интересную историю или глубокий геймплей.

Плюсы:

  • Меньше конкуренция, чем на мобилках. Особенно на консолях.
  • Легче получить игроков и отзывы.
  • Можно хорошо заработать портировав игру на консоли, с помощью издателя.
  • Не надо возится с аналитикой и монетизацией.
  • С детства понятная платформа (ПК / Консоль) и аудитория (Геймеры).
  • Аудитория любит авторские, творческие, интересные игры.
  • Будет плюсом, если сам играешь на компе или приставке.

Минусы:

  • Плохо заходят простенькие игры (головоломки, аркады). Геймеры хотят получить опыт, вжиться в роль. Залипнуть надолго. Игра не должна выглядеть как что-то на пару минут.
  • Игры дольше в производстве. Но можно хитрить — делать маленькие игры, которые выглядят как большие, а также использовать готовые ассеты.
  • Нужно поработать над интересной идеей. Найти отличительные черты (USP), которые выделят проект.
  • Нужно продумать интересную историю или геймплей.
  • Более сложный геймдизайн.
  • Большая требовательность к качеству графики.

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

Если решишься, узнай подробнее про:

  • Геймдизайн компьютерных игр.
  • Нарратив, сторителлинг.
  • Как питчить игры.
  • Фичи игры / USP.
  • Что такое вертикальный срез.
  • Steam. Регистрация аккаунта разработчика. Оформление страницы. Тэги. Правила и рекомендации.
  • Маркетинг и продвижение инди-игр на Steam (рекомендую http://howtomarketagame.com/) Как сделать крутой постер, трейлер, скриншоты, ГИФки.
  • Портирование игр на консоли.
  • Издатели игр на консолях.
  • Конкурсы и фестивали инди-игр.
  • Работа с инфлюенсерами (ютуберами, стримерами).
  • Реалистичная графика.
  • Стилизованная графика.
  • Сервисы аналитики тэгов и жанров (SteamDB, Steamspy, SteamCharts, Game Data Crunch).
  • Сервисы рассылки ключей (Keymailer, Woovit)

Шаг 6. Узнай про геймдизайн и производство игр

Интересуйся тем Как делают игры (классный подкаст в твои наушники)

Рекомендую погуглить про:

  • Игровые механики, жанры и сеттинги.
  • Геймдизайн. Есть книга Джесси Шелла, она хорошая, но большая. Можешь гуглить про конкретный жанр.
  • Кор-геймплей и Мета-геймплей.
  • Левел-дизайн. Лучше гуглить про отдельный жанр.
  • Пользовательский интерфейс (UI) в играх.
  • Ассеты и маркетплейсы.

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

Шаг 7. Выбери движок и глянь уроки

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

Про выбор движка написано много статей — погугли.

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

  • Там есть Blueprints — это визуальное программирование. Это проще чем писать код.
  • Красивый рендер «из коробки».
  • Есть большой маркетплейс с гововыми ассетами
  • Это популярный коммерчесский движок, на котором сделано очень много игр.
  • Можно сделать игру под все платформы. Можно встроить рекламу, инапы, аналитику.
  • Много уровков. Рекомендую Unreal Engine Rus
  • Классный интерфейс.
  • Куча встроенных функций.
  • Бесплатный до ляма баксов дохода.
Unreal Engine 4 Blueprints

Перед началом работы над игрой, сделай пару очень простых подделок «в стол».

Сделай змейку, пинг-понг и т.п. Пофиг на качество, пофиг на геймдизайн. Главное — попрактиковаться «на кошках», пощупать функции движка.

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

Короче — почитай про выбор движка. Потрать время на его изучие.

Шаг 8. Выбери жанр

Жанр — это твоя ниша. Жанр — это очень важно. Есть жанры, в которые никто не играет. А для некоторых нужно изучить много дополнительного материала.

Лучше выбрать жанр который:

  • Популярен на платформе. Игры этого жанра часто покупают или скачивают. Используй сайты для аналитики жанров.
  • Не слишком сложен в производстве. мморпг — не твой выбор.
  • Нравится тебе или команде. Ты разбираешься в нём или много играл в детстве.
Продажи игр в разных жанрах

Как только ты определилися с жанром — гугли всё по производству игр в этом жанре. Геймдизайн, графика, уровни, звуки. На что сделать акцент?

Поиграй в лучшие игры в этом жанре. Посмотри видео об этом жанре.

Короче — выбери жанр и узнай про него всё что можешь!

Шаг 9. Придумай идею, концепцию, USP

Идея — ядро твоей игры. Зерно, из которого вырастет проект.

Какая идея хорошая?

  • Понятная. Должна быть понятна каждому. Например, твоей маме.
  • Интересная. Уже хочется поиграть в это! Люди любят риск и новый опыт, который хотят, но не могут пережить в реальной жизни. Например GTA — это симулятор крутого парня, которым все хотят быть, но не могут.
  • Популярная. Это не артхаус, не что-то странное или специфичное. Идея обращается к понятным образам из жизни или массовой культуры.
  • Выделяющаяся. Такого раньше не было. Или было, но давно. Или в другом жанре. Или в другом стиле. Или плохо сделано.

Что поможет тебе в выборе идеи?

  • Каталог игр на твоей платформе. Смотри что популярно. Думай как это изменить, подать под другим углом. Хмм…игра про постройку железной дороги в топе. А что если, мы играем за машиниста?
  • Сайты-сервисы с аналитикой тэгов и жанров на платформе. Можно отследить популярность жанра, количество игр в нем. Можно скрестить отдельные тэги между собой.
  • Массовая культура. Фильмы, книги, комиксы, короткометражки, гифки, картинки из интернета.

Скорее всего у тебя будет рождаться много идей. Записывай их. Дай полежать. А потом выбери ту, что не даёт тебе покоя и кажется лучшей.

Когда родил идею

Про питч

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

На основе Питча, описываем концепт игры. Более развернутое описание игры на одну страничку. За кого мы играем? В чем цель? Что можно делать? Какие эмоции вызываем?

Про USP

Продумай ключевые фичи — USP, которые будут продавать твой проект. Они вытекают из твоей идеи.

Например, идея Панка — издевательство над массовой культурой и модой.

Ключевые фичи (USP) Панка: вызывающее поведение, агрессивная музыка и странные прически.

Зацени мои USP, чувак!

Показывай свои USP везде — в трейлере, скриншотах, постере, описании игры. Говори про них общении с прессой и издателями.Тычь ими в лицо!

Например, у They Are Here — это пришельцы, кукурузные поля как фильме Знаки, и НЛО.

Кароче — почитай про идею, концепцию, питч, USP игры. Сформулируй чёткое видение твоего проекта и доноси это видение до всех. Без него — всё развалится и поплывет.

Шаг 10. Составь список ассетов и задач

Ассеты — это кирпичики, из которых состоят игры.

Составь список того, что нужно сделать. Хотя-бы крупными мазками. Сделать уровнь, найти музыку, вставить персонажа. А еще надо 20 видов мечей.

Оцени время, а потом умножь его на 2. Даже если тебе кажется это глупым. Умножь его в 2 раза!

Если видишь, что проект большой — отрезай всё ненужное. Ненужное — всё, что не показывает идею. Или редко появляется на экране.

Например, если идея игры — ультра-насилие, то можно не делать 20 видов мечей, а лучше проработать физику расчленения тела.

Прикинь, что для мобильных гипер-казуалок нужно сделать минимум 30 минут геймплея. А для ПК и Консолей, лучше сделать игру на 2 часа. Если можешь больше — круто!

Настоятельно рекомендую!

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

Шаг 11. Организуй процесс

Записывай, всё что надо сделать. Каждую мелочь. Иначе — забудешь.

Ставь задачи. Себе и команде. Рекомендую Trello (проще) или Asana (функциональнее).

Cобирай инфу по проекту в одном месте. Можно юзать доски типа “Miro” или вики типа Notion.

Если ты один, или у вас небольшая команда, не парься над большой и красивой документацией. Лучше покажи пример, начерти схему, объясни на пальцах ЧЁ НАДО сделать.

Референс — лучшее описание задачи для художника! Например, я сказал жене — хочу обложку как у Слендера, но с пришельцем. Этого — достаточно!

Собирай и храни нужную инфу. Ссылки на классные статьи. Контакты возможных партнёров. Скриншоты багов. И т.п.

Шаг 12. Сделай демку

Демо-версия / Вертикальный срез / MVP — очень близкие по смыслу понятия. Это маленький кусочек игры финального качества.

Маленькая, но качественная демка

Демо-версия решает множество задач:

  • Поможет записать видео, скриншоты, гифки
  • Покажет окупаемость мобильной игры
  • Поможет устроиться на работу
  • Ускорит набор вишлсистов в Steam
  • Получит отзывы от игроков и стримеров
  • Можно участвовать в фестивалях и конкурсах
  • Только с ней можно найти издателя.

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

Шаг 13. Фигачь! Прорывайся к релизу!

Не буду вдаваться в подробности о релизе. Всё зависит от игры и платформы.

Лучше дам рекомендации как дожить до релиза:

  • Не меняй идею на ходу. Сильно. По чуть-чуть можно.
  • Не начинай другие проекты. Не распыляйся. Делай, что запланировал.
  • Составь график работы. Работай над игрой постоянно. Хотя бы по 3 дня в неделю, по 2 часа в день. Больше — быстрее!
  • Надоела разработка? Поиграй в похожие игры. Посмотри похожие фильмы. Найди, что было бы круто сделать.
  • Всё равно надоела? Мечтай о релизе. Представь как это будет здорово и вечно!
  • Показывай свою работу — пиши посты, пости гифки, давай поиграть стримерам. Твоя цель — получить позитивную обратную связь. Ну или отрицательную.
  • Узнавай что-то новое про производство игр. Слушай подкасты, смотри доклады. Это мотивирует, помогает в производстве.
Будь как этот парень

Спасибо, что дочитал!

Эта статья — вводная. Тебе много предстоит узнать и загуглить на каждом шаге.

Короче — ты можешь сделать это! Реально!

Главное — желание!

#Руководства

  • 11 окт 2018

  • 24

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

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

 vlada_maestro / shutterstock

Евгений Кучерявый

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

Главное — в самом начале узнать, что нас ждёт, чтобы потом не свернуть на полпути, пройти все этапы и выпустить релиз. Подробно всем тонкостям, навыкам и хитростям мы обучаем на курсе «Профессия разработчик игр на Unity». Здесь же рассмотрим первые шаги, которые ждут разработчика.

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

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

Все три способа подразумевают какое-никакое программирование, так что знать хотя бы основы вам точно придётся.

Подойдут любые, от Python и C до Pascal и Java. От выбора зависит то, сколько времени уйдёт на игру и для какой платформы будет релиз. Также язык влияет на производительность.

На C++, например, пишут для любой платформы, а вот PHP или JavaScript лучше подходят для браузерных игр. Если же вы используете один из движков, то лучше вдобавок изучать C# — на нём прописывают скрипты. Главное — не недооценивать языки. Движок Unity дружит и с JavaScript, а MineCraft был написан на Java.

Среди современных выделим:

CryEngine

Crysis, Far Cry, Sniper II: Ghost Warrior.

Unreal Engine

Gears of War 4, Dead Pool, Mortal Kombat X, Tekken 7

Unity

Outlast, Assassin’s Creed: Identity, Temple Run, Deus Ex: The Fall.

Большой популярностью пользуется Unity, он рассчитан как на 2D-, так и на 3D-игры. Он подходит под разные платформы и языки. На нём создается большинство мобильных и инди-игр. Он бесплатный, но если вы зарабатываете на своих играх больше 100 тысяч долларов в год, то придётся делиться ими с разработчиками Unity.

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

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

Физика — это то, как мир игры реагирует на действия игрока или объектов внутри мира. Вот какие могут быть физические действия:

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

Если пишете сами, то для обычного прыжка придется:

  • проверить, находится ли игрок на земле;
  • менять координату Y, чтобы игрок поднимался вверх;
  • закончить подъём через какое-то время;
  • начинать и продолжать падение до тех пор, пока под ногами игрока не окажется земля.

Не говоря уже о том, что нужно работать над анимацией всего этого.

function jump() {
If(gamer.jumpTimer >= 1) {
   gamer.y++; 
   gamer.jumpTimer --;
   } else {
      If(gamer.y >= ground.y) {
         gamer.y--;
      }
   }
}

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

  • Вы поместили объект в рабочую область Unity.
  • Указали, что для него нужно использовать физику.
  • При запуске игры объект упадёт.

И для этого не придётся писать код вообще — всё уже предусмотрено.

Игровая механика — это то, какими способами игрок взаимодействует с миром. Совокупность игровых механик составляет игровой процесс. Например, вы уже реализовали возможность ходьбы и прыжков. Эта игра, скорее, платформер.

А если добавите механику получения опыта, повышения уровней, прокачки навыков, — игра станет походить на RPG. Механика — такая же важная составляющая игры, как и сюжет или графика.

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

  • если добавить стрельбу, то будет экшн;
  • если игрок будет безоружен, — стелс;
  • если ещё и замки нужно взламывать, то это уже головоломка или пазл.

Будучи программистом, придётся уделять много времени механике.

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

В движке достаточно просто загрузить нужные файлы и прикрепить их к нужным моделям. Иначе — прописывать всё вручную, в том числе и анимацию.

Пример анимации двумерного персонажа

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

Анимация в действии

Если брать 3D-модель, то используется скелетная анимация — модель как бы нанизывается на специальный каркас (скелет) с подвижными частями. Движение этих частей прописывается в коде.

На скриншоте видно, как персонаж сгибает руку в местах с точками (вершинами). Таких точек может быть очень много, если требуется сложная анимация — жесты, мимика и так далее.

Создаётся анимация так: прописываются точки координат или захватываются движения реального актера.

Первый способ сложный, но дешёвый, потому что от программиста требуется только прописать движения — сдвинуть точку A1 на координаты (50,240).

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

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

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

Если геймплей предусматривает взаимодействие с NPC, то им нужно прописать модели поведения: реакцию на действия игрока, агрессивность, возможность вести диалоги или торговать.

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

Разобравшись с тем, как всё будет устроено в игре, можно приступать к разработке. Но чтобы проект был коммерчески успешен, выбирайте популярные платформы. Всего можно выделить четыре:

  • Персональные компьютеры.
  • Приставки.
  • Мобильные устройства.
  • Браузер.

У каждой из этих платформ своя аудитория с вполне конкретными предпочтениями. На мобильных устройствах предпочитают головоломки (2048, 94%, Cut the Rope), аркады (Subway Surf, Temple Run, Angry Birds) и казуалы (Talking Cat Tom, Kitty Kate Baby Care, Hair Stylist Fashion Salon).

На компьютерах играют в MMORPG (Lineage II, World of Warcraft, Skyrim) или шутеры (Battlefield, Call of Duty, Counter-Strike).

Приставки подходят для гонок (Need for Speed, Blur, Burnout Paradise), приключенческих игр (Assassin’s Creed, Portal, The Walking Dead) и так далее.

В браузерах собирают пазлы и строят фермы.

Конечно, можно сделать и головоломку для PS4, и гонку для браузера — никто никого не ограничивает.

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

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

Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.

Участвовать

Научитесь: Профессия Разработчик игр на Unity с нуля до Middle
Узнать больше

Голубев Никита, коммерческий автор и переводчик, специально для блога Нетологии перевёл статью разработчика игр Анжелы Хе о том, как без навыков программирования создать свою первую игру.

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

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

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

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

  • Концепция
  • Графика
  • Программирование
  • Звук
  • Подготовка к публикации
  • Публикация

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

image

Концепция

Совет

У вас есть классная идея. Но как оформить её на бумаге?

У каждого свой путь. Одни составляют дизайн-документы по 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.

Принципы создания интерфейса:

  • Google Material Design.
  • Apple’s UI Do’s and Don’ts.

Создание 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]; 
    /*
    Скобки [] нужны для объявления массива. Мы присваиваем массив из 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 очень много бесплатных ассетов. В своих проектах я использую минимум по два. Они упрощают жизнь, но далеко не идеальны. Заметили ошибку — исправляйте и говорите разработчику о ней.

  • TextMeshPro.
  • LeanTween.
  • Fungus.
  • Corgi Engine.
  • Dialogue System.
  • Post Processing Stack.
  • Keijiro Takahashi — работает над Unity, доступные проекты визуальных эффектов с открытым исходным кодом.

Немаловажный, даже главный источник решения проблем с кодом — Гугл!

Звук

Совет

Аудио способно создавать настроение и погружать в игру, но для него нужна память.

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

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

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

Инструменты

Приложения для работы с аудио:

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

Создание ретро-эффектов:

  • Chiptone.
  • Bfxr.
  • Leshy SFMaker.
  • as3sfxr.

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

  • Soundcloud. Здесь можно найти бесконечно много звуков и музыки под лицензией Creative Commons. Начните с этого плейлиста. Использовать можно бесплатно, но не забудьте указать авторство.
  • Incompetech.
  • Bensound.

Подготовка к публикации

Совет

Существует небольшая вероятность — на 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 и помещает в один файл, экономя оперативную память.

Инструменты (только для Unity)

Скрипты:

  • Optimizing scripts in Unity games.

Графика:

  • A guide to optimizing Unity UI;
  • Art Asset best practice guide.

Память:

  • Reducing the file size of your build.
  • Memory.

Оптимизация под платформы:

  • Practical guide to optimization for mobiles;
  • WebGL performance considerations;
  • Memory Considerations when targeting WebGL;
  • Olly’s seven stages of optimizations for mobile VR.

Публикация

Совет

Самое время показать всему миру своё творение.

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

Вы не узнаете, станет ли игра хитом, пока не опубликуете её.

  1. Описание

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

  2. Нетворкинг

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

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

    Где взять адреса?

    • Найдите в сети контакты авторов, которые вам нравятся: почта, страница в LinkedIn, Твиттер.
    • Найдите почту издания в разделе «О нас» или внизу страницы.

    Не пишите в игровые издания, которые не освещают ваш жанр или целевую игровую платформу.

  3. Стримеры и видеоблогеры

    Они снимут по игре видео, если:

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

    Обычно адреса блогеров указаны на странице. Если нет, попробуйте найти контакты в интернете.

    Письмо видеоблогеру Markiplier, чей канал насчитывает более 21 миллиона подписчиков

    Видео по игре от Markiplier

  4. Социальные сети

    Это прекрасный инструмент для продвижения: Agar.io обрела популярность на 4chan, Butterfly Soup подскочила в загрузках после внимания в Твиттере.

    Как лучше: публиковаться через издателя или самому. Хотите пойти по пути Hotline Miami, выпущенной Devolver Digital, или перенять опыт Farmville и Doki Doki Literature Club?

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

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

    Количество установок игры растёт

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

  5. Жмите на кнопку «Опубликовать»!

    Получилось! Теперь расслабьтесь, возьмите что-нибудь вкусное и отдохните. Вы работали не покладая рук и заслужили это.

    Не бойтесь, если игра не получила ожидаемого внимания — это нормально. У моей первой игры всего 255 загрузок в Steam.

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

Инструменты

Сервис presskit() помогает разработчикам оформить описание игры для прессы.

Платформы для публикации:

  • Steam (PC) — 100 $ за публикацию.
  • Origin (PC).
  • GOG (PC) — бесплатная публикация после разрешения.
  • Mac App Store (MacOS) — 100 $ в год, требуется учётная запись разработчика Apple.
  • itch.io (PC / Web) — бесплатная публикация.
  • Game Jolt (PC/Web) — бесплатная публикация.
  • Armor Games — бесплатная публикация.
  • Kongregate (Web) — бесплатная публикация.
  • Newgrounds (Web) — бесплатная публикация.
  • GitHub (Web) — бесплатная публикация на сайте, заканчивающемся на «___.github.io».
  • Amazon (Web/Mobile) — бесплатная публикация.
  • Google Play (Mobile) — 25 $ за публикацию.
  • iOS App Store (Mobile) — требуется учётная запись разработчика Apple.

Журналы об играх:

  • DTF (на русском).
  • Канобу (на русском).
  • IndieGames.
  • Siliconera.
  • FreeGamesPlanet.
  • PCGamer.
  • Kotaku.
  • Rock Paper Shotgun.
  • Polygon.
  • Giant Bomb.
  • EuroGamer.

Фестивали:

  • Independent Games Festival (IGF). Приём заявок до 1 октября.
  • Indiecade. Международный фестиваль инди-игр. Приём заявок до мая–июня.
  • Swedish Game Awards. Игровая премия Швеции. Приём заявок до июня.
  • South by Southwest Festival (SXSW). Приём заявок до декабря.
  • The Game Awards. Приём заявок до ноября.

Игровые конференции:

  • DevGAMM — проводится в Москве.
  • Game Developer’s Conference (GDC).
  • Penny Arcade Expo (PAX).
  • Electronic Entertainment Expo (E3).
  • Tokyo Game Show.

Заключение

Нет простого пути создания игры. Есть только ваши решительность и усилия.

За каждым Half-Life, Minecraft и Uncharted лежат океаны крови, пота и слез.
Кен Левин, создатель Bioshock

Вы будете допускать ошибки, чувствовать себя в тупике и плакать. Это нормально — значит, вы растёте над собой.

От редакции

  • Онлайн-курс «Геймдизайн с нуля: станьте профессионалом игровой индустрии»
  • Онлайн-курс «Создание продукта: аналитика, разработка, продвижение»
  • Онлайн-профессия «Python-разработчик»
  • Онлайн-профессия «Ruby on Rails разработчик»
  • Онлайн-курс «PR в digital: стратегия, репутация, инструменты»
  • Онлайн-курс «Дизайн мобильных приложений: интерфейсы, архитектура, визуальная концепция»

Для работы проектов iXBT.com нужны файлы cookie и сервисы аналитики.
Продолжая посещать сайты проектов вы соглашаетесь с нашей
Политикой в отношении файлов cookie

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

— Я придумал игру, создай мне её.
— А почему ты сам её не создашь?
— Я не умею.

И я задумался, а так ли сложно что-то создать с нынешним количеством уроков и тем по созданию игр в интернете?

С чего начать?

Для начала нам нужна идея, что за игру мы будем создавать, благо у меня была идея брата. Рассмотрим её поближе.

  1. Это РПГ в средневековом стиле (банально, не правда ли? =) )
  2. Она должна быть 3D, а не 2D (тут, кстати, довольно интересно, потому как в основном весь интернет пестрит роликами с 2D играми)
  3. Вид камеры от третьго лица
  4. Характеристики изменяются сами с повышением уровня, с упором на используемое оружие.
  5. Лимит уровней — 30
  6. Предметы привязаны к уровню персонажа (персонаж четвертого уровня не сможет использовать предмет пятого уровня) 
  7. Движок, на котором всё будет работать (в моём случае это Unity: по работе с ним самое большое количество уроков на мой взгляд)

Думаю, что данный план вполне подойдёт для создания шедевра ААА класса =).

Начнём создавать шедевр

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

Идём в интернет и спрашиваем «как нам начать использовать Unity?».

Запускаем Unity Hub.

Выбираем NEW и далее 3D проект, пишем название и местоположение проекта.

И открывается сама программа.

И тут, наверное, знатоки начнут кидаться картошкой со словами «Зачем столько воды? Все и так это знают» НО! Материал предназначен в первую очередь для тех, кто ничего не умеет, а не для гуру геймдева =).

Дальше снова идём в интернет либо проходим туториал в самой программе, чтобы научиться основам работы с движком. Для того, чтобы воспользоваться туториалом в программе, нужно в окне Unity Hub нажать на строчку Learn и выбрать любой из проектов. Я советую пройти все уроки и посмотреть несколько роликов по созданию игр.

Как создать модели для игры?
  1. Научиться моделированию (сложно, долго, но интересно)
  2. Купить готовый пак моделей (быстро и просто, но за деньги)

Я выбрал второй вариант. Отправляемся в AssetStore. Если у вас не активировалась ваша учетная запись, повторно входим в личный кабинет. И начинаем искать подходящие паки. Я нашел то, что нужно, примерно за 3 минуты по поиску knight. В паке, помимо моделей самих персонажей, были модели окружения. Купил за 10 долларов, нажал Import, поставил все галочки, и пропала проблема, неумения моделировать. 1/4 игры готово.

Сцена

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

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

Поскольку мы с вами в этом деле новички, снова лезем в интернет и смотрим, как нам поставить поверхность в игровую зону. Выбираем GameObject -> 3D Object -> Cube, после масштабируем его до простой площадки.

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

И вот он, наш герой, который будет покорять всех и вся.

Анимация

Помните в рейде «Цитадель Ночи» в World of Warcraft был босс Алуриэль? Когда она произносила заклинания, то кричала «Аннигиляция, репликация, детонация, АНИМАЦИЯ!!!». Нам необходимо с криком «Анимация!» наброситься на интернет и понять, как её сделать.

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

  1. Идём на сайт www.mixamo.com
  2. Регистрируемся
  3. Получаем огромное количество анимации на все случаи жизни

Что нужно в первую очередь? По мне — так научиться ходить и бегать. Возьмём анимацию ходьбы и бега.

  • В поисковике анимации набираем walking, выбираем понравившуюся анимацию, и ставим галочку In Place
  • Далее нам нужно подгрузить FBX модель от купленного пака для того, чтобы анимация не баговала (иногда такой модели может не быть в паке, но сейчас 99% разработчиков дают модель при покупке любого пака бесплатно либо она может лежать на официальном сайте). Тыкаем на upload character и загружаем модель FBX со смешным названием Mixamo_Guy_Naked.fbx.
  • Видим, что наш FBX заменил стандартную модель миксамо, и при желании можно кастомизировать анимацию, но этого делать мы, конечно же, не будем. Меня всё устраивает. Я жмякаю кнопку Download, выбираю Frames per Second 60 — анимация ходьбы готова.
  • Проделываем туже процедуру с анимацией бега (и другими, в зависимости от того, сколько вы их хотите добавить в данный момент)

Теперь создаём папку Animation в Unity и добавляем туда нашу анимацию. Начинаем настройку.

  • Выбираем анимацию, в inspector переходим на вкладку Rig, в строке Animation Type выбираем Humanoid и тыкаем Apply.
  • Заходим во вкладку Configure, если выползет окно, нажимаем save. В первую очередь нажимаем на вкладку Head, и в строке Jaw вместо Eyebrows ставим none (на вопрос «Почему?» скажу, что у нас просто нет бровей). Далее выбираем Left Hand и в строку Little Proximal, Little Intermediate, Little Distal ставим none, далее Middle Proximal — Finger_01, Middle Intermediate — Finger_02, Middle Distal — Finger_03. Мы делаем это, потому что у нашей FBX модели есть только указательный палец, а остальные три идут как один.
  • Проделываем всё то же самое с Right Hand, пальцы там будут иметь названия Finger_011, Finger_021, Finger_031, Apply, Done.
  • Повторяем всё выше написанное с каждой новой анимацией.
  • В Inspector анимации переходим во вкладку Animation. В строке Clips выбираем mixamo.com, меняем название над Source Take на Walking, выставляем галочки напротив Loop Time, Bake into Pose(Y,XZ), Apply. С анимацией Running проделываем то же самое, НО! Не забываем поменять название на Running.
  • Создаём Animator Controller, тыкаем правой кнопкой, в диалоговом окне выбираем Create -> Animator Controller
  • Заходим в Animator Controller, тыкаем правой кнопкой Create State -> Empty, выбираем появившийся бочонок New State, Смотрим в inspector и в строке Motion выбираем анимацию ходьбы walking, добавляем второй бочонок и в нём выбираем анимацию Running. И тут я понимаю, что у меня нет анимации бездействия (стоять на месте), быстро бегу в миксамо, выбираю анимацию бездействия Idle и добавляю её в проект =)
  • Сейчас необходимо правильно объединить анимацию. Бочонок Idle должен быть первым, чтобы персонаж без действий проигрывал анимацию Idle. Тыкнем по бочонку правой кнопкой и выберем Set as Layer Default State. Как видим, он теперь стал желтый и идёт сразу после Entry. Теперь подключаем анимацию Walking и Running, используем Make Transition и протягиваем стрелочки от бочонков друг к другу.
  • И лайфхак: чтобы не было задержек между переходами анимации, заходим в настройки транзисторов (белых стрелочек) и убираем галочки Has Exit Time, жмякаем на Setting и выставляем Transition Duration(s), Transition Offset на 0.
  • Смотрим в параметры Animator — туда где написано List is Empty, нажимаем на плюсик, добавляем Bool и переименовываем его в Idle, создаем второй Bool и называем его Running.
  • Выбираем транзистор, который идёт от Idle к Running, справа в строке Conditions нажимаем плюс и добавляем Idle = false, на обратном транзисторе Idle = true. С транзисторами Idle — Walking проделываем ту же процедуру. С транзисторами Running — Walking проделываем аналогичную процедуру, но в этот раз используем параметр Running.

Вот мы и победили нашу анимацию! УРА! Теперь нам нужно подключить её к нашему персонажу. Вперед, к финишной прямой!

Выбираем персонажа, inspector, окно Animator, и в строке Controller нажимаем на кругляшок. Появится выбор, где мы и увидим нашу Animation, выбираем её и нажимаем на кнопку Play в Unity. Если вы всё сделали правильно, то сейчас должны наблюдать как ваш персонаж стоит, и у него проигрывается анимация Idle. То есть, он стоит и немного покачивается.

 С анимацией разобрались, пора включать снова человека, который ничего не умеет =)

Скрипт W A S D

Анимация у нас есть, теперь нужно заставить нашего персонажа двигаться. Покопавшись в интернете, я узнал, что можно просто добавить компонент Character Controller. Так и сделаем — тыкнем Add Component, в поиск вбиваем Character Controller и добавляем его, в строке Center выставляем Y=1 (нужно, чтобы «яйцо» покрывало всего персонажа. Если у вас получилось меньше или больше, то просто настройте его вручную).

И снова прочесав гигантской расческой интернет, я всё же нашел скрипт, который у меня заработал. Значит, пора его добавить в Unity. Жмякаем правой кнопкой, Create -> C# Script. Назовём его Move. Добавим туда такой код:

Тут код

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[RequireComponent(typeof(CharacterController))]

public class Move: MonoBehaviour
{

public float speed = 3.0F;
public float rotateSpeed = 3.0F;
void Update()
{
float horizontal = Input.GetAxis(«Horizontal»);
float vertical = Input.GetAxis(«Vertical»);

CharacterController controller = GetComponent<CharacterController>();
transform.Rotate(0, horizontal * rotateSpeed, 0);
Vector3 forward = transform.TransformDirection(Vector3.forward);
float curSpeed = speed * vertical;
controller.SimpleMove(forward * curSpeed);

if (controller.velocity == Vector3.zero)
{
GetComponent<Animator>().SetBool(«Idle», true);
}
if (controller.velocity != Vector3.zero)
{
GetComponent<Animator>().SetBool(«Idle», false);
}
}
}

Тут я немного поясню скрипт.

Верхние четыре строчки — это подключение библиотек, public class — название скрипта. Если у Вас скрипт называется Moving или что-то в этом роде, то поменяйте название. Учтите, к регистру скрипт тоже придирчив.

public float speed = 3.0F; public float rotateSpeed = 3.0F; — это скорость персонажа, настраивается по желанию. Далее идёт подключение управления Character Controller и, соответственно, анимации.

Перетаскиваем скрипт в Inspector персонажа и проверяем. It’s ALIVE!!!!!

Но есть нюанс: поворачивается наш персонаж слишком быстро и не подключена анимация бега. Скорость поворота лечится просто — выставляем в строке Rotate Speed 0.5, и наш персонаж больше не использует чит-крутилку из CS GO. Теперь сделаем, чтобы наш персонаж все-таки побежал. Снова интернет, хотя, по мне, тут можно и логически додумать, как всё провернуть, но всё же я нашел строчку кода, чтобы всё заработало. Добавляем в наш код такую строчку

Нажмите, чтобы развернуть

if (Input.GetButtonDown(«Fire3»))
GetComponent<Animator>().SetBool(«Running», true);
else if (Input.GetButtonUp(«Fire3»))
GetComponent<Animator>().SetBool(«Running», false);

Если у Вас возникли вопросы, что такое Fire3, то ответ прост: это LShift, а проверить это можно, зайдя File->Build Setting->Player Setting->Input Manager. Эту информацию также не составило труда найти в интернете.

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

Нажмите, чтобы развернуть

if (Input.GetKey(KeyCode.LeftShift))
{
speed = 6.0f;
}
else
{
speed = 3.0f;
}

В итоге весь скрипт у нас получился такого вида

Нажмите, чтобы рассмотреть весь скрипт

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[RequireComponent(typeof(CharacterController))]

public class Move: MonoBehaviour
{

public float speed = 3.0F;
public float rotateSpeed = 3.0F;
void Update()
{
float horizontal = Input.GetAxis(«Horizontal»);
float vertical = Input.GetAxis(«Vertical»);

CharacterController controller = GetComponent<CharacterController>();
transform.Rotate(0, horizontal * rotateSpeed, 0);
Vector3 forward = transform.TransformDirection(Vector3.forward);
float curSpeed = speed * vertical;
controller.SimpleMove(forward * curSpeed);

if (Input.GetKey(KeyCode.LeftShift))
{
speed = 6.0f;
}
else
{
speed = 3.0f;
}

if (controller.velocity == Vector3.zero)
{
GetComponent<Animator>().SetBool(«Idle», true);
}
if (controller.velocity != Vector3.zero)
{
GetComponent<Animator>().SetBool(«Idle», false);
}
if (Input.GetButtonDown(«Fire3»))
GetComponent<Animator>().SetBool(«Running», true);
else if (Input.GetButtonUp(«Fire3»))
GetComponent<Animator>().SetBool(«Running», false);
}

}

Всё проверили, всё работает, осталось только прикрепить камеру к персонажу. Без заморочек просто перетаскиваем Main Camera в нашего персонажа, далее её настраиваем как нам удобно, проверяем и празднуем ПОБЕДУ!

Заключение

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

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

Все описанное в этой статье было собрано без специальных знаний с помощью интернета.

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

Unity – история создания и особенности платформы программирования

Особенности разработки игр на Unity

Как создать игру на Unity

Unity – история создания и особенности платформы программирования

Unity представляет собой мультиплатформенную среду, предназначенную для разработки игр для компьютеров, консолей и мобильных устройств. Часто подобные программные продукты называют еще проще – игровой движок. Он использует в качестве исходного программный код, написанный на C#.

Характерной особенностью Unity выступает универсальность, которая объясняется поддержкой 25 различных платформ, включая самые распространенные в мире Windows, Xbox 360, ARM, tvOS, X64, Play Station 3 и многих другие. Популярность сервиса, который был выпущен в 2005 году, подтверждает несколько простых фактов. С помощью Unity разработано:

  • свыше половины всех игр, предназначенных для мобильных устройств;
  • почти две трети контента, предусматривающего наличие виртуальной или дополненной реальности;
  • множество всемирно известных игровых продуктов, например, Rust, Inside, Firewatch, Hearthstone, Outlast и т.д.

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

Почему именно Unity

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

  1. Обширный спектр предоставляемых создателям игр возможностей, заметно превышающий функционал большинства конкурентов, включая возможность создания 2D и 3D-продуктов.
  2. Значительная его часть доступна в бесплатном режиме, что особенно актуально для новичков в разработке игровых продуктов.
  3. Минимальные требования к уровню подготовки пользователя в части программирования, что становится существенным дополнением к предыдущему пункту списка.
  4. Удачное сочетание межплатформенной поддержки с визуальной средой программирования.
  5. Встроенный в платформу игровой движок, позволяющий не использовать или использовать сторонние инструменты и ресурсы по минимуму.
  6. Модульный принцип действия всех компонентов, входящих в систему Unity, что позволяет сочетать их самыми различными способами – в любой последовательности и разных комбинациях.

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

Основные компоненты игры

Прежде чем перейти к описанию процедуры разработки игры на Unity, необходимо отметить еще два очень важных базовых момента. Первый касается наиболее значимых составляющих любого игрового продукта. Нужно понимать, что итоговый успех определяется программным кодом, в лучшем случае, на 15-20%. Заметно больший вклад вносится другими компонентами игры, главными из которых выступают такие:

  1. Геймплей. Термин обозначает взаимодействие игрока с миром игры, непосредственно определяющее его цели и совершаемые для их достижения действия. Серьезное влияние на геймплей оказывает жанр продукта, так как каждый из них предусматривает стандартный набор требований, правил и механизмов их реализации.
  2. Игровая механика. Более конкретное понятие, обозначающее определенные взаимодействия игрока и игрового мира. Другими словами, геймплей формируется из набора игровых механик, количество которых определяется сложностью продукта и может достигать нескольких десятков или даже сотен.
  3. Сюжет. Представляет собой последовательность происходящих в игре событий. Увлекательность сюжета выступает одним из главных условий для успеха игры. Продуманная и интересно рассказанная история часто оказывается важнее стильной 3D-графики и мощного звука.
  4. Персонажи. Используются для реализации придуманных создателем игры сюжетных линий. Для персонажей одинаково важны и проработка дизайна, и характер. Один из эффективных способов увлечь игрока – придать персонажу узнаваемые черты, которые станут причиной для сопереживания или других сильных эмоций.
  5. Дизайн локаций или уровней. Визуальная составляющая игры. Включает цветовые решения, стилистику оформления, внешний вид персонажей и различных объектов, уровень детализации предметов и многое другое, заметное глазу игрока.
  6. Баланс. Показывает соотношение «сил» между персонажами и объектами игры. Определяет сложность прохождения. Причем важно понимать, что наибольший интерес у игроков обычно вызывает нечто среднее – не слишком сложное, но и не чересчур простое. Поиск оптимального баланса – одна из ключевых задач, стоящих перед разработчиком игры.

Особенности разработки игр на Unity

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

  1. Asset (ассет). Так называются готовые компоненты, доступные для использования при создании собственных проектов. Обычно речь идет о текстурах, шрифтах, звуках или элементах интерфейса, собранных в библиотеки. Купить или скачать бесплатно различные ассеты можно в официальном интернет-магазине Unity Asset Store.
  2. GameObject (игровой объект). Термин используется для обозначения ассетов, которые задействованы в игровой сцене. В качестве примера можно привести деньги: внешний вид монеты представляет собой ассет, а 10 монет в руках персонажа – это 10 GameObject.
  3. Components (компоненты). Выступают частью игрового объекта, формирующей его поведение. Компоненты непосредственно влияют на перемещения GameObject, их реакцию на внешние воздействия и другие триггеры, предусмотренные сюжетом игры.
  4. Script (скрипт). Стандартное обозначение программного кода, который применительно к Unity пишется на языке C#.

Как создать игру на Unity

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

Для этого необходимо последовательно предпринять ряд сравнительно несложных шагов.

Шаг №1. Установка Unity

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

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

Завершающей операцией первого этапа разработки игры становится регистрация пользователя на сайте. Для создания Unity ID используются разные способы – email или аккаунт в Google/Apple.

Дополнительной и очень полезной опцией становится предложение сервиса просмотреть создание тестовой игры Microgame. Новому пользователю предлагается на выбор пять шаблонов разной жанровой направленности – начиная с LEGO и заканчивая шутером от первого лица. Просмотр обучающего материала поможет разработчику в дальнейшем при реализации собственного проекта.

Шаг №2. Создание проекта

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

  • проекту дается имя;
  • указывается место хранения информации;
  • выбирается так называемый таймлет.

Последний термин обозначает шаблон для разработки. Его основные характеристики – внешний вид и набор функциональных возможностей – зависят от числа измерений в игре. Новичку имеет смысл стартовать с разработки 2D-игры, так как реализация 3D-проекта требует намного больших усилий и предусматривает создание некоторых компонентов собственными силами.

Шаг №3. Настройки интерфейса

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

Верхняя панель не отличается от стандартной для значительной части подобных программных продуктов. На ней размещаются классические пункты меню: File, Help и т.д., которые не требуют дополнительных пояснений.

Важно выделить несколько характерных исключительно для Unity элементов интерфейса, в числе которых:

  • Scene и Game, расположенные в верхней части экрана несколько левее центра. Представляют собой сцену с видом игрового пространства. В первой вкладке – глазами разработчика, во второй – игрока;
  • Hierarchy отражает списки всех представленных в окне сцены игровых объектов;
  • Project представляет собой структурированный набор папок, предназначенных для хранения ассетов с разбивкой на категории (звуки, шрифты, текстуры и т.д.);
  • Inspector предназначен для корректировки различных характеристик GameObject – положения в пространстве, размера, цвета и т.д.

Шаг №4. Добавление объекта

Начиная с этой стадии, пошаговая инструкция становится цикличной, а шаги с 4 по 6 выполняются необходимое количество раз. Первым из них становится добавление объекта. Загрузить требуемые наборы ассетов можно из Asset Store. Нужный сайт открывается переходом по нескольким ссылкам: сначала Window, затем General, а в завершении – непосредственно Asset Store.

Загрузка осуществляется посредством кнопки Import. После ее нажатия ассеты автоматически перемещаются в окно Project. Дальнейшие действия производятся непосредственно на Unity, причем функционал платформы позволяет вносить существенные изменения мышью или горячими клавишами, что намного проще, чем исправлять программный код.

Шаг №5. Работа со скриптами

К каждому объекту, определенное поведение которого предусматривает игровой сюжет, привязываются компоненты. Базовый из них – Transform – отвечает за расположение в окне сцены, а также опции поворота и масштабирования. Изменение цвета определяет компонент Renderer и т.д.

Помимо основных, используются и дополнительные компоненты. Они представляют собой скрипты, написанные на C#. Чтобы добавить новый, необходимо открыть окно Project, кликнуть на Assets, после чего – на Create, а затем – на C# Script.

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

Шаг №6. Настройка и добавление триггеров

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

Шаг №7. Завершение

По большому счету, циклическое выполнение этапов с 4 по 6 позволяет создать новую игру, после чего имеет смысл ее протестировать. Удобный и простой в использовании интерфейс игрового движка освоить несложно. Для разработки первого игрового продукта – предельно простого и небольшого по объему — необходим минимум знаний в программировании и изучение одного из многочисленных руководств пользователя, ссылки или названия которых будут приведены ниже.

Ошибки новичков

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

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

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

Что почитать по теме

  1. Разработка вашей первой игры с помощью Unity и C# от Microsoft.
  2. Как начать разрабатывать игру от Unity.
  3. Руководство: Создание геймплея от Unity.
  4. Учебный курс «Разработчик игр на Unity» от Нетологии.
  5. Учебный курс «Разработчик игр на Unity» от SkillFactory.
  6. Учебный курс «Разработчик игр на Unity с нуля до Middle» от Skillbox.
  7. Видеоролик на YouTube «I made a game in 1 week with Unity».
  8. Видеоролик на YouTube «Моя ПЕРВАЯ 3D игра на Unity».

FAQ

Что такое Unity?

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

Почему игровой движок настолько популярен?

Первая причина указана в предыдущем вопросе. Остальные выглядят следующим образом:

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

Что требуется для разработки первой игры на Unity?

Минимальный набор знаний в области программирования с использованием языка C#. Желательно – наличие одного из различных руководств пользователя, найти которые несложно.

Какова последовательность действий для решения задачи?

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

Подведем итоги

  1. Unity – самая популярная среда для разработки разнообразных игр.
  2. Она поддерживает все известные игровые платформы.
  3. Важными достоинствами Unity выступают нетребовательность к уровню подготовки game-разработчика и бесплатный доступ к большей части функционала.
  4. В результате использование Unity позволяет бесплатно создать первую игру даже начинающему разработчику.


Загрузить PDF


Загрузить PDF

Разработка видеоигры — дело непростое. Тем не менее, если у вас есть идея на миллион, то лучше начать как можно скорее! Независимых разработчиков в последнее время становится все больше, а создание игры еще никогда не было дешевле или проще. Эта статья расскажет вам про основные вехи создания видеоигры.

  1. Изображение с названием Make Your Own Video Game Step 1

    1

    Выберите жанр. Да, все успешные игры — уникальны. Тем не менее, их можно причислить к тому или иному жанру. Определитесь с жанром первым же делом! А жанры бывают следующие:

    • Аркады
    • Шутер
    • Пазл
    • Платформер
    • Гонки
    • Квест
    • Бесконечный забег
    • РПГ
    • Шутер от первого лица
    • Манга
    • Башенная защита
    • Ужастик
    • Файтинг
    • Комедии
    • Выживание
  2. Изображение с названием Make Your Own Video Game Step 2

    2

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

    • Общее правило таково — проще разрабатывать игру, сразу представляя, как и на чем в нее будут играть. Есть исключения, само собой, но исключения есть из всех правил.
    • Хотите сделать игру для iPhone? Ее надо будет отправлять в AppStore с компьютера под управлением Mac.
  3. Изображение с названием Make Your Own Video Game Step 3

    3

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

  4. Изображение с названием Make Your Own Video Game Step 4

    4

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

    • возможность вести машину;
    • возможность проверить рефлексы игрока;
    • возможность симуляции экономики космической державы.
  5. Изображение с названием Make Your Own Video Game Step 5

    5

    Запишите все особенности своей игры. Особенности — это то, что будет отличать вашу игру от тысяч прочих. Начните с перечисления идей и концептов, затем перепишите все это в осмысленные предложения. Подготовьте 5–15 особенностей. Например:

    • Концепт: постройка космической станции.
    • Особенность: можно построить собственную космическую станцию и управлять ею.
    • Концепт: урон от метеоритов.
    • Особенность: игрок старается выжить в условиях метеоритных дождей, вспышек на солнце и так далее.
    • Перечислите особенности сейчас, и потом вам будет проще вставить их в план разработки по игре. Все особенности лучше заложить в самом начале, чем «лепить» все потом одно на другое.
    • Переписывайте список особенностей до тех пор, пока ней поймете: «Это именно та игра, которую я хочу создать».
  6. Изображение с названием Make Your Own Video Game Step 6

    6

    Устройте перерыв. Спрячьте в стол черновики на недельку-другую. Потом достаньте и взгляните на них свежим взором. Это не повредит.

    Реклама

  1. Изображение с названием Make Your Own Video Game Step 7

    1

    Распишите все до мелочей. План разработки — это хребет вашей игры. В нем — все. Даже так: в нем — Все. Механика, сюжет, место действия, дизайн и все прочее. Причем важен не формат, важна суть, важно содержание этого документа.

    • Особенно важными планы разработки становятся тогда, когда под вашим началом команда. План разработки игры в данном случае — это настольный… файл команды. Будьте точны, конкретны и понятны в формулировках, описывающих те или иные аспекты игры.
    • Не у каждой игры есть план разработки, а двух одинаковых планов не найти. Эта статья — лишь общее руководство, но вы вправе вносить и свои изменения.
  2. Изображение с названием Make Your Own Video Game Step 8

    2

    Составьте оглавление. В оглавлении должен быть перечислен каждый аспект игры. Единственное, о чем не надо там упоминать — о сюжете, если только сюжет не связан теснейшим образом с механикой игры.[1]

    • Оглавление — это почти как руководство к игре. Начните с общих разделов, затем делите их на подразделы.
    • Оглавление — это как черновая модель игры. Но в каждом из пунктов должны быть подробности, много подробностей!
  3. Изображение с названием Make Your Own Video Game Step 9

    3

    Заполните каждый пункт оглавления. Опишите все так подробно и понятно, чтобы, начав работу по кодированию и прорисовке, все и все поняли, причем сразу. Каждая механика, каждая особенность — все должно быть объяснено на 5+!

  4. Изображение с названием Make Your Own Video Game Step 10

    4

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

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

    Реклама

  1. Изображение с названием Make Your Own Video Game Step 11

    1

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

    • С помощью движков упрощается работа с графикой, звуками и искусственным интеллектом.
    • Разные движки — разные плюсы и минусы. Что-то лучше подходит для двумерных игр, что-то — для трехмерных. Где-то нужно лучше разбираться в программировании, где-то можно начать работать, не отличая функцию от процедуры. Популярны следующие движки:
      • GameMaker: Studio — один из самых популярных движков для двумерных игр.
      • Unity — простой в использовании движок для создания трехмерных игр.
      • RPG Maker XV — скриптовый движок для создания двумерных ролевых игр в стиле JRPG.
      • Unreal Development Kit — трехмерный движок многоцелевого использования.
      • Source — очень популярный и часто обновляемый движок для создания трехмерных игр.
      • Project Shark — 3D движок для начинающих и продвинутых пользователей.
  2. Изображение с названием Make Your Own Video Game Step 12

    2

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

    • Это может стать началом командной работы над игрой. Сначала — программист, потом специалист по звуку и дизайнер, затем тестер…
    • Существует огромное сообщество независимых разработчиков, с которыми стоит сотрудничать. Если людям понравится ваша идея — они, вдохновившись, помогут вам воплотить ее в жизнь!
  3. Изображение с названием Make Your Own Video Game Step 13

    3

    Сделайте прототип игры. Изучив движок, сделайте прототип игры. Это, по сути, тест базовой функциональности игры. Графика или звук пока не нужны, нужны лишь заполнители и тестовая область.[2]

    • Проверять и переделывать прототип надо до тех пор, пока играть не станет весело. Во время проверок надо выявлять все, что работает неправильно, и вносить соответствующие изменения. Если прототип не вызывает у людей восторга, то и сама игра вряд ли их поразит.
    • Прототип будет меняться не раз и не два. Это нормально, ведь вы никогда не знаете заранее, как поведет себя та или иная механика.
  4. Изображение с названием Make Your Own Video Game Step 14

    4

    Поработайте над управлением. Управление, осуществляемое игроком — это базовый уровень функционала игры. На этапе прототипа важно сделать управление максимально удобным.

    • Плохое, сложное, непонятное управление — разочарованный игрок. Хорошее, качественное, точное управление — счастливый игрок.

    Реклама

  1. Изображение с названием Make Your Own Video Game Step 15

    1

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

    • Большинство индивидуальных игр создаются силами небольшой команды или даже одного человека. Учтите, что в одиночку создание игры займет куда больше времени.
    • Есть много бесплатных ресурсов, доступных для всех желающих. Главное в этом деле — не нарушать авторские права.
  2. Изображение с названием Make Your Own Video Game Step 16

    2

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

    • Стилей графики в играх много. Кого-то устраивает пиксель-арт — и, к слову сказать, это самый частый выбор для индивидуальных игр. Оно и понятно, ведь пиксель-арт — это самый простой и дешевый способ создания графики, не лишенный при этом и определенной толики очарования.[3]
    • Есть силы и средства? Что скажете о трехмерной графике? Простые 3d-модели можно сделать самому, на сложные надо будет нанимать людей со стороны. И не забудьте, что поверх моделей должны быть наложены текстуры.
  3. Изображение с названием Make Your Own Video Game Step 17

    3

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

  4. Изображение с названием Make Your Own Video Game Step 18

    4

    Улучшите графику. В зависимости от выбранного стиля графики, вам на помощь могут прийти разные программы, например:

    • Blender — один из самых популярных 3d-редакторов (причем бесплатный). В сети полным-полно руководств по нему, так что разобраться и быстро начать работать проблемы не составит.
    • Photoshop — очень полезен на этапе создания текстур, а также для отрисовки двумерного арта в целом. Да, он платный. Если хочется бесплатного аналога — возьмите Gimp, у него почти такой же функционал.
    • Paint.net — бесплатная альтернатива такой программе, как Paint Shop Pro, позволяет легко и просто создавать двумерный арт. Особенно полезна эта программа при работе над двумерным пиксель-артом.
    • Используйте Adobe Illustrator. Эта программа отлично подходит для векторной графики. Стоит она недешево, так что, если денег у вас в обрез, используйте Inkscape — бесплатная альтернатива Adobe Illustrator с открытым исходным кодом.
  5. Изображение с названием Make Your Own Video Game Step 19

    5

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

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

    Реклама

  1. Изображение с названием Make Your Own Video Game Step 20

    1

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

  2. Изображение с названием Make Your Own Video Game Step 21

    2

    Не забывайте о философии игры. Во время создания игры необходимо постоянно проверять — не отдалились ли вы от философии игры, все ли особенности реализовали, не превратилась ли игра в нагромождение несвязанных между собой фич.

  3. Изображение с названием Make Your Own Video Game Step 22

    3

    Доводите все до ума. Графика, звук, игровой дизайн — все должно быть качественно и атмосферно. Возможность быстро довести все до ума будет в немалой степени зависеть от того, какой стиль графики был вами выбран.

    Реклама

  1. Изображение с названием Make Your Own Video Game Step 23

    1

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

  2. Изображение с названием Make Your Own Video Game Step 24

    2

    Делайте то, что в обычной ситуации бы делать не стали. Нужно проверить каждый способ, которым игрок может взаимодействовать с окружением. Убедитесь, что правила игры нельзя обойти или взломать.

    • Тестирование игры — процесс длительный. Порой он занимает даже больше времени, чем сама разработка. Впрочем, чем больше у вас тестеров — тем быстрее все завершится и тем больше багов вы найдете.
  3. Изображение с названием Make Your Own Video Game Step 25

    3

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

  4. Изображение с названием Make Your Own Video Game Step 26

    4

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

    Реклама

  1. Изображение с названием Make Your Own Video Game Step 27

    1

    Проверьте еще раз движок на тему издания игры. Каждый движок поддерживает ряд платформ, а некоторым движкам требуются дополнительные лицензии, чтобы выпустить игру для другой платформы. Например, Game Studio в стандартной версии делает игры для Windows и Mac OS X. Чтобы сделать на этом движке игру для мобильных платформ, нужно приобрести его Pro-версию.

  2. Изображение с названием Make Your Own Video Game Step 28

    2

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

    • Не забудьте про создание собственного сайта, чтобы поклонникам вашей игры было, где собраться. И про форум не забудьте, форум — тоже хорошо! И новости, новости регулярно выкладывайте!
  3. Изображение с названием Make Your Own Video Game Step 29

    3

    Определитесь с издателем. Кто-то из индивидуальных разработчиков просто выкладывает игру у себя на сайте. Если это онлайн игра, то затраты на хостинг и нагрузку на него обойдутся вам недешево. К тому же не каждый хостинг может выдержать подобные нагрузки. Это, конечно, хорошо когда есть возможность. Однако есть фирменные магазины, которые выпускают независимые игры для PC и Mac OS X, а именно:

    • Steam
    • Desura
    • Humble Store
    • Gog
    • Игры для мобильных распространяются через магазин мобильных приложений для той или иной платформы. Этот же принцип касается и консольных игр.
    • Разные сервисы — разные комиссии за размещение игры. Изучите этот вопрос как можно тщательнее.
  4. Изображение с названием Make Your Own Video Game Step 30

    4

    Занимайтесь поддержкой игры. Игра выпущена? Не забрасывайте ее! Выпускайте обновления, исправления багов, благо, что в наши дни это стало как никогда просто. А баги будут появляться, можете не сомневаться, поэтому старайтесь выпускать исправления как можно скорее.

    Реклама

Советы

  • Игры создаются по-разному. Эта статья — так, общий обзор. Вы вправе найти тот способ создания игр, который подходит вам лучше всего.
  • Вряд ли вы сорвете большой куш и станете миллиардером сразу после размещения игры в сети. Создание игр — это творчество, а деньги — так, бонус.
  • Люди будут сомневаться в том, сможете ли вы сделать игру. Это нормально. Пока вы верите в себя — вы сможете.
  • Начните с простых игр. Деньги не должны быть в приоритете. Создайте игру, которая вам нравится. Придет время, будут и деньги.
  • Помните о своей аудитории. Вы создаете игру для детей, подростков или для взрослых? Знать это нужно для рекламы. К примеру, игры для детей стоит рекламировать в детских программах, а не в газетах или ночных передачах.

Реклама

Предупреждения

  • Избегайте попадания в рейтинг AO (Adults Only — только для взрослых) от ESRB, иначе ни продавцы, ни интернет-магазины не захотят продавать вашу игру.
  • Проблемы и сложности обязательно будут. Но не опускайте руки! Создание хорошей игры требует немало времени, но результат оправдает все усилия!
  • Создавать игру — не так весело, как играть в нее. Многие юные геймеры хотят создать игру, лишь потому, что любят в них играть. Играть и разрабатывать — разные вещи. Вам придется проходить один и тот же отрывок игры сотню, а то и тысячу раз, и так нужно будет делать годами. Если вы терпеливы — дерзайте. Многим наскучивает создание игры уже через пару месяцев.
  • Изучите всю доступную информацию, чтобы понять, действительно ли разработка игр — это то, чем вы хотите заниматься.

Реклама

Об этой статье

Эту страницу просматривали 525 371 раз.

Была ли эта статья полезной?

Нашли для вас серию видео, в которой автор по шагам рассказывает, как написать свою игру на C++. Эти уроки не требуют каких-то продвинутых знаний, но базовые представления о программировании приветствуются.

Урок 0 — Введение и подготовка

В этом уроке автор расскажет, как пишутся игры. Также вы загрузите компилятор и напишите простой helloworld в Visual Studio, чтобы всё было готово для разработки игры.

Смотреть урок 0

Урок 1 — Окна и указатели

Здесь вы перейдёте к первому шагу на пути к игре: созданию окон. К концу урока у вас всё будет готово для отображения графики в окне.

Смотреть урок 1

Урок 2 — Графика

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

Смотреть урок 2

Урок 3 — Ввод, движение и время

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

Смотреть урок 3

Урок 4 — Геймплей, столкновения, улучшение передвижения

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

Смотреть урок 4

Урок 5 — Вражеский ИИ, подсчёт очков, завершаем геймплей

Из этого урока вы узнаете, как создать систему подсчёта очков. Также вы создадите ИИ противника и узнаете некоторые важные вещи об ИИ в играх.

Смотреть урок 5

Урок 6 — Завершаем игру

В последнем уроке вы завершите игру. Вы реализуете меню, систему отрисовки текста и немного отполируете результат.

Смотреть урок 6

Понравилась статья? Поделить с друзьями:
  • Как написать игровой сценарий
  • Как написать игровой искусственный интеллект unity 2d
  • Как написать игрового бота на python для web
  • Как написать игривое сообщение мужчине
  • Как написать игрек на клавиатуре