Как написать самую простую игру

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

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

Кто я такой?

Я гейм-дизайнер с 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 часа в день. Больше — быстрее!
  • Надоела разработка? Поиграй в похожие игры. Посмотри похожие фильмы. Найди, что было бы круто сделать.
  • Всё равно надоела? Мечтай о релизе. Представь как это будет здорово и вечно!
  • Показывай свою работу — пиши посты, пости гифки, давай поиграть стримерам. Твоя цель — получить позитивную обратную связь. Ну или отрицательную.
  • Узнавай что-то новое про производство игр. Слушай подкасты, смотри доклады. Это мотивирует, помогает в производстве.
Будь как этот парень

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

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

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

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

Для работы проектов 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 ресурсов, которые их предоставляют. Советую помимо интернета начать изучение какого-либо направления гейм дева.

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

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

Прежде, чем мы начнем, мы хотим привести вам пример первой игры от автора этой статьи. Это была простая текстовая игра под названием Divine Blood:

01

Это была самая первая игра, причем запрограммированная для калькулятора TI-83 Plus. Позднее она была переписана автором на Java во время обучения в старших классах. Примечательно, что игра так и не была закончена.

Ко всеобщему сожалению, не доводить игры до логического конца — одна из самых распространенных проблем начинающих разработчиков. Соответственно, возникает вопрос: как повысить свою продуктивность и все-таки закончить начатый проект? Ответ прост: прочтите наше «прохождение» разработки игры.

Основные этапы

Если вы разрабатываете игру сами (а начинающие программисты обычно пишут как раз в одиночку), то процесс написания можно разделить на 4 основных этапа (или уровня, как и в играх):

  • планирование;
  • прототипирование;
  • программирование;
  • релиз.

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

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

Уровень 1: Планирование

Помните, сделав 90% игры, вы думаете, что потратили 90% своего времени. А доделывая оставшиеся 10%, вы тратите еще столько же «оставшегося» 90% времени. Составляйте план, учитывая это. — Ян Шрейбер

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

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

02

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

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

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

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

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

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

Уровень 2: Прототипирование

Дизайн это процесс, а не результат. — Кристофер Симмонс

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

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

Если вы получаете удовольствие от какой-либо игры, то вы захотите поиграть в нее снова, независимо от того, сколько очков или денег вы там набрали. — Стэн Яроцки

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

Вы помните секретные телепорты в игре Super Mario Bros? Игрок мог найти хорошо спрятанные трубы, прыгнув в которые можно было пропустить несколько уровней. Так и здесь. Правда, мы не полностью пропускаем прототипирование, а совмещаем его с планированием.

03

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

Хорошая игра — это поток интересных задач, решаемых игроком. — Брюс Шелли

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

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

Уровень 3: Программирование

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

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

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

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

«Я не умею рисовать» — используй клипарт. «Я не умею создавать звуки» — ищи MIDI файлы. «Я не умею программировать» — никого это не волнует, не программируй! — Роб

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

Но вы не должны унывать! Лучшее решение этих проблем — отвлечься от проекта на несколько дней. Вы очистите ваш ум и позволите новым идеям посетить его. Также неоднократно замечено, что «утро вечера мудренее». Застряли? Не знаете как решить проблему? Ложитесь спать, а на завтрашнее утро вы, возможно, сразу поймете причину ваших неудач. Не работайте до изнеможения и не изнуряйте себя: работа над проектом должна быть в удовольствие.

Если вы пытаетесь и не можете решить действительно сложную проблему — остановитесь. Решите более простую проблему, которая выполняет те же действия, что и сложная. — Даниель Кук

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

Уровень 4: Релиз

Никогда не сдавайся. — Элис Тейлор

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

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

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

А финальным боссом всего нашего путешествия будет являться ваша гордость. Вы сделали полноценную игру от начала и до конца! На самом деле, не все могут похвастаться этим.

Каждый разработчик когда-нибудь напишет «плохую» игру. Если вы еще не написали — напишете. Все мы напишем. — Бренда Ромеро

И помните, дорога к успеху вымощена многократными неудачами. Никогда не сдавайтесь!

Вывод

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

А теперь соберитесь и напишите свою игру!

Перевод статьи «Making Your First Game: A Walkthrough for Game Developers»

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

Одна из самых известных инди-игр — Minecraft. Ее создал шведский программист Маркус Перссон, через три года он продал ее за 2,5 млрд долларов. Менее популярная, но тоже нашумевшая игра, созданная программистом-одиночкой, — Papers, Please. В ней весь геймплей сводится к проверке документов на пограничном пункте и выживанию. Еще есть хоррор-игра Five Nights at Freddy’s, в которой веселые роботы-аниматроники бродят по детской пиццерии.

На эти игры разработчики потратили несколько лет — они сложные, объемные, сюжетные или с открытым миром. А вот простую 2D-игру можно сделать за неделю. И начать лучше всего с этого.

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

— Для этого нужно воспользоваться конструктором игр. Например, Game Maker, Construct 3, Stencyl. Туда можно загружать собственные картинки и звуки, а потом задавать им определенные параметры. Кодить ничего не придется. Только нужно иметь в виду, что все игры будут плоскими, 2D.

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

  1. Для начала нужно создать игровую комнату. Это один экран игры. Ее можно превратить в космическое пространство, а можно — в газон, по которому будет гулять игрок, всё зависит от задумки и фона, который вы поставите. В случае с лабиринтом можно оставить черный фон.
  2. Чтобы выстроить лабиринт, необходимо создать объект «стена» — этот объект уже есть в конструкторе. Потом на объект «стена» накладывается картинка — так у стены появится фактура или нужный цвет.
    Затем надо поставить галочку, что стена — это статичный предмет, который герой не может пересекать, и просто разместить эти стены по игровой комнате, как это делается в игре The Sims.
  3. Теперь персонаж. Загуглите «человечек бежит вперед/назад/вправо/влево гиф анимация» и скачайте наиболее приглянувшегося. Это подойдет, если игру вы создаете для себя и друзей. Если в планах игру продавать, то лучше сделать гифку персонажа самостоятельно или заказать у профессионального художника.
    Затем останется соединить кнопку «вверх» с анимацией бега вверх, а потом поставить скорость передвижения в пять пикселей в секунду. То же самое нужно проделать с кнопками «влево», «вправо», «вниз». Если вы хотите, чтобы персонаж при беге топал, можно добавить звук топота, просто перетащив звуковую дорожку в программу.
  4. Чтобы персонаж не пробегал сквозь стену, создается событие «столкновение с объектом „стена“»: если игрок врезается в стену, то его персонаж получает скорость ноль или бежит на месте.
  5. Теперь монетки. Нужно создать объект «монетка» и загрузить либо статичную картинку монетки, либо гифку — чтобы монетка крутилась и сверкала. У монетки нет никаких свойств кроме того, что до нее можно дотронуться. Когда мы задали ей это свойство, остается прописать последствия ее взаимодействия с игроком: если он столкнулся с объектом «монетка», то монетка исчезает, а в счетчике баллов у игрока прибавляется единица.
  6. Остался злодей. Он создается так же, как персонаж, только передвигается по своему конкретному участку, «патрулируя» его. Если игрок сталкивается с объектом «злодей», то он либо возвращается на стартовую точку, либо у него сгорает одна жизнь.
  7. Если хочется сделать игру многоуровневой, в конструкторе просто добавляются новые комнаты.
  8. На финальном этапе игра проверяется на баги. Вдруг в каком-то месте персонаж выбегает за пределы экрана или не может захватить монетку?

— Где играть в свою игру?

— Проще всего играть на своем же компьютере — для этого игру нужно сохранить в формате .exe (в Windows. — Прим. ред.). Теперь она будет открываться как обычная программа. Или игру можно загрузить на сервис Game Jolt, чтобы она открывалась сразу в браузере.

Если игра создавалась для Android, то ее следует сохранить в формате .apk. Потом этот файл просто перекидывается на телефон и устанавливается.

Загрузить игру на Google Play тоже не проблема. Для этого нужно купить в своем аккаунте лицензию разработчика за 25 долларов, а после размещать там что угодно. В личном кабинете можно выкладывать скриншоты из игры, добавлять описания и иконки. Если Google Play вашу разработку одобрит, она попадет в общий список игр. И с этого момента игру может скачать любой пользователь Android.

Игра для iOS сохраняется в формате .ipa. Ее тоже можно загрузить в AppStore, но для этого нужно платить 100 долларов в год — столько стоит кабинет разработчика у Apple. Если перестать платить, то игра, даже одобренная, не будет доступна пользователям.

— Как создавать 3D-игры?

— Здесь не обойтись без языков программирования. В гейм-дизайне есть два больших направления: одни работают на C++, другие на C#. Нельзя сказать, что какой-то из этих языков лучше — оба хорошие. Просто кто-то привык работать на одном, кто-то на другом.

C++ нужно учить, чтобы затем создавать игры на движке Unreal Engine — он позволяет делать качественные 3D-игры. C# позволяет делать не менее качественные игры на движке Unity. Unreal Engine и Unity друг от друга мало чем отличаются, это два аналога, как камеры Canon и Nikon.

Внутри каждый из этих движков разделен на две части: пустое 3D-поле, которое надо наполнять, и редактор кода. В 3D-поле можно поместить отрисованного 3D-персонажа, просто перетащив мышкой с рабочего стола. Но шевелиться он будет только с помощью скрипта, который пишется на C++ или C#.

И над этим придется поработать. Для сравнения: на то, чтобы сделать в Game игру-платформер по типу «Марио», уйдет примерно неделя, а в Unity — три-четыре месяца.

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

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

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

Работать в Unreal Engine и Unity сложно даже опытным программистам. Освоить эти движки — дело нескольких лет, даже если проходить обучающие курсы. Но в перспективе на этих движках можно создавать такие игры, как Fortnite, Hogwarts Legacy, Firewatch и др.

— Как зарабатывать на своих видеоиграх?

— Если говорить про игры для Android и iOS, то самый простой путь — сделать игру платной уже при скачивании. Это настраивается в кабинете разработчика Google Play или AppStore. Цену автор игры устанавливает на свое усмотрение.

Путь посложнее — задействовать релевантные рекламные площадки. В 2022 году в России функционируют, в частности, «Рекламная сеть Яндекса» (РСЯ) и Unity Ads.

Все рекламные площадки работают по одному принципу: после бесплатной регистрации пользователь получает API — набор символов кода, который нужно вставить в программный код игры (любой, даже простейшей 2D). API позволит связать рекламную площадку с вашим продуктом.

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

Как только игрок проиграет, он автоматически увидит рекламу: картинку или видео. Показ одной картинки в среднем стоит 10–20 копеек, видео подороже — около рубля. Если придет пользователь из другой страны, то за показ рекламы вы можете получить и больше. Но зарубежная реклама появится только при условии, что пользователь находится в другой стране или играет через VPN.

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

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


Еще больше интересных и полезных вещей о мире и месте человека в нем можно узнать из выступлений участников проекта «Ученый говорит», который организован Российским обществом «Знание». Уже более 3000 ученых из 85 регионов страны провели интерактивные лекции с VR-сопровождением, мастер-классы, иммерсивные шоу и научные дебаты в рамках проекта. Если вам интересно посмотреть такое выступление или самому выступить перед аудиторией, узнайте больше о проекте «Ученый говорит» на сайте.


Реклама. znanierussia.ru

Специальный проект общества «Знание» и Журнала «Нож»


Загрузить 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 раз.

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

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

Двумерные игры сравнительно просты: для них не требуется сложных 3D-моделей, программный код по сравнению с 3D-проектами выглядит понятнее. Такие игры популярны как на десктопах, так и на мобильных устройствах. Unity также позволяет разрабатывать игры и для браузеров.

За последние годы вышло много популярных двумерных игр:

  • Battletoads продолжение серии игр в жанре beat ’em up, файтинг;
  • Spiritfarer игра в жанре «ферма», менеджмент;
  • Carrion игра в жанре «ужасы», метроидвания;
  • Creaks игра в жанре «квест», головоломка;
  • Streets of Rage 4 игра в жанре beat ’em up, файтинг.

Программная реализация 2D-игр проще не только из-за отсутствия третьего измерения: на самой сцене меньше объектов, вместо трехмерных моделей плоские спрайты, вместо скелетной анимации покадровая. А еще 2D-игры проще портировать на другие платформы – легче найти новую аудиторию.

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

Предварительно рассмотрим основные понятия Unity, без понимания которых будет проблематично создать игру:

  • Ресурсили Asset – основной строительный блок для любого проекта Unity. Это может быть изображение, трехмерная модель, звук. Чтобы не путать с префабами или игровыми объектами, рекомендуется размещать ресурсы в отдельной папке Assets.
  • Игровой Объектили GameObject. Если ресурс используется в сцене, то он становится игровым объектом. Например, у нас есть изображение противника – это ресурс. Когда же мы создадим на сцене 20 противников, то получим 20 игровых объектов.
  • Компоненты влияют на поведение и отображение игровых объектов.
  • Префаб – способ хранения игровых объектов, оптимизированный для многократного использования и клонирования с разными настройками. При изменении префаба изменяются все его копии.
  • Скрипт – исходный текст программы на языке C#. Могут прикрепляться к игровым объектам или префабам.

Пошаговый процесс создания 2D-игры на Unity

Предполагаем, что вы уже установили редактор и создали аккаунт на портале Unity.

В первую очередь создадим новый проект и откроем его настройки (Edit → Project Settings). Во вкладке Editor установим параметр Default Behaviour Mode в значение 2D

Настройка проекта

Настройка проекта
Детальная настройка проекта
Детальная настройка проекта

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

1. Создаем пустой объект, переименовываем в GameManager.

Создаем пустой объект

Создаем пустой объект

2. Создаем C#-скрипт с названием GameManager. Ассоциируем скрипт с объектом GameManager, перетащив мышкой скрипт на объект.

Создаем C# скрипт

Создаем C# скрипт

3. Создаем квадратный спрайт, называем его Pad (Assets → Create → Sprites → Square). Аналогично создаем круглый спрайт Ball (Assets → Create → Sprites → Circle). Масштабируем спрайт Pad со следующими параметрами x:0.5, y:2.5, z:1.

Создаем спрайты

Создаем спрайты

4. Создаем префабы для Pad и Ball, после чего добавляем к ним компонент Box Collider 2D (включаем параметр Is Trigger) и компонент Rigidbody 2D (выставляем параметр Body Type в значение Kinematic).

Добавляем .компонент Box Collider 2D

Добавляем .компонент Box Collider 2D
Настраиваем.компонент Box Collider 2D
Настраиваем.компонент Box Collider 2D
Добавляем компонент Rigidbody 2D
Добавляем компонент Rigidbody 2D
Масштабируем спрайты
Масштабируем спрайты

5. Создаем C#-скрипты Ball и Pad. Ассоциируем их с префабами.

6. Заполняем скрипты следующим кодом.

GameManager.cs
        using System.Collections;
using System.Collections.Generic;
using System.Security.Cryptography;
using UnityEngine;
public class GameManager : MonoBehaviour
{
    // Публичная переменная для ракетки, будет ассоциироваться с префабом Pad
    public Pad pad;

    // Публичная переменная для ракетки, будет ассоциироваться с префабом Pad
    public Ball ball;

    // Публичная переменная со значением нижнего левого угла экрана
    public static Vector2 bottomLeft;

    // Публичная переменная со значением верхнего правого угла экрана
    public static Vector2 topRight;

    void Start()
    {
        // получаем значение нижнего левого угла экрана
        bottomLeft = Camera.main.ScreenToWorldPoint(new Vector2(0,0));

        // получаем значение верхнего правого угла
        topRight = Camera.main.ScreenToWorldPoint(new Vector2(Screen.width, Screen.height));

        // создаем мяч
        Instantiate(ball);

        // создаем две ракетки
        Pad padVar1 = Instantiate (pad) as Pad;        
        Pad padVar2 = Instantiate (pad) as Pad;
        padVar1.Init (true);   // Инициализируем левую ракетку
        padVar2.Init (false); // Инициализируем правую ракетку
    }
}
    
Ball.cs
        using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
using UnityEngine;

public class Ball: MonoBehaviour
{
    [SerializeField]
    float speed;

    float radius;
    Vector2 direction;

    void Start()
    {
        direction = Vector2.one.normalized;
        radius = transform.localScale.x / 2;
    }

    void Update()
    {
        // Обрабатываем движение мяча
        transform.Translate(direction * speed * Time.deltaTime);

        // Обрабатываем столкновения с краями экрана
        if(transform.position.y < GameManager.bottomLeft.y + radius && direction.y < 0)
        {
            direction.y = -direction.y;
        }

        if (transform.position.y > GameManager.topRight.y - radius && direction.y > 0)
        {
            direction.y = -direction.y;
        }

        // Обрабатываем выигрыш игрока
        if (transform.position.x < GameManager.bottomLeft.x + radius && direction.x < 0)
        {
            UnityEngine.Debug.Log("Right win");
        }

        if (transform.position.x > GameManager.topRight.x - radius && direction.x > 0)
        {
            UnityEngine.Debug.Log("Left win");
        }

    }

    // Обрабатываем столкновение ракетки и мяча
    void OnTriggerEnter2D(Collider2D other)
    {
        if(other.tag == "Pad")
        {
            bool isRight = other.GetComponent<Pad>().isRightPad;
            if (isRight == true && direction.x > 0)
            {
                direction.x = -direction.x;
            }

            if (isRight == false && direction.x < 0)
            {
                direction.x = -direction.x;
            }
        }
    }
}
    
Pad.cs
        using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Security.Cryptography;
using System.Threading;
using UnityEngine;

public class Pad : MonoBehaviour
{
    [SerializeField]
    float speed;

    float height;
    string inpt;
    public bool isRightPad;

    // Вызывается в начале игры, перед первым обновлением кадра
    void Start()
    {
        height = transform.localScale.y;
    }

    public void Init(bool isRight)
    {
        isRightPad = isRight;
        Vector2 pos = Vector2.zero;

        // Обрабатываем изменение позиции ракетки. Для левой и правой ракетки - отдельно.
        if (isRight)
        {
            pos = new Vector2(GameManager.topRight.x, 0);
            pos -= Vector2.right * transform.localScale.x;
            inpt = "PadRight";
        } else {
            pos = new Vector2(GameManager.bottomLeft.x, 0);
            pos += Vector2.right * transform.localScale.x;
            inpt = "PadLeft";
        }

        transform.position = pos;
        transform.name = inpt;
    }

    void Update()
    {
        // Блокируем выход ракетки за края экрана, обрабатываем изменение позиции на экране
        float move = UnityEngine.Input.GetAxis(inpt) * Time.deltaTime * speed;

        if(transform.position.y < GameManager.bottomLeft.y + height/2 && move < 0)
        {
            move = 0;
        }

        if (transform.position.y > GameManager.topRight.y - height / 2 && move > 0)
        {
            move = 0;
        }

        transform.Translate(move * Vector2.up);
    }
}
    

6. Добавляем к префабу Ball и Pad теги с аналогичными именами. Выделив префабы, в инспекторе мы можем видеть выпадающий список тегов. Там же расположены и кнопки для добавления и редактирования тегов.

7. В настройках камеры выставляем параметр Projection в значение Orthographic, а параметр Clear Flag в значение Solid Color.

Настройка камеры

Настройка камеры

8. Настраиваем кнопки, как показано на следующих скриншотах (Edit → Project Settings → Input Manager).

Настройка ввода, основное

Настройка ввода, основное
Настройка ввода, первый игрок
Настройка ввода, первый игрок
Настройка ввода, второй игрок
Настройка ввода, второй игрок

Вот и всё, игра готова!

Пинг-понг, итоговый результат

Пинг-понг, итоговый результат

Билд для платформы Windows

Исходный код

Дополнительные туториалы

1. Официальный туториал от Unity, где детально рассмотрен процесс создания roguelike RPG.

2. Youtube-канал Brackeys, где можно найти серию видеоуроков по созданию 2D-платформера.

3. Youtube-канал N3K EN содержит множество уроков как по отдельным компонентам Unity, так и полноценные серии уроков по созданию игр с нуля.

***

Хочу научиться программировать с нуля, но не знаю, с чего начать. Что делать?

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

  • Основы программирования на Python.
  • Профессия Python-разработчик.
  • Алгоритмы и структуры данных.
  • Математика для Data Science.
  • Профессия Data Science.
  • Frontend Basic: принцип работы современного веба.
  • Профессия Фронтенд-разработчик.
  • Обработка естественного языка. Полный курс.

На подходе еще больше 10 курсов для взрослых и детей.

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

Спойлер: научиться можно всему. Но придется приложить усилия.

Игры – это не легко. Перед тем как сделать свою игру, вы потратите много часов на обучение, неоднократно столкнетесь со сложностями, но и это не означает, что ваш проект «взлетит». Большинство «первых проб пера» оказывается неудачным и не доходит до релиза. Причина – создатели переоценили силы, возможности, время и навыки. Но шанс есть.

Разработка игр в фактах. Вот несколько фактов, которые говорят сами за себя.

  • Известную инди-игру Stardew Valley полностью сделал один человек, Эрик Барон. На разработку ушло 5 лет. Он не ходил на работу – на жизнь зарабатывала его девушка.
  • Для разработки крупных проектов вроде Mass Effect нужны сотни работников и миллионы долларов. Сотрудникам, бывает, приходится работать сверхурочно. Создание игры все равно занимает несколько лет.
  • Во время работы над Red Dead Redemption 2 сотрудники Rockstar порой работали по 100 часов в неделю.
  • В средней игре от нескольких сотен тысяч до нескольких миллионов строк кода. Например, в «Ведьмак 3» без дополнений – 1,136 млн.

Как менялась внешность главы игровой студии CD Projekt Red за годы разработки игр

Зачем тогда это все? Делать свои игры очень интересно. Разработчик или геймдизайнер может задать новые стандарты для геймдева – так было с Hollow Knight или Minecraft, получить благодарность от игроков и удовольствие от процесса.

Читайте также: Кто такой разработчик игр?

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

Можно делать карты для Far Cry 4, Counter Strike или других «боевых» игр, экспериментировать с головоломками вроде Portal 2 или с симуляторами, например Trainz Railroad Simulator 2004.

Чаще всего карты создают с помощью специального редактора в самой игре. В нем можно расставлять предметы, задавать им свойства и пр.

Примерный алгоритм действий:

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

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

  • GameMaker Studio. Простой и популярный вариант. Его используют не только новички, но и опытные инди-разработчики. На нем написано много инди-игр, включая широко известную Undertale;
  • RPG Maker. Японский движок, на котором создают двумерные пиксельные игры. Он сложнее GameMaker, но у него больше функций. Множество пиксельных инди-проектов, например, Ib, написано именно на нем;
  • Instead или RenPy. Движки подойдут, если вам интересна не механика, а история. Они позволяют создавать текстовые квесты и визуальные новеллы. Но для работы придется немного уметь программировать.

Если знания и опыт в IT есть, можно начать создавать свои 2D- и 3D-игры на Unity или Unreal Engine. Это два основных движка. Писать на них относительно просто, сложнее оптимизировать игры. Помните, что в инди часто играют на относительно слабых устройствах, например на ноутбуках или старых компьютерах.

Unity. Движок появился в 2005 году для устройств на iOS, но быстро распространился на другие платформы. Для создателей Unity – основной продукт, и это важно, потому что влияет на всю экосистему.

  • Основная идея – сделать процесс разработки для инди-девелоперов простым и понятным.
  • Экосистема включает дополнительные продукты, в том числе платные, с курсами, сертификатами и другими видами поддержки.
  • На Unity можно писать игры под разные платформы, в том числе мобильные.
  • Слабое место Unity – оптимизация игр, а также сложности с подключением внешних библиотек и менее «красивый» внешний вид сцены по умолчанию.
  • Разработка ведется на языке C#. Можно писать на визуальном языке Bolt.

Читайте также: Как создать игру на Unity

Unreal Engine. UE появился раньше, в 1998 году. Движок создала компания Epic Games. Ее основная деятельность – разработка игр с его помощью. Название произошло от первой игры, созданной на движке, – Unreal.

  • Основная идея Unreal Engine – эффективность разработки и «выжимание» максимума из возможностей компьютера.
  • Движок рассчитан на создание крупных 3D-проектов. Поддержка 2D-игр тоже есть, но не такая мощная, как в Unity. То же самое касается мобильной разработки. UE – это в первую очередь компьютеры и консоли.
  • Разработка ведется на C++. Он сложнее, но быстрее в освоении, чем C#. Также есть внутренний визуальный язык Blueprints, который легко освоить.
  • Слабые места – высокая требовательность движка к компетенции разработчика и к «железу». Unreal Engine нужно много аппаратных ресурсов.

Что выбрать. Unreal Engine и Unity бесплатные, но если игра «взлетит», нужно заплатить разработчику движка. В лицензии Unity указано, что когда доход от игры превысит 100 тыс долларов, нужно купить платную подписку. Unreal Engine требует роялти в размере 5% с игр, которые приносят больше 3 тыс долларов ежеквартально.

  • Unity можно выбрать, если вы хотите работать с 2D или мобильными проектами, а также важна модульность и гибкость движка. У него более широкое сообщество, больше туториалов, поэтому ниже порог входа.
  • Unreal Engine подойдет, если вы хотите сконцентрироваться на 3D-разработке для ПК, сразу «делать красиво» и эффективно. Но будет нужно более мощное «железо». Порог входа выше, хотя в последние годы разница стирается.

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

Начать тренироваться. Сначала сделайте что-то простое: не нужно сразу браться за сложный проект. Начните с азов и постепенно усложняйте задачу.

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

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

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

Читайте также: NFT-галерея, шутер в пустыне и космический платформер: кейсы студентов курса по разработке игр

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

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

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

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

Если вы мечтаете создавать игры – не бойтесь и начните: практика – лучший способ научиться.

Понравилась статья? Поделить с друзьями:
  • Как написать свободное изложение текста
  • Как написать самохарактеристику
  • Как написать самостоятельно программу
  • Как написать свист на листочке
  • Как написать саморазвивающийся ии