Программист в игре отвечает за то, чтобы всё двигалось и откликалось: механики, юниты и способности, интерфейс, сохранения, мультиплеер. Работает он внутри движка. Чаще всего это Unity или Unreal Engine, и от выбора движка зависит, какой язык придётся учить. Очно занимаются в Минске, а онлайн-группы открыты для любого города.
Unity или Unreal Engine
В Unity пишут на C#. В одной вакансии junior Unity-разработчика уверенное знание C# стоит в требованиях рядом с внедрением зависимостей и принципами чистой архитектуры. Базу языка можно взять в теме C# и .NET. Но у движка свой набор понятий, которых в обычном C# нет: сцена, ассеты, материалы, коллайдеры.
Unreal Engine устроен иначе. В нём есть Blueprints: по описанию Epic Games, это полноценная система игровой логики на узлах, которую собирают прямо в редакторе. Она даёт почти весь набор понятий и инструментов, обычно доступный только программистам. Программисты на C++ при этом пишут базовые системы, а Blueprints работают поверх них. Значит, попробовать движок можно, ещё не зная C++. В работе бывает нужно и то и другое: в одной вакансии разработчика интерфейсов на Unreal знание C++ и навыки Blueprints стоят рядом. Про сам язык читайте в теме C и C++.
Что ждут от junior в геймдеве
Одна вакансия Junior Unity Developer хорошо показывает разрыв между курсом и работой. В этой вакансии junior означает коммерческий опыт с Unity и от года стажа. Дальше по списку:
- сетевые инструменты для мультиплеера: Netcode for GameObjects, Photon, Mirror или Fish-Net;
- бэкенд-сервисы вроде Unity Gaming Services, PlayFab, Firebase;
- сборка 3D-сцены: импорт ассетов, материалы, коллайдеры;
- оптимизация мобильной игры под iOS и Android.
Это одна студия и один жанр: мобильная мультиплеерная игра с PvP и tower defense. Вывод для выбора курса из неё простой. Игра, в которую можно сыграть, расскажет о вас больше любого документа. Лучше, если к сборке приложен репозиторий с кодом: работодатель увидит не только картинку, но и то, как устроены механики.
Как выбрать курс
- Чего вы ждёте на выходе: короткое знакомство с движком или программу, после которой у вас будет собственная игра.
- Пишете ли вы код на C# или C++ или собираете логику только в визуальном редакторе.
- Разбирают ли архитектуру: ООП, компонентный подход, разделение логики и отображения.
- Доводят ли игру до сборки на телефон или компьютер, которую можно показать.
- Проверяет ли преподаватель проект или есть только записи уроков.
Первые игры получаются маленькими: один уровень, пара механик, простой интерфейс. Так и должно быть. Для начала можно взять простой клон известной игры: правила уже придуманы, и все силы уходят на код, а не на поиск идеи. Законченный маленький проект ценнее большого, брошенного на середине. А если в итоге вас больше тянет к обычным приложениям для телефона, загляните в мобильную разработку.