Как сделать игру на двоих в unity

Обновлено: 16.05.2024

Где брать идеи для игр?

Как придумать идею для своей игры? Где брать идеи для своей игры? Как зарождались легендарные игры? Что такое игровая механика и какие их них наиболее интересны?

музыка и звуки для игр

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

hyper casual

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

топ книг по разработке игр

Задумывались ли вы когда-нибудь стать разработчиком игр и создавать свои игровые шедевры? Скорей всего задумывались, ведь сейчас компьютерные игры и все

Интеграция Facebook SDK в Unity 3D

Facebook SDK используется для сбора данных о поведении игроков внутри мобильных приложений. С помощью него можно узнавать различные игровые показатели

Game Analytics Unity SDK

Game Analytics — это бесплатный аналитический сервис для сбора игровых данных, таких как вовлеченность и прогресс пользователя, события о покупках

публикация игры в google play

Сборка Android App Bundle в Unity 3D

С августа 2021 года загрузить новое приложение в консоль разработчика Google можно будет только использовав наборов Android App Bundle. Это формат публикации

Как скачать и установить Unity

Unity — это кроссплатформенный игровой движок для создания как 2D, так и 3D игр. Unity поддерживает создание игр для многих платформ, таких как iOS

Внутриигровые покупки в Unity 3D

IAP (In App Purshases) -игровые покупки один из наиболее популярных способов монетизации мобильных приложений. Существует 3 типа покупок: расходуемые

Научить тебя работать с Unity — движком, на котором создают 90% мобильных игр. На курсе ты сделаешь прототип простого 2D-платформера и с каждым уроком будешь добавлять в него новые механики: от перемещения по уровню и диалогов до чекпойнтов и босса с несколькими фазами боя.

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

ЭТОТ КУРС ДЛЯ ТЕБЯ, ЕСЛИ





ТЫ НАУЧИШЬСЯ

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

Полному циклу разработки игры на Unity

Делать понятный игровой интерфейс

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

Реализовывать множество игровых механик

Создавать умных NPC и взаимодействовать с ними


Ведущий Unity-разработчик в Pixonic.

Опыт в программировании — 12 лет. Начинал с браузерных игр на Flash, затем перешел на мобилки. Работал в Social Quantum и Game Insight, а в последние несколько лет работает в Pixonic над мобильным шутером War Robots. Также принимает участие в гейм-джемах в качестве куратора и судьи.

АЛЕКСЕЙ МАЛОРОССИЯНОВ

КТО ПРОВОДИТ КУРС


ПРОГРАММА КУРСА

Обрати внимание. В программе — 5 блоков, в каждом — от 4 до 8 лекций, которые длятся 1 час. После каждой лекции — домашка, на выполнение идет от 30 до 60 мин. Её проверяют мидлы с опытом 3+ лет: отмечают, что получилось хорошо, а что нужно доработать, чтобы стало еще лучше.

На курсе тебя ждут 2 Курсовые и 1 Дипломная работа. Они помогут объективно оценить, как ты усвоил материал.

Блок 1. Пазл-платформер

Лекция 1. Знакомство с Unity
Unity HUB и версия, IDE, создание пустого проекта, обзор интерфейса (scene, game, hierarchy, inpector, console). Трехмерное пространство сцены. Разбор GameObject и компонентов: Transform, Camera. Концепция Prefab.

1. Настраиваем окружения для работы:
• получаем Unity Id
• скачиваем Unity Hub
• договариваемся о версии Unity

2. Создание нового проекта:
• выбор необходимого темплейта
• обзор интерфейса (Scene, Game, Hierarchy, Inspector, Console)

3. Базовые сущности:
• пространство сцены
• unit
• Game Object
• Transform
• Camera

Домашка: самостоятельное повторение этапов лекции, настройка окружения под себя, тест на усвоение понятий
Время: 1 час лекция, 20 минут домашка

Лекция 2. Создание сцены и ее наполнение
Объяснение объекта *.unitypackage и импорт необходимых ассетов. Сборка игровой сцены из префабов. Объяснение понятия текстур и Sprite. SpriteRenderer. Настройка камеры (инструменты редактора по алигну камеры). Запуск проекта.

1. Импорт ассетов:
• импорт ресурсов через unitypackage
• импорт сырых текстур

2. Настройка текстур:
• обзор возможных настроек текстуры
• настройка текстур под пиксель-артный проект

3. Grid & Snap Settings

4. Создание объектов на сцене:
• компонент SpriteRenderer и его свойства
• взаимосвязь настроек текстур с SpriteRenderer

5. Камера и её свойства

6. Пакет 2d Pixel Perfect

Домашка: самостоятельное повторение этапов лекции, импорт и настройка новых текстур.
Время: 1 час лекция, 4 часа на домашку

Лекция 3. Оживляем сцену
Понятие MonoBehaviour. Создание Player.cs базовый цикл жизни бихэйва (Awake, Start, Update, OnDestroy). Разбираем методы, переменные, базовые типы, условные операторы, модификаторы доступа. SerializedField и то как это влияет на GameObject (посмотреть на изменение сериализованных данных). Разбор класса Input, реализация базового передвижения игрока по сцене.

1. Первый скрипт:
• Обзор MonoBehaviour
• Жизненный цикл скрипта
• Создание контроллера игрока Player.cs

2. Вспомним теорию:
• переменные
• базовые типы
• условные операторы
• методы

3. Пользовательский ввод:
• Разбор класса Input
• Обработка ввода через Input
• Обзор нового пакета Input System
• Создание контролов и привязка методов из Player.cs

4. Перемещение объекта по сцене

Домашка: самостоятельное повторение этапов лекции, реализация перемещения по двум осям
Время: 1 час лекция, 30 минут домашка

Лекция 4. Физика и коллизии
Рассказ о физике: гравитация, rigid body, импульсы, статические объекты. Размещение на сцене необходимых компонентов пола и привязка физики к GO игрока. Переделываем управление на импульсы. Рассказ детекции коллизий, компоненты *Colider. Методы колизий в компоненте игрока. Создаем новый компонент коина и добавляем механику собирания монеток.

1. Физическая модель Unity

2. Разбор Rigidbody:
• типы физических тел
• масса
• гравитация
• ограничители

3. Разбор Collider:
• виды коллайдеров
• обзор параметров компонента

4. Переписываем управление персонажем на физическую модель:
• Velocity, AddForce
• Добавляем возможность прыгать
• Ground Check и его различные реализации

5. Делаем управление более отзывчивым:
• управление высотой прыжка
• safe jump

6. Реализуем детекцию коллизий на примере монеток.

Домашка: самостоятельное повторение этапов лекции, создать передвигаемую бочку
Время: 1 час лекция, 30-60 минут домашка

Лекция 5. Тайлсеты и камера
Работа со спрайтами и тайлами. Настройки и свойства Sprite, SpriteRenderer. Обзор встроенных инструментов для тайлсетов и грида. Создание тайлсета для уровня. Расстановка тайлов из палитры на сцену. Расширения и кастомные тайлы.

Что такое тайлсет и зачем он нужен?

1. Импорт ресурсов:
• настройка спрайта
• нарезка текстуры.

2. Создание уровня с помощью Tile Palette
• Обзор интерфейса и возможностей
• Grid и TileMap

3. Простой скрипт слежения за передвижением игрока:
• Интерполяция: зачем нужна и как применить?

4. Пакет Cinemachine и реализация слежения через VirtualCamera:
• обзор технологии
• разбор параметров камеры
• настройка камеры под проект

Домашка: Самостоятельное повторение этапов лекции, сборка игрового уровня на основе полученных знаний.
Время: 1 час на лекцию, 30-60 минут на домашку.

Лекция 6. Анимация
Рассказываем о покадровой анимации, знакомимся с интерфейсами Animator/Animation. Создаём аниматор для героя с набором состояний передвижения. Рассказываем о переходах и параметрах анимации. Программируем контроллер для анимации.

1. Анимация в пиксель-арт играх:
• Покадровая анимация.
• Спрайтшиты.
• Настройка и нарезка ресурсов.

2. Интерфейсы Animator/Animation

3. Анимирование героя:
• Добавление аниматора и состояний.
• Создание анимаций и привязка к состояниям.
• Условные переходы между состояниями и проброс параметров.
• Привязка к коду.

4. Программная покадровая анимация:
• зачем может понадобиться
• реализация компонента

Домашка: самостоятельное повторение этапов лекции, настройка анимированного окружения.
Время: 1 час на лекцию, 30-60 минут на домашку

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

1. Разбираем компонентный подход в разработке.

2. Немного теории о делегатах и разбор UnityEvent.

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

4. Опасные предметы:
• Добавляем пики и обработку их взаимодействия с героем
• Добавляем анимацию урона и связываем с кодом.

Домашка: самостоятельное повторение этапов лекции, реализация нажимного переключателя.
Время: 1 час на лекцию, 30-60 минут на домашку.

Лекция 8. Партиклы и инстанциирование
Рассказываем о Particle System. Создаём партиклы для прыжка, резкого разворота, сбора монет. Программно привязываем всё это.

1. Частицы, какие бывают и зачем нужны:
• Particle System
• Спрайтовая анимация частиц.

2. GameObject.Instaniate зачем нужен, как применять

3. Пыль под ногами:
• Настраиваем точки спавна для частиц и реализуем компонент
• Ивенты в анимации и связывание с кодом.

4. Реворк монеток:
• Новые ивенты в покадровом аниматоре
• Добавляем эффекты исчезновения монеток.

Домашка: самостоятельное повторение этапов лекции, реализовать частицы при прыжке.
Время: 1 час на лекцию, 30-60 минут на домашку.

Задание: разработать игровой уровень, в рамках которого нужно добраться из точки А в точку Б, собрав максимальное количество монеток. В уровне должны присутствовать двери, передвижные и разрушающиеся платформы. Самостоятельно создать механику включающейся передвижной платформы.

Блок 2. Боёвка и NPC

Melee и разрушаемые объекты.
Реализуем механику холодного оружия. Дополняем код и соответствующие контейнеры в префабе персонажа. Реализуем механику разрушаемых пропсов.

Домашка: самостоятельное повторение этапов лекции, сборка уровня с новой механикой
Время: 1 час лекция, 30 минут домашка


Модель данных игрока и текущей сессии.
Рассказываем о ScriptableObject как о хранилище данных и настроек. Проектируем и реализуем модель данных игрока, привязываем эти данные к игре. Реализуем бочку со взрывчаткой, которая ранит персонажа при ее взрыве. Дополнительное задание: на основе материалов с этой и предыдущей лекции реализовать механику аптечки.

Домашка: самостоятельное повторение этапов лекции, реализовать механику собираемого зелья здоровья
Время: 1 час лекция, 30 минут домашка

Мобы и базовый AI.
Рассказываем о неигровых персонажах и добавляем простой контроллер моба который который ранит персонажа при приближении. Рассказываем об агро рэнже и базовых поведениях.

Домашка: самостоятельное повторение этапов лекции, сборка уровня с новой механикой
Время: 1 час лекция, 30 минут домашка


Range атаки.
Рассказываем что такое проджектайл и настройки Bullet в разрезе физики и детекции коллизий. Реализуем рэнж оружие игрока (пистолет). Доп. задание: реализовать дробовик.


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

Домашка: самостоятельное повторение этапов лекции, реализовать моба которым обладает melee и range атаками
Время: 1 час лекция, 30 минут домашка


Инвентарь. Модель данных и связывание.
Создаем модель данных инвентаря и ячеек быстрого доступа. Реализуем собирабельные ресурсы и механики патронов, ключей.
Доп. задание: собирабельная аптечка.

Домашка: самостоятельное повторение этапов лекции, реализовать механику собираемого зелья здоровья
Время: 1 час лекция, 30 минут домашка


Звук.
Обзор звуковой подсистемы Unity, реализация эмбиента уровня, программное воспроизведение звуков, компонент воспроизведения звука.

Домашка: самостоятельное повторение этапов лекции, добавить недостающие звуки в игру
Время: 1 час лекция, 30 минут домашка


Чистый код, связность, зацепление.
Лекция на тему хорошего кода: какие есть признаки, чего нужно придерживаться. Рефакторим созданные классы.
Дополнительное задание: отрефакторить один из старых классов.

Домашка: самостоятельное повторение этапов лекции, попробовать отрефакторить уже написанный код
Время: 1 час лекция, 30 минут домашка

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

Извлекаем текстуры и шейдеры

Большинство ресурсов Unity-проекта упаковываются в файлы проприетарного формата с расширениями .assets и .resources . Наиболее популярный на сегодняшний день инструмент для просмотра таких файлов и извлечения из них ресурсов — Unity Assets Explorer.


Установка программы dnSpy

Файлы из папки не удалять и не перемещать. В противном случае, программа работать не будет!

Поиск нужный файлов

Для того, чтобы получить исходный код игры скачиваем ее (можно и Steam версию игры). Далее нам нужно найти ее локальные файлы. Для этого заходим в ‘свойства‘ >> ‘локальные файлы’ >> ‘просмотреть локальные файлы‘. Далее, нужно немного порыться и найти папочку Managed‘.

Убедитесь, что игра написана на Unity!



В этой папке будет много файлов с расширением .dll. Нам нужен только 1 из них. Assembly-CSharp.dll

Работа в dnSpy

Для начала кинем наш файл в dnSpy. После этого вы увидите подобную картину.


У вас может не быть некоторых файлов, они появятся со временем работы.

Нажимаем на стрелочку слева от название нашего файла. Далее тоже самое, только в открывшемся взору файле. Получаем много файлов. Все это – код.


Нам нужен только раздел под названием “-“. Нажимаем на стрелочку слева. И видим множество файлов, что и есть исходный код. Вы можете в нем покопаться и изменить, например прозрачность стен или, например, иконки персонажей и оружия.

Взламываем исходный код через IlSpy и dotPeek

Для Windows-сборок Unity компилирует и сохраняет исходный код всех игровых скриптов в директорию Managed . Интересуют нас следующие библиотеки: Assembly-CSharp.dll , Assembly-CSharp-firstpass.dll и Assembly-UnityScript.dll .



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

Lorem ipsum dolor

Как создать игру на Unity без программирования

  • игровой интерфейс;

  • звуковое сопровождение;

  • персонажи игры;

  • текстуры;

  • ландшафты;

  • и др.

Заключение

Мы будем очень благодарны

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

Читайте также: