Привет! Меня зовут Никита, мне 12 лет. Хочу поделиться впечатлениями от базового детского курса разработки игр на Unity3D и заодно рассказать, какой проект у меня получился к концу обучения.
Почему я пошёл учиться
Попробовать себя в геймдеве я решил год назад, когда увлёкся изучением истории и играми в соответствующем сеттинге. Раньше я думал, что история, которую мы учим в школе, — это просто разрозненные описания событий и нагромождение дат, которые нужно заучить, чтоб от тебя отстали. Но я изменил своё мнение, когда начал смотреть развлекательно-познавательные ролики по истории в интернете. Может, некоторые из них были поверхностными и несерьёзными, но они привлекли моё внимание и помогли расширить кругозор.
Я начал искать другие каналы схожей тематики и выстраивать более целостную картину Второй мировой войны, наполеоновских войн и многих других событий. То, что история может быть интересной, стало откровением для третьеклассника!
Параллельно я проникся несколькими стратегиями. Особенно много времени провёл за Hearts of Iron 4, трейлер которой тоже увидел на YouTube. В этой игре можно на период с 1936 по 1948 год взять под контроль практически любую из существовавших тогда стран и полностью поменять историю человечества.
Мне хотелось погрузиться в события вокруг Второй мировой и посмотреть на них глазами мировых лидеров и полководцев. Ещё мне понравилась Crusader Kings II, где можно играть со средневековой историей Европы и Ближнего Востока.
Под впечатлением от всего этого я захотел создавать собственные игровые миры и начал осваивать движок Unreal Engine 4. Нашёл обучающие видео и статьи, чтобы для начала сделать простой шутер. Но при создании игры столкнулся с багом, который не смог побороть. Это сильно демотивировало. В течение года я продолжал пытаться, но ничего не получалось. Тогда я решил учиться у преподавателя и записался на курс разработки игр на Unity в GeekSchool.
Чем помогли курсы
Честно говоря, при самостоятельной учёбе мне было слишком легко бросить начатое. В этом плане курсы — хороший вариант, потому что здесь есть расписание, учебный план, регулярная проверка домашних заданий. И ещё на курсах можно советоваться со специалистом, узнавать о геймдеве от человека с опытом в этом деле.
Занятия у нас вёл Роман Муратов — преподаватель, который всё понятно объяснял и помогал исправлять баги в наших проектах. На вопросы откликался очень быстро — хотя наверняка Роман довольно занятой человек. Домашние задания были в основном простыми: на их выполнение я тратил не больше сорока минут (если тема сложная), а чаще справлялся минут за двадцать.
Скриншот из моей игры: идём на пляж
Чтобы мы могли сами писать код, нам преподавали основы программирования и объясняли, как реализовать алгоритмы. Я ещё до курсов пытался делать сайты, немного изучал Python и С++, но по-настоящему увлечь меня программированием смогли только игры.
Одной из главных проблем, с которыми я столкнулся за время учёбы, была реализация стрельбы. Никак не удавалось заставить пули вылетать в направлении, куда повёрнут прицел, а не вбок или ещё куда-то. Я долго пытался исправить это сам, а потом пообщался с преподавателем — и он подсказал, как это исправить. Оказалось, всё дело в одном участке кода.
Было интересно погрузиться в написание скриптов. С их помощью я реализовал, помимо стрельбы, перезарядку оружия, вычисление здоровья протагониста и врагов, перемещение, таймер, поведение игры в случае проигрыша и выигрыша.
Несколько раз за время обучения я пытался нагуглить вещи, которых мы не проходили. Например, чтобы самому разобраться, как сделать инвентарь. Но в итоге понял, что это трудно, да и не так уж нужно в моём проекте, где основные занятия игрока — исследование местности и стрельба. Также я сам глубже изучал, как организовать перемещения в 3D-пространстве.
Когда нужно устранить баги, я мог самостоятельно найти решение. Но самые сложные задачи всё-таки помогал решить преподаватель. Например, он подсказал, как разобраться с использованием корутин (Coroutines), чтобы я мог проверять игровые события в Unity.
Моя игра — простой шутер и целый мир
В качестве первой игры я решил делать FPS, потому что посчитал, что это будет проще, чем стратегия или игры других популярных жанров. Мой учебный проект называется Survivor in the forest, но по факту это не симулятор выживания, а шутер от первого лица. Без предыстории игра выглядела бы пустой: я мог предложить игроку только зайти на локацию, расстрелять мишени и забыть о моём проекте навсегда. Но мне хотелось даже в учебной работе попробовать развлечь и заинтересовать игрока, подольше удержать его внимание. Исходя из того, что меня самого привлекает в играх, я решил проработать сюжетный фон.
Действие происходит в XXII веке — ориентировочно в 2118 году. И, конечно, как любителю стратегий и истории, мне было интересно придумать для своей игры геополитическую модель. Карта мира у меня выглядит так: есть Империя (от Испании до Сахалина), Единая Азия (от Турции до Японии) и Американское содружество (вся Южная и Северная Америка). Об Африке известно только то, что там наметилось объединение стран на севере континента.
Сюжет. Во время работы над игрой я много читал о Февральской революции в России, а ещё изучал биографии самых известных мировых диктаторов XX века. Я не стал копировать реальные события, но привнёс в свой проект атмосферу передела власти и жёсткого столкновения политических сил. Итак, в государстве, которое позже будут называть Империей, происходит вооружённый переворот. Столицу захватывают мятежники под предводительством бывшего генерала Эдуардо Кально. Президент и члены правительства вынуждены бежать. Против новой власти выступают несколько движений: анархисты, консерваторы и коммунисты. Президент и его приближённые с небольшим военным отрядом укрываются в деревне, чтобы потом переправиться за границу. К этому месту стягиваются повстанцы, которые должны прикрыть отход президента. Крестьяне берут в руки оружие и тоже выступают на их стороне. Но в целом по стране сопротивление обречено, потому что в распоряжении Кально мощная армия и МВД.
Игра начинается примерно через 50 лет после переворота. Главный герой — корреспондент пропагандистской газеты действующего режима. Он отправляется в командировку, чтобы подготовить материал о боях, которые шли в окрестностях той самой деревни. Но по прибытии его главной задачей становится выживание.
Повествование через детали. Я добавил в игру несколько газет, представляющих разные стороны конфликта и зарубежных наблюдателей. Можно находить и читать отдельные выпуски за несколько десятилетий. Это напрямую не влияет на ход игры, но подсказывают игроку, как события, о которых он узнаёт, связаны с тем, что он видит вокруг себя. Таким образом я попытался расширить лор места и создать повод для повторного прохождения.
Чтобы понять, как должны выглядеть игровые локации, я решил разделить игру на этапы: жизнь деревни до переворота, период военных действий и «современность», в которой действует протагонист. Каждый этап привнёс на локацию что-то своё: первый — дома и лес, второй — военную базу, ящики и контейнеры, а также некоторые детали на локации «Пляж». Действие третьего этапа разворачивается в районе брошенной и горящей нефтяной вышки, вблизи которой находится хвойный лес.
Ещё до переворота буровую скважину вместе с близлежащей военной базой купил один предприниматель. Но затем вышка пострадала в результате боевых действий — там произошёл пожар, который нанёс большой ущерб экологии района. Владелец понял, что вышка не оправдает затрат, и фактически бросил её. На локации это «достопримечательность» и хороший ориентир.
Кроме газет, я хотел добавить в игру дневники крестьянина, которые можно было бы найти в деревне. Они описывали бы события с точки зрения местного населения. Но на глубокую проработку сценария и карты мне не хватило времени — я придумывал детали буквально в последнюю неделю перед сдачей проекта. Правда, о симпатиях жителей деревни к повстанческому движению «Дыхание анархии» всё равно легко догадаться по надписям на стенах и машинах.
Как выглядит геймплей
Технически я реализовал несколько простых механик: перемещение, стрельбу, уход от преследования и сбор предметов. Игра начинается на шоссе между лесом и деревней. Как только герой выходит из машины, его начинает преследовать… движущаяся мишень. Её прикосновение убивает. Конечно, это вынужденная условность. Мишени впоследствии можно было бы заменить на любую другую модель врага, а прикосновение — на попадание пули. У самого игрока сначала оружия нет, но его можно быстро найти.
Почему герой, который сперва спасается от преследования, дальше идёт сам искать и уничтожать мишени, а не выполнять задание редакции? Обосновать это я не успел. Цель игры — выжить и уничтожить все мишени на локации. Если герой проигрывает, мы видим, как его машина уезжает с места действия. Если выигрывает — на экране появляется надпись «Победа!». Я также сделал простое главное меню и добавил несколько дополнительных удобных функций: реализовал возможность ставить игру на паузу, включать и выключать музыку.
Сейчас могу назвать проект завершённым — я отработал на нём базовые навыки и возвращаться к этой игре пока не собираюсь. Планирую делать следующую в том же жанре, но уже с более продвинутыми возможностями.
Путешествие в геймдев продолжается
Я планирую сделать разработку своей профессией, посвятить этому жизнь. К 9–10 классу надеюсь начать зарабатывать на небольших проектах. Скорее всего, начну с мобильных игр, которые попробую распространять через Google Play и App Store. Дальше уже можно будет начать публиковать что-то в Steam.
В перспективе вижу себя геймдизайнером, но пока мне приходится самому решать все задачи: строить сцены в Unity, подбирать игровой контент, писать скрипты. Это, конечно, отнимает много времени. В команде работать ещё не приходилось, хотя понимаю, что крупный проект одному не поднять. У меня есть одноклассник, который немного моделирует в Blender и самостоятельно изучает Unity. Думаю, нам есть смысл объединиться и разработать что-то вместе. Для меня самые интересные жанры — это шутеры и стратегии с глубоким сюжетом.
У нас есть и другие интересные истории ребят с факультета игр на Unity в GeekSchool, сделавших собственные проекты. Например, история Алексея Козлова, создавшего прототип шутера с мультиплеером и ядерными взрывами 🙂