Идём в геймдев после ФИВТа

Идём в геймдев после ФИВТа

ФИВТonline

Эн таро Тассадар!

В Украине нет школы или института, где учат разрабатывать игры, но зато есть ФИВТ. Это далеко не одно и то же, но будем играть тем, что дали. Разрабатывать игры в зависимости от специальности идут около трёх процентов выпускников ФИВТа. Посмотрим какие дисциплины на ФИВТе понадобятся в разработке игр.


Статистика: https://teletype.in/@mwstw/stats


Будет полезно всем

Английский

Английский используется для написания большей части документации, книг, статей. Значительный процент курсов, будь они полезными или нет — тоже на английском. И без B2(уровень знаний ЗНО) будет или неудобно, или очень неудобно пользоваться этим.

«…самое важное — англ. Если его не шаришь, в норм контору не возьмут».

Ник @mwstw, выпускник ФИВТа, 2 года в геймдеве

Математика

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


Линейная алгебра

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

«В остальном линал — ваш друг, ибо векторов много и делать с ними штуки иногда таки придется».

Лолитка @ZeeGull, выпускник ФИВТа, 2,5 года в геймдеве


Физика

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

«Про физику/математику я бы дописал, что понимание базовых вещей снимает с движка налет «магии» и воспринимать его просто как инструмент, который имеет свое применение и ограничение. На практике, в различных проектах часто приходится отказываться от сложных «физик» которые даёт движок ради более простых, но при это более подходящих в конкретных случаях решений».

Артём Коротенко, препод на ФИВТе, 8 лет в геймдеве


Программирование

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

«По проге — скорее всего вы попадете либо на юньку(Unity), либо на анрил(Unreal Engine). Шарпы и плюсы соответственно. Анрила сильно меньше в Украине, ибо большинство клепает мобилки, так что делайте для себя выводы».

Лолитка @ZeeGull, выпускник ФИВТа, 2,5 года в геймдеве


Дискретные структуры

Графы, стеки, очереди. Данные — это одни из самых важных наших инструментов. Если хорошо оперируем ими, то код работает быстро и его легко поддерживать и расширять. Хорошо развивает воображение, помогает построить математическую модель, чтоб с ней работать. Модель поведения персонажа: спокоен ли, находится в поиске цели или же в бою; внутриигровая карта с навигатором; иерархия в клане или альянсе. В основе всего этого — идеи дискретных структур.


Алгоритмы

По началу кажутся немного скучными, но со временем обрастают сложностью и становятся интереснее. За всеми алгоритмами сортировки, деревьями и генетическими алгоритмами нам машет ручкой теория игр. Там рассматриваются базовые концепции ИИ в играх. Знания алгоритмов нам пригодятся при оптимизации — считать вычислительную сложность алгоритма, чтоб всё было чётко и быстро.


Компоненты программной инженерии

Это не один предмет, а целая группа, что ведётся по одному за семестр, начиная со второго курса и аж до конца обучения. Покрывает очень большой пласт нужных нам знаний, а конкретнее весь цикл создания ПО. От методологий и моделирования до тестирования и отладки. Помогает наладить работу в коллективе, не теряешься в этом потоке, а уже знаешь, что и как делать.


Базы данных

Достаточно полезная штука. Узнаете как работают базы данных, и как работать с ними, принципы защиты и проектирования БД. Пригодится везде, где мы храним данные игрока. От таблицы лидербордов в «Тетрисе» до миллионов аккаунтов в ММО по типу World of Warcraft. Даже в сугубо синглплеерных проектах иногда проскакивает SQLite. 


Архитектура ПО

На кривой архитектуре далеко не уплывешь — сложно будет поддерживать и расширять функционал. Чем крупнее проект, тем больнее. Тут грех не упомянуть Ждалкер и XRay Engine. У кого не вылетал Сталкер, тот не играл в Сталкер. Исходники выложили в сеть и оказалось, по качеству они недалеко ушли от курсача того самого одногруппника, что делает всё в последнюю ночь. Копипаст, опечатки и много другого. До нас дошла лишь обрезанная часть Сталкера, остальное же убрали по причине очень трудной расширяемости и тучи багов. С хорошей архитектурой копипаста и мест, где можно ошибиться, было бы в разы, может даже в десятки раз меньше.


Разработка игровых приложений

За этим мы сюда и пришли. Предмет, что собственно и послужил причиной написания этого поста. Рассматривается широкий спектр тем: от геймдизайна и искусственного интеллекта до архитектуры и сетей. Завершается этот курс проектной работой под менторством преподавателя, что уже 8 лет работает в индустрии игр. Но для начала нам нужна уверенная база знаний. И выстраиваем мы её на протяжении первых двух–трёх курсов в универе.

Канал в Телеграме


Ещё могут пригодиться компьютерная графика и защита программ и данных, но в меньшей мере. Движки в 90% случаев берут всю работу по графике на себя, и особо в детали вникать не нужно, чтобы разрабатывать игры. А защита программ и данных может пригодиться для защиты ваших серверов и БД. Но в самой игре почти нечего шифровать.

Более узкие специальности

Кодзима (гений)

Геймдизайнер

Есть в каждом проекте и чаще всего работает в более творческом ключе: пишет сценарий, работает с сеттингом и художественным оформлением. Одна из целей геймдизайнера — предугадывать и контролировать ощущения игрока. Тут помимо прочего может пригодиться и теорвер. С его помощью можно сбалансировать плотность событий, темп самой игры. Настроить динамику и кривую сложности. Также на рандоме базируется очень много игр: попадания в пошаговых тактиках типа XCOM’а, распределение лута в батл-роялях, шанс выпадания шмотки из ящика… Просчитать это и сбалансировать — задача геймдиза и команды по балансу. Но должность геймдизайнера не ограничивается этим. Подробнее можете узнать в  чатике по геймдизайну.


Разработчик движка

Почти каждая игра начинается с движка: Unity, Unreal, Godot… Он выступает этаким скелетом, на который мы наслаиваем свои механики, модели, текстуры, звуки — своё видение игры. Инди-студии чаще всего пользуются уже готовыми движками, а конторы покрупнее часто пишут свои.

«Разработчик движков это очень узкая профессия. Где сейчас найти компанию, которая делает свой движок? Кроме огромных ААА и мелких, которые бредят “проприетарные движки нас сильно ограничивают”».

Георгий Исаченко, препод на ФИВТе, 8 лет в геймдеве

Чтобы заниматься созданием движка или созданием игры с 0 без движка, надо уметь работать с компьютером на низком уровне, чтобы была хорошая оптимизация и игра летала даже на слабых ПК. Тут помогут знания из архитектуры компьютера, чтобы понимать, как устроен процессор. Как распределять нагрузку между процессором и видеокартой. Помогает при работе с OpenGL, DirectX, Vulcan. Они выступают такой себе прослойкой между движком и видеокартой. С их помощью мы визуализируем нашу игру.

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

«Разработчик движка обычно должен шарить разработку движков, как ни странно. Лучше понимать архитектуру, лучше уметь в оптимизацию, лучше разбираться в хитрых алгоритмах и структурах».

Георгий Исаченко, препод на ФИВТе, 8 лет в геймдеве

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

«Точно нужно чтобы люди понимали из чего всё состоит, могли разобрать или собрать».

Ник @mwstw, выпускник ФИВТа, 2 года в геймдеве


Заключительное слово

Всё вышесказанное не обязательно для того, чтобы делать игры. Но с этими знаниями можно сделать свои игры намного интереснее и круче, ограничиваясь только своим воображением, а не знаниями. Есть ещё много чего, что не покрывает универ. Что предстоит выучить самим. Но раз вы учитесь на ФИВТе, то берите от него по максимуму.


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

Для младшекурсников я бы посоветовал сконцентрироваться на 1-2 курсе на, скажем так, ванильном Computer Science и не стараться сразу запихивать в себя Unity\UE - хорошая инвестиция в фундамент быстро окупится».

Артём Коротенко, препод на ФИВТе, 8 лет в геймдеве


«Акцентировать внимание только на вещах, которыми часто пользуешься — не всегда лучшая идея. Чем больше знаешь, тем больше твой кругозор и как следствие — больше вещей можешь использовать в своих креативных изысканиях, знаешь что и где искать. Чем больше знаешь о смежных профессиях и процессах, чем лучше ты разбираешься непосредственно в том, с чем работаешь, тем легче общаться с людьми, улучшается взаимодействие в команде. Мы как бы прокачиваем свой креатив, глубину понимания вещей и эффективность работы в команде одновременно, а значит — подходим ещё на один шаг ближе к лучшему результату».

Chak @Chakaramba, студент ФИВТа, 2 года в геймдеве


Дерзайте. Учите. Живите. Любите. КПИте.

Текст написал Костя @gazinaft специально для ФИВТonline.

Report Page