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

Баскетбол + музыка + разработка игр = собственная первая мобильная игра

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

Немного о себе

На сегодняшний день я Unity-разработчик в компании, которая создает различные интерактивные решения для бизнеса и образования — от обычных desktop-приложений до AR и VR.

Когда мне было 10 лет, в нашей семье появился первый настольный ПК. В тот момент у меня и проявился интерес к играм. Поначалу я играл во всё, что только мог получить от одноклассников и братьев, однако уже через год я уделял больше времени моддингу игр: писал миссии для Grand Theft Auto: San Andreas, собирал карты из брашей для Counter-Strike 1.6 и рисовал острова для Far Cry.

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

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

Точка отсчёта

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

Наверное, мне очень повезло с тем местом, куда я устройлся по специальности. Серьёзных требований, по типу работы с 8:30 до 17:30 с постоянной отчётностью перед начальством, не существовало, а атмосфера в коллективе царила положительная — находясь в кабинете, мы всегда что-то обсуждали, смеялись, и когда спадала рабочая нагрузка можно было заниматься чем-то интересным для себя.

Именно на работе я впервые установил себе Blender и стал вникать в то, как он работает. Конечно, с опытом меньше времени уделялось работе, поскольку задачи решались быстрее, и больше — познанию 3D-пакета.

Практиковаться решил на создании моделей оружия, и спустя уже пару месяцев я создал свою первую 3D-модель — Glock-17.

Вы бы только знали, сколько тут полигонов и кривого сглаживания. Но как же, чёрт возьми, я был рад его закончить!<br />
Вы бы только знали, сколько тут полигонов и кривого сглаживания. Но как же, чёрт возьми, я был рад его закончить!
Desert Eagle. Здесь положение дел получше, но доделывал я его куда медленнее — начались первые командировки<br />
Desert Eagle. Здесь положение дел получше, но доделывал я его куда медленнее — начались первые командировки

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

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

Билли Айлиш с водорослями на голове<br />
Билли Айлиш с водорослями на голове
Ещё одна голова знакомой мне дамы<br />
Ещё одна голова знакомой мне дамы
Бред Питт. Те, кто знаком с ним лично, — не показывайте ему. Пожалуйста<br />
Бред Питт. Те, кто знаком с ним лично, — не показывайте ему. Пожалуйста

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

Процесс создания анимации для шутера: благодаря этому скриншоту я вспомнил каким был интерфейс в Blender версии 2.7x<br />
Процесс создания анимации для шутера: благодаря этому скриншоту я вспомнил каким был интерфейс в Blender версии 2.7x

Смещение акцентов

На протяжении учёбы в университете, когда я ещё верил, что вот-вот стану круче Мартина Гаррикса (продюссер электронной музыки), меня сопровождал простенький ноутбук отца, на котором Ableton Live (софт для работы со звуком) работал с большим натягом, поэтому писать на нем музыку была та ещё задача.

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

Все четыре года я метался от стиля к стилю: на первом курсе я старался разобраться в написании Progressive House, однако в дальнейшем поработал и с Deep House, и c Tropical House. Закончилось всё тем, что я выпустил пару треков в стиле UK Garage и после этого стал смотреть на поп-сцену, включая и рэп-исполнителей.

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

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

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

Да, мой друг — рэпер. Но как человек-то он хороший!<br />
Да, мой друг — рэпер. Но как человек-то он хороший!

Так постепенно я стал больше оттачивать навыки работы с 3D-моделями и игровым движком и меньше задумываться о карьере музыкального продюссера.

Пересечение интересов

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

Я метался: один вечер я пишу новый мотив на синтезаторе гитары, другой — тестирую сетевой обмен на базе WebSocket’ов. Ведь и то и то для меня одинаково интересно, разве что с периодичностью.

И вот как-то раз меня наконец посетила идея: а что если связать свои интересы воедино и отразить накопленные навыки в проекте, который сочетал бы в себе всё то, что мне нравилось все эти годы?

В тот момент под руку как раз попадается видео, в котором один из известных дизайнеров Феррис Рафаули рассказывает, как он разработал баскетбольный зал в особняке для канадского рэп- и r’n'b-исполнителя Дрейка.

Видео о создании The Sanctuary — баскетбольного зала в особняке Дрейка

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

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

The Sanctuary: это про VR? Или мобилки? А может это для браузеров и ПК?

Итак, идея механик уже придумана, референсы найдены, и оставался вопрос — а под что всё это делать?

Тогда я уже подумывал о смене рода деятельности и хотел вникать в мир виртуальной реальности: прибрел свой первый VR-шлем Acer Windows Mixed Reality и изучил базовые механики в Unity c VR. Поэтому выбрал VR как первоначальную платформу, под которую буду разрабатывать проект.

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

Первые пробы механик броска и перемещений. Ощущения присутствия в зале — непередаваемые

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

Так я стал накидывать идеи: всё это можно перенести и на ПК, и в браузеры, а прикрепить мультиплеер к этому — и вообще шикарно.

За время разработки интерьер преобразовался — в зале появились вывески с номерами, под которыми играл покойный Коби Брайант<br />
За время разработки интерьер преобразовался — в зале появились вывески с номерами, под которыми играл покойный Коби Брайант
Из всех видеофайлов, связанных с музыкой, под рукой был только клип того самого коллеги. Да, он рэпер, но клип-то хороший!<br />
Из всех видеофайлов, связанных с музыкой, под рукой был только клип того самого коллеги. Да, он рэпер, но клип-то хороший!
Хорошо запомнилось, что из-за неопытности очень много времени потратил на создание пирамидального оконного проёма в потолке<br />
Хорошо запомнилось, что из-за неопытности очень много времени потратил на создание пирамидального оконного проёма в потолке

Появились первые версии для компьютеров, браузеров и телефонов: в зале можно было переключать треки в плеере и созерцать клипы, а также поиграть в «33» в сетевом режиме.

Первая версия для компьютеров и браузеров
Демка для телефонов. "Зо мат извени"

Кажется, основа написана — остаётся только придать целостный вид проекту, но лето заканчивается и начинаются командировки на работе…

Переосмысление проекта

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

В тот момент я посмотрел на The Sanctuary чуть более опытным взглядом и понял, практически всё в нём сделано не очень:

Качество кода. Мои навыки C# тогда были на начальном уровне, поэтому не соблюдал принципы ООП и SOLID;
Качество моделей. Большое количество полигонов, кривая UV-развёртка и практически вся сцена одним мэшем. Конечно же, это не хорошо;
Выбор Render Pipeline. Точнее, его отсутствие: всё делалось на стандартном пайплайне, что тоже очень плохо.

Приняв всё это (но не простив) я решил, что нужно исправить:

— Написать код как полагается, применяя принцип единой ответственности, больше абстрактных классов, меньше нагрузок на Update и т.д;
— Оптимизировать модели: привести в порядок развертки, убрать полигоны и сделать материалы с Normal Map и AO;
— Взять за основу Universal Render Pipeline, чтобы в дальнейшем работало на всех платформах и плюс-минус красиво выглядело.

При этом всём решил сделать упор на ПК-версию, а потом уже разбираться с VR, Android и iOS. Параллельно с переработкой проекта искал новую работу и выполнял тестовые задания от потенциальных работодателей.

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

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

Как только я приступил к выполнению обязанностей на новом рабочем месте, создание The Sanctuary отодвинулось в сторону: нагрузка была очень высокой из-за организации процесса работы — вот ты делаешь AR-игрушку для форума студентов, а потом хоба — и ты уже разрабатываешь VR-проект, на который у тебя неделя, если не меньше.

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

«Теперь точно знаю, как должно быть. Твёрдо и чётко»

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

Так, зимой 2022 года, я снова смог вернуться к The Sanctuary — бросать такой проект я уже просто не мог, поскольку продолжал считать его интересным как минимум для фанатов музыканта. Да и в конце концов я очень часто забрасывал начатое, и для меня было важно разорвать этот порочный круг.

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

Также были переосмыслены геймплей и фичи проекта:

Управление гироскопом и свайпами. Чтобы телефон был вертикально в руках, а все взаимодействия требовали лишь один палец;
Два режима игры. Соревнование по броскам с трёхочковой линии по правилам NBA и аркадный режим (броски с разных точек с ограничением по времени, попадание в кольцо добавляет несколько секунд к таймеру);
Рейтинговые игры с соперниками. При старте игры находится подходящий по рейтингу конкурент, победа над которым добавляет приличное кол-во очков уровня.

Окончательный вид зала: теперь только запечёное освещение<br />
Окончательный вид зала: теперь только запечёное освещение
Вот ещё окончательный вид. Сова прикольно смотрится<br />
Вот ещё окончательный вид. Сова прикольно смотрится
Вид верхнего помещения<br />
Вид верхнего помещения
Кольцо и сетка<br />
Кольцо и сетка

Что имеем на сегодня?

Демонстрация механик броска и перемещения
Немножко геймплея одного из режимов

К моменту написания статьи из предстоящих задач остались:
— Изменение принципов работы музыкального плеера в зале;
— Вёрстка финальной версии UI;
— Отладка взаимодействия игры с основным сервером;
— Правка различных минорных багов.

Отдельно скажу большое спасибо моей девушке за помощь в разработке игрового интерфейса! В какой-то момент я осознал, насколько тяжело делать подобные проекты одному, и так как моя дама сердца активно познавала UX/UI-дизайн, а я решил ускориться для завершения игры, мы объединили свои усилия.

Сегодня я ощущаю, что финал разработки уже близок, хоть и дел ещё всё-таки не мало.

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

Вот, кстати, работаю — не обманываю

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

Надеюсь, текущие события в мире позволят мне (не без моих стараний) в дальнейшем перенести игру на Oculus Quest II и увидеть отзыв самого Дрейка.

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

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

Всем удачи в начинаниях и в их логичном и успешном завершении!

3636
16 комментариев

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

3
Ответить

Была идея с разными локациями) Но изначально игра задумывалась как скорее дизайнерский проект, да и времени на неё уж больно много ушло, по этому ограничусь принятой концепцией

2
Ответить

Такой пример очень мотивирует. Спасибо. ❤️

3
Ответить

Видно что с телефона будет 100% удобное управление.Очень интересно было прочитать статью ,от и до.
Демо версию так и не удалось опробовать,поэтому жду релиз✌🏻.Верю в твой успех и жму кулаки, чтобы Drake заценил это.

3
Ответить

и на дуде игрец и в блендере боецЗавидую таким талантам
Уверен, ты ещё и Еву отпилотируешь с первого раза на 100% синхронизации

2
Ответить

Здорово видеть прогресс в навыках) очень красивая и реалистичная 3D-сцена в итоге получилась

2
Ответить

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

Вам же желаю терпения и успехов, продолжайте развиваться)

1
Ответить