Как стать автором
Обновить

Автостопом по мультиплееру. Часть 1: Введение

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.2K

Этой статьёй открывается цикл, посвящённый разработке мультиплеерных игр. Мультиплеер — это весьма объёмная область, из-за чего в ней очень легко потеряться или пойти не туда. Я хочу попробовать расставить ориентиры, которые бы помогли начать, указывали направление и подсвечивали важные моменты.

  1. -> Введение

  2. Синглплеер и мультиплеер

  3. Клиент и сервер

  4. ...


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

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

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

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


Наблюдение №1: Сложность

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

Поиск – не главный этап, но очень важный. Нельзя изучить то, что не удалось найти, и о существовании чего ты даже не знаешь :)
В "моё время" всю информацию приходилось собирать по кусочкам из разных глубин, заведомо не зная, что эти глубины вообще есть: множество туториалов ограничивались самыми банальными вещами и заканчивались на самых интересных моментах. Поэтому область поиска не ограничивалась только Unity или геймдевом: приходилось искать всюду и учиться прикладывать добытые знания к своим задачам. Ведь чтобы сформировать нужный запрос в поисковую строку, нужно было знать определённые термины и контекст.

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

Вывод:
Если однажды удосужиться попасть на мультиплеерный проект, не имея какого-то опыта, не стоит надеяться, что удастся разобраться со всем за недельку и начать успешно перформить — вряд ли из такой затеи получится что-то удачное (но ситуации бывают разные).
Нужно быть готовым к тому, что здесь, как и в IT в целом, придётся постоянно учиться и совершенствовать свои навыки, чтобы иметь компетенции заниматься более качественными и масштабными проектами.


Наблюдение №2: Неизбежность

По мере развития игровой индустрии мультиплеер захватывает всё новые и новые "территории". Раньше мультиплеер был сродни отдельной касте развлечений: с конкретными жанрами, на конкретных платформах, с конкретными правилами. Однако со временем эти ограничения всё больше размываются. Сейчас сложно найти жанр, для которого не было бы многопользовательских проектов. И актуальных платформ, которые не предоставляют подобный вид развлечения, тоже так просто не вспомнить. Мультиплеер пришёл даже в мобильный гейминг.

Из эпохи, когда игроки радовались наличию мультиплеера, мы постепенно переходим в эпоху, где игроки уже негодуют из-за его отсутствия, т.к. они хотят иметь возможность играть со своими друзьями практически во всё.
А какое будущее рисуют нам компании? Будущее метавселенных! А что такое метавселенная — это большой мультиплеер. Вероятно однажды мультиплеер станет настолько обыденностью, что мы уже даже не будем знать альтернатив.

Вывод:
Чем дальше, тем больше в нашей жизни мультиплеера становится. С каждым днём шансы столкнуться с этой технологией возрастают. Рано или поздно, как бы мы ни избегали (если такие попытки есть), мы там окажемся. И лучше к этому быть готовым. Потому что <см Наблюдение №1>.


Наблюдение №3: Недооценённость

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

В ситуациях "безрыбья" приходилось предлагать кандидатам без нужного опыта выполнять ТЗ на разработку мультиплеерного прототипа. Такие ТЗ для кандидата не бывают простыми и быстрыми, но и мы, как команда, не можем позволить себе брать разработчика, не проверив должным образом нужные нам навыки и компетенции. Хотя бы навыки обучаемости.

На моей практике не было кандидатов, которые бы смогли успешно выполнить ТЗ, столкнувшись с сетевым кодом впервые при выполнении этого ТЗ. Тем не менее те, кто что-то когда-то слышали и сколько-нибудь пробовали, не редко давали весьма хорошие результаты. Пусть они не знали об определённых подводных камнях, которые приходят только с опытом, но поставленная задача была объективно выполнена.

Вывод:
Для разработки мультиплеера все хотят сотрудников "на опыте", но таких катастрофически мало. И сами разработчики почему-то не придают значения такой вехе в своём портфолио навыков.
Поэтому даже небольшой скромный мультиплеерный пет поможет выделиться среди других кандидатов и успешнее выполнить ТЗ, если оно вообще потребуется.
А команды всё чаще обращаются к мультиплееру. Потому что <см Наблюдение №2>.


Заключение

Мультиплеер – это сложно, объемно, актуально, перспективно и с каждым днём всё более востребовано. И, вероятно в недалёком будущем, почти обязательно. Но среди разработчиков это на данный момент не очень популярно. И, как нанимающая сторона, я подмечаю некоторый "кадровый голод" в этой области.

Этим введением я хотел обратить внимание на наличие такого направления как мультиплеер и на его возрастающую значимость. И хотел "подстегнуть" не откладывать его изучение на потом. Лучше начать раньше и продвигаться в комфортном темпе, чем пытаться однажды ворваться резко и дерзко.

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

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

Впереди ещё множество нераскрытых тем. Следить за выходом новых статей по мультиплееру и не только можно в моём блоге на VK / Telegram Dtf / Dzen, где я делюсь своими находками, мыслями, инсайтами. анонсами и новостями.


Контент

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

  1. Joshua Glazer, Sanjay Madhav. Multiplayer Game Programming: Architecting Networked Games (есть в переводе)

  2. Alan R. Stagner. Unity Multiplayer Games

  3. Marco Secchi. Multiplayer Game Development with Unreal Engine 5

Теги:
Хабы:
Всего голосов 5: ↑3 и ↓2+5
Комментарии2

Публикации

Истории

Работа

Ближайшие события

19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн