Robot
Складчик
- #1
Основы мультиплеера в Unity [Евгений Иншаков, Илья Карельцев]
- Ссылка на картинку
Чему вы научитесь?
Разрабатывать серверную часть игры
Основа любой сетевой игры — передача данных между сервером и клиентами.
На языке TypeScript вы научитесь писать код исполняемый на сервере
Изучим все необходимые возможности фреймворка Colyseus
Разрабатывать клиентскую часть игры
Для игрока важно, чтобы взаимодействие с игрой было отзывчивым, а объекты не дергались.
На большом количестве реальных ситуаций мы разберемся, как сделать, чтобы игрок не чувствовал пинг
Делать законченные мультиплеерные игры
Для нас важно, чтобы материал курса был полный.
Игры мы будем выкладывать
на сервер.
Расскажем как выбрать хостинг и разместить там свою игру.
Создавать грамотную архитектуру проекта
В этом курсе при создании всех игр мы уделили большое внимание архитектуре.
В сетевых играх архитектура проекта особенно важна.
Все скрипты и составные части проекта в Unity должны были логичны, инкапсулированы, понятны, расширяемы
Работа с базой данных
Умение работать с базами данных нужно не только для создания риалтаймовых сетевых игр. Это так же неотъемлемый атрибут однопользовательской игры. Таблица лидеров, система сохранения, работающая между устройствами, авторизация в игре, уведомление пользователя о вышедшем обновлении — все это требует навыков работы с базами данных.
Что если вы захотите сделать ферму, где один игрок, может посетить огород другого и посмотреть что там и где растет?
Продвинутое программирование на C#
В курсе мы уделили внимание тем аспектам программирования, которые могут быть не понятны Джуну и подробно их объясняем.
Проходим Action-ы, делегаты, анонимные методы, лямбда выражения, асинхронные методы, работу с корутинами и многие другие вещи
На чем мы будем делать мультиплеер?
Colyseus. Multiplayer Framework
Есть много разных инструментов для создания сетевых игр. Это, например, сетевые движки Photon, Mirror или Unity Netcode.
Для этого курса нам нужно было выбрать оптимальный вариант.
Мы остановились на Colyseus.
Преимущества Colyseus
Контроль
Полный контроль над данными, которые передаются между клиентом и сервером
Авторитарный сервер
С помощью Colyseus создается мультиплеер на базе выделенного (авторитарного) сервера. Это значит, что вы не передает пользователю код исполняемый на сервере. Это открывает возможности создавать игры, ресурсы в которых очень ценны, например, азартные игры или крупные ММО (Массовые Многопользовательские Онлайн) проекты
Бесплатный
Colyseus бесплатный, в отличии от других популярных мультиплеерных движков. Это важный плюс. Для игр, сделанных на платных решениях, их цена становиться существенной частью расходов
Производительность
Поскольку вы сами пишете код программы, исполняемой на сервере, ее производительность может быть на порядок выше чем у других решений, таких как Unity Netcode, Mirror и Photon. На одном сервере могут играть больше игроков, значит расходы на сервер будут ниже
Универсальность решения
Хоть мы и разрабатываем игры на Unity, программа, которая будет выполняться на сервере вообще не связана с Unity, по сути это просто серверный код, который принимает и отправляет запросы. Вы поймете работу мультиплеерных игр на фундаментальном уровне и станете более востребованным специалистом. Вас могут взять в команду, которая занимается ААА-проектом на своем собственном движке. Ведь вы уже не так сильно привязаны к Unity, ваши знания станут более универсальными в игровой- и не игровой индустрии
Фундаментальные знания
Освоив на курсе Colyseus, вы, при необходимости, сможете переключиться
и на другой сетевой движок. Вы освоите саму логику передачи данных по сети, научитесь писать грамотную архитектуру проекта. Имея эти навыки вы легко освоите другой движок, если, например, компания, в которую вы хотите устроиться, его использует
Игры, которые вы сделаете
Шутер
Два игрока будут бегать и стрелять в друг в друга. Разберемся как синхронизировать их позиции, жизни, выстрелы, отображение счета на экране, корректно учитывать попадание пуль и все другое что нужно в шутере.
На этом примере мы сделаем самый простой многопользовательский проект. Разберемся как запустить и настроить сервер, подготовить все для удобной работы и работать с сервером. На практике разберем как передаются данные между клиентами и сервером, как создавать комнаты чтобы игроки находили друг друга в сети
Змейка
В этой игре уже не два игрока, а 100. Новые игроки могут подключиться к игровой сессии, где уже во всю играют другие пользователи
Clash Royale
Это еще один вариант сетевой игры. Игроки перетаскивают карточки и создают юнитов. Юниты идут к замку противника. Победит тот, кто первый уничтожит замок. В этой игре мы начнем разбирать работу с базой данных, реализуем регистрацию и авторизацию, а так же рассмотрим еще один вариант синхронизации состояний
Майнкрафт
Тут два игрока бегают по карте и строят блоки разного вида. Это интересный проект для того чтобы показать как мы можем сохранять информацию о сцене в базу данных на сервере, чтобы игроки могли зайти на эту карту на следующий день и продолжить строить, или поделиться созданной картой с друзьями. Само собой, они смогут одновременно, вместе, побегать по одной и той же карте
Кому подойдет курс?
Новички в Unity
Если вы только начали осваивать Unity, имеете базовое представление о программировании на C# (знаете что такое класс, метод, переменная), вы справитесь с этим курсом)
Опытные Unity разработчики
Лучше всего курс подойдет разработчикам, которые уже уверенно пользуются движком, делали свои реальные однопользовательские проекты. Навыки, которые вы получите в курсе сильно расширят ваши профессиональные возможности и творческий потенциал
Программисты из других сфер
Этот курс идеально подойдет и тем, кто уже владеет C# или другим языком программирования, но еще не занимался разработкой игр
Разрабатывать серверную часть игры
Основа любой сетевой игры — передача данных между сервером и клиентами.
На языке TypeScript вы научитесь писать код исполняемый на сервере
Изучим все необходимые возможности фреймворка Colyseus
Разрабатывать клиентскую часть игры
Для игрока важно, чтобы взаимодействие с игрой было отзывчивым, а объекты не дергались.
На большом количестве реальных ситуаций мы разберемся, как сделать, чтобы игрок не чувствовал пинг
Делать законченные мультиплеерные игры
Для нас важно, чтобы материал курса был полный.
Игры мы будем выкладывать
Расскажем как выбрать хостинг и разместить там свою игру.
Создавать грамотную архитектуру проекта
В этом курсе при создании всех игр мы уделили большое внимание архитектуре.
В сетевых играх архитектура проекта особенно важна.
Все скрипты и составные части проекта в Unity должны были логичны, инкапсулированы, понятны, расширяемы
Работа с базой данных
Умение работать с базами данных нужно не только для создания риалтаймовых сетевых игр. Это так же неотъемлемый атрибут однопользовательской игры. Таблица лидеров, система сохранения, работающая между устройствами, авторизация в игре, уведомление пользователя о вышедшем обновлении — все это требует навыков работы с базами данных.
Что если вы захотите сделать ферму, где один игрок, может посетить огород другого и посмотреть что там и где растет?
Продвинутое программирование на C#
В курсе мы уделили внимание тем аспектам программирования, которые могут быть не понятны Джуну и подробно их объясняем.
Проходим Action-ы, делегаты, анонимные методы, лямбда выражения, асинхронные методы, работу с корутинами и многие другие вещи
На чем мы будем делать мультиплеер?
Colyseus. Multiplayer Framework
Есть много разных инструментов для создания сетевых игр. Это, например, сетевые движки Photon, Mirror или Unity Netcode.
Для этого курса нам нужно было выбрать оптимальный вариант.
Мы остановились на Colyseus.
Преимущества Colyseus
Контроль
Полный контроль над данными, которые передаются между клиентом и сервером
Авторитарный сервер
С помощью Colyseus создается мультиплеер на базе выделенного (авторитарного) сервера. Это значит, что вы не передает пользователю код исполняемый на сервере. Это открывает возможности создавать игры, ресурсы в которых очень ценны, например, азартные игры или крупные ММО (Массовые Многопользовательские Онлайн) проекты
Бесплатный
Colyseus бесплатный, в отличии от других популярных мультиплеерных движков. Это важный плюс. Для игр, сделанных на платных решениях, их цена становиться существенной частью расходов
Производительность
Поскольку вы сами пишете код программы, исполняемой на сервере, ее производительность может быть на порядок выше чем у других решений, таких как Unity Netcode, Mirror и Photon. На одном сервере могут играть больше игроков, значит расходы на сервер будут ниже
Универсальность решения
Хоть мы и разрабатываем игры на Unity, программа, которая будет выполняться на сервере вообще не связана с Unity, по сути это просто серверный код, который принимает и отправляет запросы. Вы поймете работу мультиплеерных игр на фундаментальном уровне и станете более востребованным специалистом. Вас могут взять в команду, которая занимается ААА-проектом на своем собственном движке. Ведь вы уже не так сильно привязаны к Unity, ваши знания станут более универсальными в игровой- и не игровой индустрии
Фундаментальные знания
Освоив на курсе Colyseus, вы, при необходимости, сможете переключиться
Игры, которые вы сделаете
Шутер
Два игрока будут бегать и стрелять в друг в друга. Разберемся как синхронизировать их позиции, жизни, выстрелы, отображение счета на экране, корректно учитывать попадание пуль и все другое что нужно в шутере.
На этом примере мы сделаем самый простой многопользовательский проект. Разберемся как запустить и настроить сервер, подготовить все для удобной работы и работать с сервером. На практике разберем как передаются данные между клиентами и сервером, как создавать комнаты чтобы игроки находили друг друга в сети
Змейка
В этой игре уже не два игрока, а 100. Новые игроки могут подключиться к игровой сессии, где уже во всю играют другие пользователи
Clash Royale
Это еще один вариант сетевой игры. Игроки перетаскивают карточки и создают юнитов. Юниты идут к замку противника. Победит тот, кто первый уничтожит замок. В этой игре мы начнем разбирать работу с базой данных, реализуем регистрацию и авторизацию, а так же рассмотрим еще один вариант синхронизации состояний
Майнкрафт
Тут два игрока бегают по карте и строят блоки разного вида. Это интересный проект для того чтобы показать как мы можем сохранять информацию о сцене в базу данных на сервере, чтобы игроки могли зайти на эту карту на следующий день и продолжить строить, или поделиться созданной картой с друзьями. Само собой, они смогут одновременно, вместе, побегать по одной и той же карте
Кому подойдет курс?
Новички в Unity
Если вы только начали осваивать Unity, имеете базовое представление о программировании на C# (знаете что такое класс, метод, переменная), вы справитесь с этим курсом)
Опытные Unity разработчики
Лучше всего курс подойдет разработчикам, которые уже уверенно пользуются движком, делали свои реальные однопользовательские проекты. Навыки, которые вы получите в курсе сильно расширят ваши профессиональные возможности и творческий потенциал
Программисты из других сфер
Этот курс идеально подойдет и тем, кто уже владеет C# или другим языком программирования, но еще не занимался разработкой игр
Зарегистрируйтесь
, чтобы посмотреть скрытый авторский контент.