Это статья для новичков в геймдеве. Для тех, кто хочет сделать игру, но не знает с чего начать.
Я постараюсь, по шагам, объяснить весь процесс от желания до релиза. Погнали!
Кто я такой?
Я гейм-дизайнер с 10-летним стажем. Работал в многих компаниях, например в Playgendary. Делал разное: и казуалки для мобилок, и танковый шутер для PC.
Теперь я инди-разработчик. Живу за счёт продажи своих игр. Выпустили 4 игры для PC и Консолей. Сейчас разрабатываю игру They Are Here: Alien Abduction Horror — хоррор от 1-го лица, про похищение пришельцами.
Шаг 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
- Классный интерфейс.
- Куча встроенных функций.
- Бесплатный до ляма баксов дохода.
Перед началом работы над игрой, сделай пару очень простых подделок «в стол».
Сделай змейку, пинг-понг и т.п. Пофиг на качество, пофиг на геймдизайн. Главное — попрактиковаться «на кошках», пощупать функции движка.
В движке будет работать вся команда — поэтому каждый должен изучить его, хотя-бы поверхностно. Вы должны понимать друг друга, а еще помогать программисту собирать игру.
Короче — почитай про выбор движка. Потрать время на его изучие.
Шаг 8. Выбери жанр
Жанр — это твоя ниша. Жанр — это очень важно. Есть жанры, в которые никто не играет. А для некоторых нужно изучить много дополнительного материала.
Лучше выбрать жанр который:
- Популярен на платформе. Игры этого жанра часто покупают или скачивают. Используй сайты для аналитики жанров.
- Не слишком сложен в производстве. мморпг — не твой выбор.
- Нравится тебе или команде. Ты разбираешься в нём или много играл в детстве.
Как только ты определилися с жанром — гугли всё по производству игр в этом жанре. Геймдизайн, графика, уровни, звуки. На что сделать акцент?
Поиграй в лучшие игры в этом жанре. Посмотри видео об этом жанре.
Короче — выбери жанр и узнай про него всё что можешь!
Шаг 9. Придумай идею, концепцию, USP
Идея — ядро твоей игры. Зерно, из которого вырастет проект.
Какая идея хорошая?
- Понятная. Должна быть понятна каждому. Например, твоей маме.
- Интересная. Уже хочется поиграть в это! Люди любят риск и новый опыт, который хотят, но не могут пережить в реальной жизни. Например GTA — это симулятор крутого парня, которым все хотят быть, но не могут.
- Популярная. Это не артхаус, не что-то странное или специфичное. Идея обращается к понятным образам из жизни или массовой культуры.
- Выделяющаяся. Такого раньше не было. Или было, но давно. Или в другом жанре. Или в другом стиле. Или плохо сделано.
Что поможет тебе в выборе идеи?
- Каталог игр на твоей платформе. Смотри что популярно. Думай как это изменить, подать под другим углом. Хмм…игра про постройку железной дороги в топе. А что если, мы играем за машиниста?
- Сайты-сервисы с аналитикой тэгов и жанров на платформе. Можно отследить популярность жанра, количество игр в нем. Можно скрестить отдельные тэги между собой.
- Массовая культура. Фильмы, книги, комиксы, короткометражки, гифки, картинки из интернета.
Скорее всего у тебя будет рождаться много идей. Записывай их. Дай полежать. А потом выбери ту, что не даёт тебе покоя и кажется лучшей.
Про питч
Идея может казаться масштабной. Но она должна умещаться в Питч, чтобы быть понятной игрокам, прессе и твоей маме.
На основе Питча, описываем концепт игры. Более развернутое описание игры на одну страничку. За кого мы играем? В чем цель? Что можно делать? Какие эмоции вызываем?
Про 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
Привет, меня зовут Павел, и я разработчик игр. На идею рассказать о разработке игр людьми, которые ничего не умеют, но горят желанием, меня натолкнул мой брат.
— Я придумал игру, создай мне её.
— А почему ты сам её не создашь?
— Я не умею.
И я задумался, а так ли сложно что-то создать с нынешним количеством уроков и тем по созданию игр в интернете?
С чего начать?
Для начала нам нужна идея, что за игру мы будем создавать, благо у меня была идея брата. Рассмотрим её поближе.
- Это РПГ в средневековом стиле (банально, не правда ли? =) )
- Она должна быть 3D, а не 2D (тут, кстати, довольно интересно, потому как в основном весь интернет пестрит роликами с 2D играми)
- Вид камеры от третьго лица
- Характеристики изменяются сами с повышением уровня, с упором на используемое оружие.
- Лимит уровней — 30
- Предметы привязаны к уровню персонажа (персонаж четвертого уровня не сможет использовать предмет пятого уровня)
- Движок, на котором всё будет работать (в моём случае это Unity: по работе с ним самое большое количество уроков на мой взгляд)
Думаю, что данный план вполне подойдёт для создания шедевра ААА класса =).
Начнём создавать шедевр
В первую очередь регистрируемся на сайте Unity, скачиваем и устанавливаем движок последней версии. Далее перевоплощаемся в человека, который совершенно ничего не знает о движке и о создании игр.
Идём в интернет и спрашиваем «как нам начать использовать Unity?».
Запускаем Unity Hub.
Выбираем NEW и далее 3D проект, пишем название и местоположение проекта.
И открывается сама программа.
И тут, наверное, знатоки начнут кидаться картошкой со словами «Зачем столько воды? Все и так это знают» НО! Материал предназначен в первую очередь для тех, кто ничего не умеет, а не для гуру геймдева =).
Дальше снова идём в интернет либо проходим туториал в самой программе, чтобы научиться основам работы с движком. Для того, чтобы воспользоваться туториалом в программе, нужно в окне Unity Hub нажать на строчку Learn и выбрать любой из проектов. Я советую пройти все уроки и посмотреть несколько роликов по созданию игр.
Как создать модели для игры?
- Научиться моделированию (сложно, долго, но интересно)
- Купить готовый пак моделей (быстро и просто, но за деньги)
Я выбрал второй вариант. Отправляемся в AssetStore. Если у вас не активировалась ваша учетная запись, повторно входим в личный кабинет. И начинаем искать подходящие паки. Я нашел то, что нужно, примерно за 3 минуты по поиску knight. В паке, помимо моделей самих персонажей, были модели окружения. Купил за 10 долларов, нажал Import, поставил все галочки, и пропала проблема, неумения моделировать. 1/4 игры готово.
![]() |
![]() |
![]() |
![]() |
![]() |
Сцена
Дальше начинается самое нудное. Нужно собрать рабочую зону (scene, сцену, кому как привычнее называть).
Я привык сначала прописывать персонажей, анимацию, и прочую ненужную (очень нужную) ерунду в начале работы, а уже после того как основные механики готовы, я собираю уровень (локацию, игровую зону). Для начала давайте в сцену поставим кусок земли, на которой будет стоять наш персонаж, и начнём работать с анимацией.
Поскольку мы с вами в этом деле новички, снова лезем в интернет и смотрим, как нам поставить поверхность в игровую зону. Выбираем GameObject -> 3D Object -> Cube, после масштабируем его до простой площадки.
Далее добавляем персонажа (рыцаря, демона, ниндзю, тяночку, или кто вам больше по душе). Персонажа берем из папки Prefabs: мы уже знаем (вспоминаем, чему нас научили во вкладке Learn), что туда сохраняют полностью готовые объекты, персонажей и так далее.
И вот он, наш герой, который будет покорять всех и вся.
Анимация
Помните в рейде «Цитадель Ночи» в World of Warcraft был босс Алуриэль? Когда она произносила заклинания, то кричала «Аннигиляция, репликация, детонация, АНИМАЦИЯ!!!». Нам необходимо с криком «Анимация!» наброситься на интернет и понять, как её сделать.
Изучаю кучу материала по созданию анимации, и…, либо я дурак, либо лыжи забыл. Реально перелопатил полтора часа материала, но так ничего более-менее подходящего не нашел. Поэтому я решил объединить несколько уроков в один и собрать простой способ анимации.
- Идём на сайт www.mixamo.com
- Регистрируемся
- Получаем огромное количество анимации на все случаи жизни
Что нужно в первую очередь? По мне — так научиться ходить и бегать. Возьмём анимацию ходьбы и бега.
- В поисковике анимации набираем 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 ресурсов, которые их предоставляют. Советую помимо интернета начать изучение какого-либо направления гейм дева.
Все описанное в этой статье было собрано без специальных знаний с помощью интернета.
Инструкция начинающего разработчика игр
Время на прочтение
12 мин
Количество просмотров 220K
В данной инструкции я попытался осветить основные моменты разработки игр. Инструкция будет полезна для людей, собирающихся заняться разработкой игр в роли лидера (главного разработчика и организатора).
Хочу отметить, что игры бывают разные – большие и маленькие, сложные и лёгкие, и поэтому для каждой игры эта инструкция верна в какой-то своей определённой степени. Охватить всё не удалось, но передать общие моменты, думаю, получилось.
И так Вы решили сделать свою игру, о чём Вам нужно подумать…
Думаем – нужно ли это тебе
Перед тем, как за что-то взяться, необходимо всё обдумать. А перед тем, как заняться разработкой игр, необходимо обдумать всё очень хорошо. Очень часто начинающие разработчики, достигнув определённых успехов в чём-то (сделал мод для игры, небольшой фан-сайт и пр.), начинают грезить созданием своей игры. Это происходит из-за того, что они имеют слабое представление о процессе разработки игр.
Я перечислю основные ошибки в их представлении:
- Нет романтики. Многие начинающие разработчики, наигравшись вдоволь в игры, приходят к мысли, что создавать игры также интересно, как и играть, только чуть-чуть сложнее. Это очень частая ошибка. Чем больше и сложнее игра тем, скучнее и безынтереснее процесс её разработки. Романтики совершенно нет.
- Трудно и даже невозможно. Многие после нескольких (или даже одного) успешного проекта наполняются уверенностью, что написать игровой проект им по силам. На самом деле, игры – это одно из самых сложных направлений разработки. И чем «серьёзнее» игра, тем проект сложнее. В процессе создания игры разработчик может столкнуться с нерешаемыми проблемами, которые убивают на корню энтузиазм даже у самых упёртых.
- Отвращение к играм. Со временем у каждого матёрого разработчика игр развивается отвращение к играм. Сначала просто они становится менее интересными. Затем начинаешь замечать, что они вовсе не интересны, а интересно только, как они работают. Чем дальше, тем хуже.
- Конкуренция и качество продукта. Играми занимаются многие студии и независимые разработчики. Существует своеобразный «уровень вхождения» в этот бизнес. Сейчас нельзя сделать успешную игру, нарисованную акварелью (да, такие игры встречались в начале 2000-х). Она просто не выдержит конкуренции. Соответственно, абы что не сделаешь. Тут скрывается важный психологический момент – начинающий разработчик вынужден делать хороший продукт, иначе он будет испытывать постоянное чувство страха неуспешности своего продукта.
- Время и ресурсы. И самая распространенная ошибка – это то, что ресурсов (время, деньги, знания) им хватит. Чтобы понять объём работ, читайте следующие пункты.
Концепция и ТЗ
Когда-то давно я написал довольно неплохую статью о концепции проекта. За последние пару лет мои взгляды слегка поменялись, но суть осталась та же.
- Что же такое концепция? Концепция игрового проекта — это документ, описывающий цели, задачи, основные особенности проекта, исследование рынка и целевой аудитории, условия его выполнения. Также, так как проект игровой, обязательно описание игровой механики, игровых понятий, примерный сценарий и концепт-арт. Если Вы ещё рассчитываете делать проект не в одиночку (что весьма вероятно), то понадобится ещё техническое задание (ТЗ) – документ, содержащий описание необходимых работ, сроки и условия.
- Зачем нужна концепция? Очень хороший вопрос. Зачем заниматься какой-то «писаниной», когда нужно собирать команду и писать код?
В первую очередь концепция нужна, чтобы самому получить полноценное представление о конечном результате и оценить объём работ. Без чёткой и продуманной концепции у Вас в итоге получится, соответственно, противоречивая и непродуманная игра. Без концепции существует большая вероятность возникновения ошибок организации игровой механики или ошибок реализации.
Во вторую очередь концепция нужна для того, что бы другие поняли то, что Вы хотите сделать. Все члены команды должны работать над одним общим проектом. Об этом общем проекте члены команды узнают из документа концепции проекта. Это нужно, чтобы не было расхождений в представлениях о конечном результате. Если Вы решили создать игру и для этого собираете команду, то первые вопросы от будущих членов команды будут: «А что предстоит мне сделать? Что в итоге мы должны получить?». Вы должны будете им предоставить концепцию проекта и ТЗ. Без концепции и ТЗ Вы не привлечёте ни одного нормального специалиста. - Объёмы. Весьма интересен вопрос объёма концепции. Тут необходимо отталкиваться от сложности игры и её разработки. Если у Вас простая игра, Вы работаете один и Вы способны удержать идею игры в своей голове, то можно вообще не писать концепцию. Если удержать в памяти все моменты нельзя, то необходимо перенести их на бумагу (или другой носитель). Если Вы будете работать в команде или использовать помощь других людей (инвесторы, художники и прочие), то Вам просто необходима развёрнутая концепция и ТЗ для каждого человека. Критерий один – понятность. Нужно чтобы любой человек, ознакомившись с концепцией и ТЗ, представил конечный результат, так же как и Вы.
Обратите внимание на то, что, если Вы понимаете свою концепцию, то это не значит, что её поймут другие. Написание концепции выполняет роль «лакмусовой бумажки». Если Вы не можете написать понятную концепцию (примерно, 5 страниц для небольшой игры, несколько десятков страниц для большой), то вряд ли Вы закончите в итоге проект. - Детальность. В концепции должны быть ответы на все вопросы. После прочтения концепции должно сформироваться полное представление о проекте. Специалисты первым делом смотрят на концепцию, если концепция окажется для них не полной и непонятной, то они не будут с Вами работать.
Отдельно стоит упомянуть концепт-арт. Он должен быть, хотя бы в простейшем виде. Он является доказательством решения проблемы с контентом, содержимым игры (смотрите следующий раздел). - Русский язык. Для многих это серьёзная проблема. Если документ концепции содержит множество грамматических, орфографических и синтаксических ошибок, то ни один специалист не воспримет его всерьёз. Помните: незнание русского языка очень вредит бизнесу.
- Время. Желательно в сразу в ТЗ указать сроки выполнения работ. Проблема в том, как оценить это время, если никогда подобным не занимался. Точно ответа на этот вопрос Вы никогда не получите, всё придёт с опытом. Я только дам один совет: учитывайте не только время разработки, но и время на исправление ошибок (примерно 50% от времени на разработку).
Контент
Я специально выделил этот раздел, так как он является решающим в процессе разработки игр. Под контентом понимается всё содержимое игры, с которым взаимодействует пользователь. Это графика (растровая, векторная, 3D), музыкальное и звуковое сопровождение, видеоряд, сценарий и текст. Также сюда следует добавить медиаматериалы, используемые для продвижения игры (реклама, банеры и прочие).
В английском языке есть такое понятие как «artist» обозначающие сразу художников, музыкантов, режиссёров, писателей и прочих творцов. К сожалению, в русском языке нет нормального аналога этого слова, поэтому я дальше буду использовать понятие «создатель контента».
Разберём основные моменты этого раздела.
- Сложность. Это самая главная проблема в вопросе контента. Оказывается, в большинстве случаев подготовка контента является самой сложной задачей, сложнее написания программного кода, сложнее тестирования и отладки, и сложнее реализации игры. Естественно, если игра маленькая, то это не так заметно, а если большая, то на долю создателя контента выпадает до 80% работы по проекту.
- Объёмы. Часто из-за того, что разработчики никогда не выполняли задачи создателей контента, им очень сложно оценить объёмы. Кажется, что там такого ¬– пара десятков картинок и 3-4 звука. Но если посчитать, то получается 40 крупноразмерных изображений, 400 мелких изображений, два десятка звуков (я привел пример среднестатистической BMMORPG). Хорошо, что это всё можно подсчитать при подготовке концепции.
- Качество. Во-первых, надо понимать, что игроки работают непосредственно с контентом. Во-вторых, надо помнить, что существует огромное количество игр-конкурентов с хорошим контентом. Можно сделать вывод: игра с плохим контентом будет не конкурентоспособна, т.е. контент в игре должен быть высокого качества.
- Время. Вполне логично, что на подготовку больших объёмов качественного контента уходит очень много времени. Времени уходит больше, чем на все остальные направления вместе взятые (маленькие игры не в счёт). Учитывайте это, когда будете планировать и рассчитывать сроки.
- Стоимость контента. Хороший контент стоит «хороших» денег. Очень «хороших» денег, которых у начинающих разработчиков игр обычно нет. Многие разработчики питают иллюзорную надежду найти «бесплатного» создателя контента (или дешёвого). Найти можно, но он либо будет создавать низкопробный контент, либо создаст для Вас немного контента, а затем переметнётся к тем, кто будет ему платить. Короче говоря, «бесплатного» создателя хорошего контента Вы никогда не найдёте. Именно по этой причине нет хороших «OpenSource» игр.
- Воровство. Из-за существования проблемы дорогого контента, иногда появляются разработчики игр, которые его воруют. Мол, что такого?.. возьму-ка я из этой игры десяток картинок, а фоновые изображения найду на DA, а в качестве фоновой музыки поставлю пару любимых песенок Rammstein. Проблема в том, что авторское право контента достаточно легко подтвердить. У «жертвы» воровства есть либо исходные файлы контента, либо документ о передаче контента от его создателя. Для воров контента очень велик шанс нарваться на статью 146 УК РФ.
- Единый стиль. Ещё один важный момент, о котором часто забывают. Что бы игра смотрелась цельной и продуманной, ей нужно иметь единый стиль. Создатели контента не роботы, поэтому делают работы в своём индивидуальном стиле. Отсюда можно сделать вывод: желательно чтобы содержимое игры создавало как можно меньше человек.
- Дилемма. После прочтения описанных выше моментов можно построить следующую цепочку: Конкурентоспособная игра требует использование качественного контента. Качественный контент может сделать только профессиональный создатель контента. Профессиональный создатель контента стоит недёшево. Решений данной проблемы всего лишь три:
- Не делать игру, то есть отказаться от направления разработки игр.
- Найти инвестора. Но тут сразу нас поджидает проблема концепт-арта. Кто будет подготавливать концепт-арт, если нет денег на художника? А без концепт-арта никто не будет инвестировать в Вас.
- Решать проблему собственными силами. То есть кто-то из членов команды должен быть создателем контента и должен получать зарплату, даже если все остальные сосут палец.
Программирование
Как ни странно, создание программного кода для игр не является самой сложной задачей, но в тоже время и не является простой.
- Команда. В отличие от создателей контента программистов для своей команды найти легко. Это объясняется тем, что при определённом уровне подготовки написание программного кода игры не такая уж сложная задача. Можно найти «бесплатных» программистов, готовых работать ради интереса. А за плату и «имя» (упоминание, как разработчика игры) можно найти программиста, который будет писать хороший годный код. Но… сейчас не начало 2000-х и программисты поумнели. Первым делом адекватный программист попросит разработчика продемонстрировать концепцию и ТЗ. Затем спросит про создание контента или финансирование, которое пойдёт на его создание. Специалисты прекрасно понимают, что незачем вкладывать силы в изначально провальный проект. Если у Вас нет концепции и не решен вопрос с контентом, то нормального программиста Вы не найдёте.
- Сначала делаем большое, потом маленькое. Достаточно простой совет, но ему чаще всего не следуют. Игровой проект в большинстве случаев сложен и имеет множество зависимостей. Все это сложно просчитать на уровне составления концепции, частенько приходиться что-то менять в планах. Поэтому, чтобы не выполнять двойную работу, сначала необходимо сделать общую работающую конструкцию (прототип), а затем углубляться в детали.
- Что сначала контент или код? Прочитав раздел про контент, Вы уже, наверное, поняли, что современные игры основаны на контенте, а не на программировании. Отсюда дилемма – код подгонять под контент или контент подгонять под код. Оба подхода имеют место в современном процессе разработки. Если подгонять код под контент, то нагрузка падает на программиста, время разработки увеличивается. Это дешёвый способ. Если контент подгонять под код, то нагрузка с программиста спадает, и при учёте, что контент подготавливают наёмные работники, время разработки сокращается. Это дорогой способ, так как нагрузка падает на наёмных создателей контента. Заранее оцените ситуацию и придерживайтесь одного из подходов.
- Нерешаемые ошибки. Это даже не проблема, а предубеждение. Разработка игры весьма сложный процесс. Бывает, что разработчик сталкивается с нерешаемыми проблемами (либо решаемыми крайне тяжело) и ему приходиться пересматривать чуть ли не весь проект. Психологически это очень трудно. Многие, даже самые упёртые разработчики, попав в такой «тупик», теряют энтузиазм и закрывают проект. Предубеждение в том, что все считают, что с ними такого не случиться. Совет один: будьте психологически готовы пересмотреть весь проект и выполнить работу заново.
- Журналы. Совет лично от меня. Ведите три журнала:
- Журнал выполненной работы по проекту для отслеживания динамики разработки;
- Журнал идей по проекту, чтобы не забыть их и, если возможно, включить в концепцию;
- Журнал найденных багов и ошибок, которые необходимо исправить в будущем.
Эти три журнала помогут избежать ошибок и двойной работы в процессе разработки.
- Время. При определении времени, которое планируется на написание кода, часто делают одну ошибку – не учитывают затраты времени на исправление багов и отладку кода.
- Авторство программного кода. Определённый «маразм» наблюдается, у некоторых программистов. Они считают, что обладают абсолютными правами на код, который ими написан, что даже после релиза игры они могут предъявить права на «часть кода» игры. Что бы защитить это «священное» право они могут пойти на всякие низости (программные бомбы, бакдоры, отказ от передачи исходных кодов и прочие). Мой совет прост – остерегайтесь таких неадекватных программистов. Программный код не контент. Доказать его авторство очень сложно. Поэтому нормальный программист сначала договаривается, что он получит за код; затем его пишет; потом передаёт разработчику и получает вознаграждение; после чего уже ни на что не претендует. Также должно быть организовано и в команде.
Тестирование
О тестировании начинающие разработчики обычно не задумываются, а зря, так как на него тратиться немногим меньше времени, чем на написание программной части. В этом разделе есть два важных момента:
- Тестирование сторонними людьми. В процессе разработки тестирование проводиться в основном своими средствами. Со временем глаза привыкают к имеющимся игровым моментам, вырабатываются умение работать в данной системе, короче, ошибки становятся менее заметными. Поэтому устраивайте периодические тесты продукта сторонними людьми, которые никогда не видели ваш продукт. Следите за их реакцией на различные игровые моменты, как они воспринимают меню игры и, вообще, расспросите их общее впечатление. Поверьте мне, один такой тест даст Вам очень большой объём полезной информации. Проводите их чаще, прислушивайтесь к обратной связи, и Вы получите на выходе хорошую игру.
- Женщины. Когда-то я написал неплохую статью про женщин и игры. Смысл в том, что женщины видят всё по другому. Поэтому, желательно, чтобы в тесте игры участвовала хотя бы одна женщина (девушка), даже если игра не рассчитана на женскую аудиторию. Их обратная связь будет невероятно полезна.
Организационные моменты
- Команда. Как Вы могли догадаться, созданием таких проектов, как игры, лучше заниматься командой. Это обосновано тем, что создание контента совершенно другой вид деятельности отличный от программирования и организации проекта и одному заниматься такими разными видами деятельности сложно. Минимальная команда – это два человека, создатель контента и разработчик. Чтобы не было непонимания, уточню – наёмный работник, по-моему, тоже в какой-то мере член команды.
Конечно, можно заниматься разработкой и в одиночку. Есть такие «сумасшедшие», которые и пишут код, и рисуют графику, и сочиняют музыку, но это их проблемы.
Собрать команду при наличии финансирования легко – форумы программистов и создателей контента, биржи фрилансеров Вам в помощь. При отсутствии финансирования можно найти только программиста, а вот нормального создателя контента не найдёте – здесь надо надеяться либо на себя, либо на удачу. - Юридическое оформление. Здесь всё просто. Хотите иметь с игры деньги и обезопасить себя от рейдерского захвата (когда кто-то внаглую ворует вашу игру), то вам нужно юридическое оформление на уровне индивидуального предпринимателя. Если Вы ещё собираетесь распределять проект по долям, то нужно оформление на уровне ООО. Поэтому если при поиске членов команды Вы обещаете долю в проекте, то не удивляйтесь, что Вас будут просить предъявить реквизиты вашей организации.
- Контакты. Никогда не пренебрегайте знакомствами. Знакомьтесь с другими разработчиками, общайтесь и обменивайтесь контактами. В будущем, возможно, знакомство с ними принесёт Вам пользу.
- Реклама. Так как игр на рынке много, то чтобы пользователи выбрали именно вашу игру, нужно привлечь к себе внимание. Делается это при помощи рекламы на различных ресурсах. Логично, что реклама эта требует: во-первых денег, а во-вторых, рекламный контент (банеры, видеоролики, статьи). Возможны и другие способы ¬– связи, спам, рекламные акции и прочие, но они не всегда эффективны.
Без рекламы игра, точно также как и без контента, является провальным проектом. Обратите на это внимание. Но тут ситуация может достаточно легко исправлена инвестированием и сторонней помощью. - Инвестирование. Понятное дело, что с деньгами игру делать гораздо легче, но без развёрнутой концепции (с концепт-артом), команды и рабочего прототипа никто не будет финансировать ваш проект. То есть на начальных этапах на финансирование не надейтесь. А вот на последних этапах разработки ситуация может в корне поменяться – могут появиться инвесторы и Вам всё равно будут нужны деньги для организации рекламной компании.
Чтобы найти инвесторов, собирайте контакты. - Сторонняя помощь. Вместо инвесторов можно найти стороннюю помощь (реклама за рекламу, помощь в распространении за процент и прочие). Тут надо ориентироваться по ситуации. Чтобы найти стороннюю помощь, так же собирайте контакты.
Послесловие
Инструкция получилась большой, материала много. Крайне советую прочесть её начинающим разработчикам игр, так как, возможно, она поможет им избежать ошибок в будущем.
UPD: Статья получилась успешной, даже очень. Но в комментариях прослеживаются замечания по поводу отсуствия романтики и отвращения к играм. Поэтому я прокомментирую эти моменты.
Многие опускают тот факт, что статья для
начинающих
разработчиков игр, претендующих на роль
лидера
(первый абзац статьи). Не буду отрицать, что со временем, когда приобретаешь опыт разработки игр и жизнь складывается удачно, возвращается романтика и отвращение спадает. Но в самом начале, когда начинаешь с нуля, после того как столкнёшься с первыми серьёзными проблемами, эта романтика и любовь к играм исчезает ко всем чертям. Разработка игр — это не прогулка по ковровой дорожке в розывых очках, а блуждание в лабиринте Минотавра, где много тупиков.
Я не собираюсь своей статьёй вселять в начинающих разработчиков уверенность. Они должны знать, что путь разработчика игр сложен, что они могут встретить нерешаемые проблемы, что их нерализованный проект будет для них символом поражения.
Создание видеоигр — это невероятный способ самовыражения и воплощения своих идей в жизнь. Вам не нужны предварительные знания или опыт в разработке игр. Unity — популярный игровой движок, с которым могут работать даже новички. В статье мы рассмотрим, как создать игру на Unity.
1. Первым шагом будет создание рабочего пространства. Чтобы создать новое рабочее пространство проекта в Unity, откройте экран приветствия, затем нажмите кнопку «Новый» в левой нижней части окна. Дайте проекту имя, выберите место на компьютере, где вы хотите его сохранить, и выберите шаблон (мы рекомендуем «3D»).
2. Теперь пришло время создать свой игровой мир. В Unity есть множество инструментов. Чтобы добавить объекты, откройте панель Hierarchy в верхней левой части окна, затем выберите GameObject>, 3D Object в выпадающем меню. Вы можете выбрать одну из различных форм. Экспериментируйте с различными настройками в панели Inspector в правой части экрана, пока не добьетесь желаемого результата.
3. После того как вы создали свой игровой мир, пришло время добавить в него интерактивности. Здесь на помощь приходят сценарии Unity. Например, если вы хотите заставить персонажа двигаться вперед при нажатии клавиши со стрелкой влево на клавиатуре, вы можете добавить компонент Character Controller к GameObject вашего персонажа на панели Inspector, а затем использовать метод Move внутри него, чтобы заставить его двигаться.
4. Для создания более сложных взаимодействий между объектами в вашем мире попробуйте использовать систему Events. Это мощная система для запуска событий в Unity, которая позволяет отправлять сообщения между различными скриптами или даже запускать анимацию и другие спецэффекты. Чтобы начать работу с этой системой, просто выберите объект в сцене и откройте окно Events на панели Inspector. Эта система особенно полезна при создании игр с большим количеством взаимодействий между объектами и персонажами.
5. Наконец, если вы хотите добавить в свою игру искусственный интеллект (ИИ), Unity предлагает набор инструментов ИИ, таких как ML-Agents. ML-агенты позволяют быстро реализовать сложное поведение NPC в вашей игре, обучая их таким задачам, как навигация или распознавание объектов. Для обучения агентов необходимо создать среду, моделирующую поведение, которому вы хотите научить агента, а затем запустить симуляцию, позволяющую ему обучаться. Как только агенты прошли обучение, их можно протестировать в вашей игре.
Чтобы создать игру на движке Unity, важно также разработать план создания игры еще до начала работы. Вот несколько советов:
1) Изучите информацию. Еще до начала разработки прочитайте учебники, посмотрите видеоруководства или поговорите с другими разработчиками, создавшими игры с помощью Unity. Ознакомьтесь с системой и узнайте о возможностях.
2) Планирование. Наметьте желаемые функции вашей игры, начиная с простых идей и постепенно включая более сложные элементы по мере развития вашего мастерства. Это позволит создать план для разработки вашей игры.
3) Создание. После того как вы разработали план, пора приступать к созданию. Настройте среду в Unity и начните создавать свою игру. Разбейте проект на небольшие части, чтобы каждую часть можно было завершить и протестировать, прежде чем переходить к следующей.
4) Тестирование и доработка. По мере создания и тестирования игры записывайте, что работает (и не работает). Обязательно регулярно сверяйтесь с первоначальным планом. При возникновении проблем или необходимости внесения изменений не бойтесь пересматривать свой план.
5) Завершающие штрихи. После того как вы протестировали и настроили свою игру, пришло время добавить последние штрихи. Добавьте музыку, звуковые эффекты и любые другие элементы, чтобы придать игре уникальность.
6) Публикация. Когда все готово, опубликуйте игру на выбранной вами платформе. Добавьте дополнительные привлекающие материалы, такие как скриншоты или прохождение, чтобы привлечь больше игроков. Если повезет, люди начнут играть и наслаждаться вашим творением.
7) Обратная связь. Наконец, важно получить обратную связь от ваших игроков. Спросите их, что им нравится или не нравится в игре. Выслушайте их предложения и используйте эту информацию для внесения необходимых улучшений. Это не только сделает игру лучше для ваших игроков, но и сделает вас лучшим разработчиком в долгосрочной перспективе. Не забудьте поблагодарить тех, кто нашел время оставить ценный отзыв.
Создание игр с помощью Unity может оказаться непростым процессом для новичков. Однако следование этому руководству поможет сделать процесс более легким и даст представление о том, как эффективно использовать мощный движок Unity. Тщательно планируя каждый шаг от разработки до публикации, каждый может создать интересную и увлекательную игру с помощью Unity.
С помощью Unity ты можешь создать собственную игру на своем смартфоне, разработать трехмерную игру и приложение дополненной реальности. Все это предоставляет школа программирования CODDY.
Знакомься с курсами от школы программирования CODDY, чтобы начать создавать свои миры.
Игровой движок 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
Можно выделить несколько наиболее значимых достоинств, ставших причиной популярности платформы для разработки игр. В их числе:
- Обширный спектр предоставляемых создателям игр возможностей, заметно превышающий функционал большинства конкурентов, включая возможность создания 2D и 3D-продуктов.
- Значительная его часть доступна в бесплатном режиме, что особенно актуально для новичков в разработке игровых продуктов.
- Минимальные требования к уровню подготовки пользователя в части программирования, что становится существенным дополнением к предыдущему пункту списка.
- Удачное сочетание межплатформенной поддержки с визуальной средой программирования.
- Встроенный в платформу игровой движок, позволяющий не использовать или использовать сторонние инструменты и ресурсы по минимуму.
- Модульный принцип действия всех компонентов, входящих в систему Unity, что позволяет сочетать их самыми различными способами – в любой последовательности и разных комбинациях.
Отдельного упоминания заслуживает мощное и очень многочисленное сообщество пользователей программного продукта. В результате конструктивного и доброжелательного общения на тематических форумах новичок в разработке игр быстро и без проблем может получить помощь и ответы на вопросы от более опытных старожилов.
Основные компоненты игры
Прежде чем перейти к описанию процедуры разработки игры на Unity, необходимо отметить еще два очень важных базовых момента. Первый касается наиболее значимых составляющих любого игрового продукта. Нужно понимать, что итоговый успех определяется программным кодом, в лучшем случае, на 15-20%. Заметно больший вклад вносится другими компонентами игры, главными из которых выступают такие:
- Геймплей. Термин обозначает взаимодействие игрока с миром игры, непосредственно определяющее его цели и совершаемые для их достижения действия. Серьезное влияние на геймплей оказывает жанр продукта, так как каждый из них предусматривает стандартный набор требований, правил и механизмов их реализации.
- Игровая механика. Более конкретное понятие, обозначающее определенные взаимодействия игрока и игрового мира. Другими словами, геймплей формируется из набора игровых механик, количество которых определяется сложностью продукта и может достигать нескольких десятков или даже сотен.
- Сюжет. Представляет собой последовательность происходящих в игре событий. Увлекательность сюжета выступает одним из главных условий для успеха игры. Продуманная и интересно рассказанная история часто оказывается важнее стильной 3D-графики и мощного звука.
- Персонажи. Используются для реализации придуманных создателем игры сюжетных линий. Для персонажей одинаково важны и проработка дизайна, и характер. Один из эффективных способов увлечь игрока – придать персонажу узнаваемые черты, которые станут причиной для сопереживания или других сильных эмоций.
- Дизайн локаций или уровней. Визуальная составляющая игры. Включает цветовые решения, стилистику оформления, внешний вид персонажей и различных объектов, уровень детализации предметов и многое другое, заметное глазу игрока.
- Баланс. Показывает соотношение «сил» между персонажами и объектами игры. Определяет сложность прохождения. Причем важно понимать, что наибольший интерес у игроков обычно вызывает нечто среднее – не слишком сложное, но и не чересчур простое. Поиск оптимального баланса – одна из ключевых задач, стоящих перед разработчиком игры.
Особенности разработки игр на Unity
Вторым немаловажным нюансом являются необходимость понимания нескольких базовых терминов, характерных исключительно для Unity. Это поможет для лучшего восприятия описанной ниже процедуры разработки игры. В их числе:
- Asset (ассет). Так называются готовые компоненты, доступные для использования при создании собственных проектов. Обычно речь идет о текстурах, шрифтах, звуках или элементах интерфейса, собранных в библиотеки. Купить или скачать бесплатно различные ассеты можно в официальном интернет-магазине Unity Asset Store.
- GameObject (игровой объект). Термин используется для обозначения ассетов, которые задействованы в игровой сцене. В качестве примера можно привести деньги: внешний вид монеты представляет собой ассет, а 10 монет в руках персонажа – это 10 GameObject.
- Components (компоненты). Выступают частью игрового объекта, формирующей его поведение. Компоненты непосредственно влияют на перемещения GameObject, их реакцию на внешние воздействия и другие триггеры, предусмотренные сюжетом игры.
- 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 не менее очевидна. Она состоит в том, что не стоит каждый раз изобретать велосипед по новой. Проще, быстрее и правильнее использовать наработки других разработчиков, наверняка уже решавших стоящую перед новичком задачу ранее.
Что почитать по теме
- Разработка вашей первой игры с помощью Unity и C# от Microsoft.
- Как начать разрабатывать игру от Unity.
- Руководство: Создание геймплея от Unity.
- Учебный курс «Разработчик игр на Unity» от Нетологии.
- Учебный курс «Разработчик игр на Unity» от SkillFactory.
- Учебный курс «Разработчик игр на Unity с нуля до Middle» от Skillbox.
- Видеоролик на YouTube «I made a game in 1 week with Unity».
- Видеоролик на YouTube «Моя ПЕРВАЯ 3D игра на Unity».
FAQ
Что такое Unity?
Unity представляет собой кроссплатформенную среду для разработки игр, предназначенных для ПК, консолей, мобильных устройств и т.д. Одновременно она является игровым движком, на базе которого создаются игры. В результате такой комбинации Unity предоставляет game-разработчику все, что требуется для его работы.
Почему игровой движок настолько популярен?
Первая причина указана в предыдущем вопросе. Остальные выглядят следующим образом:
- обширный функционал, значительная часть которого бесплатна;
- универсальность, предусматривающая поддержку двух с половиной десятков игровых платформ;
- удобный и предельно простой интерфейс, позволяющий создавать игры даже новичкам.
Что требуется для разработки первой игры на Unity?
Минимальный набор знаний в области программирования с использованием языка C#. Желательно – наличие одного из различных руководств пользователя, найти которые несложно.
Какова последовательность действий для решения задачи?
Сначала требуется скачать и установить Unity, затем зарегистрироваться на сайте компании-разработчика. Дальше нужно изучить интерфейс программы, после чего создать игровые объекты, привязать к ним атрибуты и триггеры, после чего протестировать игру.
Подведем итоги
- Unity – самая популярная среда для разработки разнообразных игр.
- Она поддерживает все известные игровые платформы.
- Важными достоинствами Unity выступают нетребовательность к уровню подготовки game-разработчика и бесплатный доступ к большей части функционала.
- В результате использование Unity позволяет бесплатно создать первую игру даже начинающему разработчику.