Дмитрий Денисов

Разработка игры в Unity. С нуля и до реализации

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


I Trust in God

Введение

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

В этой книге дано полноценное руководство по разработке игры на Unity с нуля. Без лишней воды и теории, только практика, потому что лучше один раз сделать что-то самостоятельно (даже по руководству), чем прочитать множество гайдов и посмотреть сотни видео на YouTube, но ничего не сделать. В отличие от большого количество книг по разработке и программированию, в этой вы найдете только ту информацию, которая непосредственно относится к созданию вполне конкретного игрового прототипа.

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

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

В практикуме предлагается разработать прототип игры «Dragon Picker», под который может быть адаптировано достаточно большое количество игровых механик и процессов. Смысл работы прототипа достаточно прост — нужно ловить различные предметы. Практикум разбит на основные разделы, в каждом из которых будут описаны основные этапы разработки игры, буквально пара абзацев теории, после чего мы сразу перейдем к разработке (программированию). Вид стартовой страницы готовой реализации приведен на рисунке ниже.



Цель практикума заключается в том, чтобы не только дать информацию о разработке прототипа, но и донести до читателя основные подходы к разработке игр такого типа. Другими словами, поняв, как создается Picker, вы без труда сможете сделать свою игру, непохожую на “исходный” прототип, но со схожей механикой. В конце каждой главы будут даны рекомендации по вариантам изменения и доработки базового прототипа. Следуя им вы сможете не только глубже изучить работу с Unity, но и создать свою уникальную игру на основе предложенной базовой версии.

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

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

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

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

Структура практикума и как с ним работать

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

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

Благодарности

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

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

Коровин Илья, Junior C#/Unity программист. Илья проделал весь практикум в самой сырой версии от начала и до конца, дал ряд ценных рекомендаций по объяснению некоторых важных функций, реализованных в разрабатываемой игре.

Тагатов Альберт, UX/UI дизайнер, графический дизайнер, да и просто хороший, отзывчивый человек. Альберт сделал так, чтобы печатный экземпляр книги было приятно держать в руках, а электронная версия притягивала своим внешним видом. Благодарю Альберта за разработку прекрасной обложки для издания, с которым вы работаете.

Об авторе

Автор просто человек, который любит Unity, делать игры и играть в чужие игры. Каких-то больших наград и достижений пока не имеет, но очень к этому стремится. Делает самую разную работу, начиная с создания междисциплинарных физических моделей в программном пакете ANSYS, заканчивая разработкой игр на Unity и работой в должности доцента Уральского Федерального Университета. Стремится объять необъятное и объяснить как можно большему количеству людей, что IT-сфера это просто и интересно, а самое главное — она меняет наш мир с невероятной скоростью.

Сообщество

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

Сайт автора: https://sciencepub.ru/unity-book/. На сайте размещена информация о книге, на нем вы найдете ссылки на ресурсы, которые использовались при создании игры, а также исходные файлы к игре. Если после издания будут обнаружены неточности в описании или опечатки, то о них будет также сообщаться на указанном сайте.

Telegram-канал: https://t.me/EpicUnity. В телеграмме можно задать вопросы автору, или просто обсудить реализацию игры в кругу единомышленников.

YouTube-канал: https://www.youtube.com/sciencepub. На Youtube-канале со временем появится play-лист с разбором дополнительных заданий, которые даются в конце каждого раздела. Пока что вы найдете на канале достаточно много увлекательных видеоматериалов научно-популярной направленности.

GitHub: https://github.com/Den1sovDm1triy. В отдельном репозитории вы найдете исходники к игре.

SIMMER.io: https://simmer.io/@Den1sov. Мини-игра, разработанная в этом практикуме размещена на web-портале, ссылка указана на профиль автора.

Свои отзывы и предложения, а также информацию о найденных неточностях и опечатках вы можете отправить на личный e-mail автора: mr.denisov.dv@gmail.com.

Посмотреть на готовую реализацию игры Dragon Picker можно по ссылке: https://simmer.io/@Den1sov/dragon-picker.