В мире разработки игр существует множество игровых движков, которые используются для создания удивительных и захватывающих игр. Некоторые примеры, которые приходят на ум, — это GameMaker Studio, Unity и Unreal. Их много, но я решил выбрать Unity и немного узнать о разработке игр.

Возможно, вы слышали о Hearthstone, Cuphead или Cities: Skylines. Это игры, созданные с помощью Unity.

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

Скрипты Unity написаны на языке программирования C#. В настоящее время, будучи студентом Flatiron, я изучил Ruby и JavaScript, поэтому научиться использовать редактор Unity и писать код на C# было сложно. К счастью, в Unity есть простые учебные пособия с видео, в которых объясняется, как использовать программное обеспечение Unity, а также поясняется, какой код писать.

Одним из таких руководств является Учебник по космическим шутерам. После прохождения базового туториала моя готовая игра выглядела так:

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

Импортированные активы помогли мне пройти обучение, не беспокоясь о дизайне и оформлении, и сосредоточиться на использовании программного обеспечения и написании сценариев. Синтаксис C# немного отличается от синтаксиса Ruby и JavaScript, но знакомство с фундаментальными основами этих двух языков очень помогло в написании сценариев в этом руководстве.

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

Подобно Ruby и JavaScript, C# имеет оператор switch, который можно использовать вместо операторов if-else. Применив немного игровой логики, я проверил, какое оружие было выбрано, и определил, какой тип стрельбы будет происходить в зависимости от оружия.

Ниже представлен Space Shooter с небольшими изменениями:

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

Вы можете проверить эту игру на странице GitHub.

Удачного кодирования!

*Небольшое примечание для других новичков, которые прошли это руководство и хотят реализовать многократный выстрел с несколькими игровыми объектами появления выстрела. Наклон корабля игрока приводит к тому, что несколько выстрелов отлетают от плоскости x-z, сталкиваются с границей и разрушают болт. Быстрое решение этой проблемы заключалось в том, чтобы убрать наклон корабля, чтобы выстрелы возрождения оставались в плоскости x-z и стреляли во всех направлениях.