Профессия Gameplay программиста. Особенности работы на ААА проекте презентация

Содержание

Слайд 2

ABOUT ME: ALEXANDER BALAKSHIN

Старший инженер программист в компании Sperasoft, a Keywords studio
В игровой

индустрии с 2014 года
Имеется опыт работы со следующими технологиями: Unity, Unreal engine, Anvil, Havok, Wwise
С мая 2016 года по июль 2018 оказывал значительный вклад в сезонные обновления Rainbow six: siege сначала в качестве геймплей программиста, а в последствии как лида геймплей команды.

ABOUT ME: ALEXANDER BALAKSHIN Старший инженер программист в компании Sperasoft, a Keywords studio

Слайд 3

О компании

14 лет на рынке gamedev
Основана в 2004 году: 5 офисов в 3

странах

400+
Профессионалов в команде

60+
Проектов, включая ААА игры

О компании 14 лет на рынке gamedev Основана в 2004 году: 5 офисов

Слайд 4

Sperasoft является частью Keywords Studios

Международного поставщика технических услуг для индустрии глобальных видеоигр

Sperasoft является частью Keywords Studios Международного поставщика технических услуг для индустрии глобальных видеоигр

Слайд 5

Кто делает игру

Кто делает игру

Слайд 6

Современная ААА игра это труд сотен специалистов из самых различных направлений

Современная ААА игра это труд сотен специалистов из самых различных направлений

Слайд 7

Кто делает игру

Production:
Game designers
Level designers

Art:
Concept artists
Level and environment artists
Character artists
Technical artists
Animators
etc

Audio designers
Community managers
Analytics

Management
Project

managers
Team leads
Technical, art and game directors

Кто делает игру Production: Game designers Level designers Art: Concept artists Level and

Слайд 8

Кто делает игру: engineering

System engineers
Render engineer
Network engineers
Physics programmers
Animation programmers
Tools engineers
UI engineers
QA engineer
….
Gameplay engineer

Кто делает игру: engineering System engineers Render engineer Network engineers Physics programmers Animation

Слайд 9

Gameplay engineer

Обязанность геймплей-инженера – связать все созданные системы и ресурсы воедино, чтобы получить

игру.

Gameplay engineer Обязанность геймплей-инженера – связать все созданные системы и ресурсы воедино, чтобы получить игру.

Слайд 10

GAMEPLAY ENGINEER: WHAT HE/SHE is Actually doing

Enemies and NPC (AI)
Quest systems
Mini-games
….
Everything that makes

game a game ☺

Player control and movement
Weapons (hitscan, projectiles)
Various buffs and debuffs
Traps
Vehicles

GAMEPLAY ENGINEER: WHAT HE/SHE is Actually doing Enemies and NPC (AI) Quest systems

Слайд 11

Какие навыки нужны

Какие навыки нужны

Слайд 12

Какие навыки нужны: АНГЛИЙСКИЙ ЯЗЫК

Большинство книг, ресурсов и документации доступны только на английском.
Большие

проекты делаются усилиями многонациональных команд, где данный язык — универсальное и порой единственное средство коммуникации.

Какие навыки нужны: АНГЛИЙСКИЙ ЯЗЫК Большинство книг, ресурсов и документации доступны только на

Слайд 13

Какие навыки нужны: Фундаментальные науки

Как правило игра — это в той или иной

степени математическая модель
Линейная алгебра — необходимо для определения положения и ориентации в пространстве
Физика — когда встроенного физического движка недостаточно
Теория вероятности
Прочие разделы: численные методы, теория сигналов и т.д. как также могут оказать полезными.

Какие навыки нужны: Фундаментальные науки Как правило игра — это в той или

Слайд 14

Какие навыки нужны: ЛИНЕЙНАЯ АЛГЕБРА (ПРИМЕР)

O – сопло огнемета
d – направление
L – максимальная

дальность
α – угол раствора «раструба»
A1, A2, … AN – координаты врагов

 

Какие навыки нужны: ЛИНЕЙНАЯ АЛГЕБРА (ПРИМЕР) O – сопло огнемета d – направление

Слайд 15

Какие навыки нужны: ЯЗЫКИ программирования

Производительность – близость к «железу», контроль доступа к ресурсам
Открытость

стандарта, наличие различных компиляторов, в том числе и под главные целевые платформы (PC, XONE, PS4)
Мультипарадигмальность (ООП, обобщенное программирование, функционально программирование)
Большое количество библиотек и различных фреймворков
Де-факто стандарт в индустрии

Какие навыки нужны: ЯЗЫКИ программирования Производительность – близость к «железу», контроль доступа к

Слайд 16

Какие навыки нужны: COMPUTER ARCHITECTURE

При разработке ААА игр большое внимание уделяется производительности.
Будет

хорошо, если вы будете в курсе про data и instruction cache, а также cache misses
Будет прекрасно, если вы сможете в assembly.
НО вам как минимум стоит иметь представление о том сколько «инструкций» стоит за той или иной операцией

Какие навыки нужны: COMPUTER ARCHITECTURE При разработке ААА игр большое внимание уделяется производительности.

Слайд 17

Какие навыки нужны: COMPUTER ARCHITECTURE (Пример)

 

 

Какие навыки нужны: COMPUTER ARCHITECTURE (Пример)

Слайд 18

Какие навыки нужны: game engines

Познакомьтесь хотя бы с одним из доступных игровых движков…

Какие навыки нужны: game engines Познакомьтесь хотя бы с одним из доступных игровых движков…

Слайд 19

Какие навыки нужны: game engines

…и попутно прочтите эту книгу

Всеобъемлющий труд затрагивающий каждый аспект

разработки игр, начиная с основ.
Автор – один из участников разработки серии игра Uncharted и Last Of Us
Является хорошим подспорьем при работе с проприетарными движками
Позволяет посмотреть на различные подходы к разработке

Какие навыки нужны: game engines …и попутно прочтите эту книгу Всеобъемлющий труд затрагивающий

Слайд 20

Какие навыки нужны: Communication is the key

Всегда старайтесь максимально четко понимать требования.
Ищите

разные подходы к решению задачи — не только со стороны кода, но и посредством изменения различных данных (анимаций, эффектов, и т.д.)
Не стесняйтесь задавать вопросы коллегам.

Какие навыки нужны: Communication is the key Всегда старайтесь максимально четко понимать требования.

Слайд 21

Особенности ааа проекта

Особенности ааа проекта

Слайд 22

{


Прототипирование

Производство

Полировка

Особенности ааа проекта: 3П

{ 3П Прототипирование Производство Полировка Особенности ааа проекта: 3П

Слайд 23

Особенности ааа проекта: ПроТОТИПИРОВАНИЕ

Главная цель – доказать работоспособность и играбельность идеи и снизить

риски переделок во время следующих фаз
Проверка на производительность
Максимально короткие итерации
Block out или placeholder’s в качестве ассетов
Как правило все сделанное во время прототипа выбрасывается
В конце фазы можно задуматься об архитектуре

Особенности ааа проекта: ПроТОТИПИРОВАНИЕ Главная цель – доказать работоспособность и играбельность идеи и

Слайд 24

Особенности ааа проекта: ПроТОТИПИРОВАНИЕ (ПРИМЕР)

Допустим вы делаете ловушку-приманку, которая дублирует игрока в PvP

игре
Идея доказывает свою играбельность при простом подходе (скопировать игрока), но есть проблемы с производительностью (анимации, тени)
Нужно найти баланс между достоверностью и перфомансом

Особенности ааа проекта: ПроТОТИПИРОВАНИЕ (ПРИМЕР) Допустим вы делаете ловушку-приманку, которая дублирует игрока в

Слайд 25

Особенности ааа проекта: ПРОИЗВОДСТВО

Реализация утвержденного функционала. Всех основных и support механик.
Качество кода и

архитектура имеет значение
Появляются финальные ассеты
Major bugs fixing
Возможны изменения. Порой весьма серьезные

Особенности ааа проекта: ПРОИЗВОДСТВО Реализация утвержденного функционала. Всех основных и support механик. Качество

Слайд 26

Особенности ааа проекта: ПОЛИРОВКА

Сервисный функционал (аналитика)
Major and minor bugs fixing

Особенности ааа проекта: ПОЛИРОВКА Сервисный функционал (аналитика) Major and minor bugs fixing

Слайд 27

Особенности ааа проекта: готовность к изменениям

Требования к задаче или фиче могут меняться радикально

в том числе и прямо накануне релиза
Не переусложняйте (Don’t overengineer)
Старайтесь проектировать свои изменения так, чтобы их можно было максимально быстро и безболезненно убрать из проекта
Не принимайте все близко к сердцу.

Особенности ааа проекта: готовность к изменениям Требования к задаче или фиче могут меняться

Слайд 28

Особенности ааа проекта: DATA DRIVEN DEVELOPMENT

В типичном AAA проекте гигантский объем данных.
Из

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

Особенности ааа проекта: DATA DRIVEN DEVELOPMENT В типичном AAA проекте гигантский объем данных.

Слайд 29

Особенности ааа проекта: ПРОПРИЕТАРНЫЕ ТЕХНОЛОГИИ

В AAA проектах используются свои проприетарные игровые движки и

технологии
Иногда они становятся доступны массовому рынку (Unreal engine, CryEngine)
Минусы:
Стабильность и удобство могут отставать от рыночных аналогов
Плюсы
Можно докопаться до самых корней

Особенности ааа проекта: ПРОПРИЕТАРНЫЕ ТЕХНОЛОГИИ В AAA проектах используются свои проприетарные игровые движки

Слайд 30

Особенности ааа проекта: THIRD PARTY РЕШЕНИЯ

Несмотря на максимальное количество внутристудийных технологий, иногда весьма

активно используются сторонние решения и инструменты
Havoc, PhysX
WWISE
Scaleform
Это позволяет сгладить кривую обучения у опытных специалистов, когда они приходят на новый проект

Особенности ааа проекта: THIRD PARTY РЕШЕНИЯ Несмотря на максимальное количество внутристудийных технологий, иногда

Слайд 31

Особенности ааа проекта: ЦЕЛЕВЫЕ ПЛАТФОРМЫ

Основными платформами являются консоли текущего поколения и ПК
Большую часть

выручки дают консоли (PS4 – 50%, XONE – 40%)
Оптимизация идет прежде всего под эти платформы
Это накладывает серьезные ограничения (бюджеты по памяти, ресурсам и прочее)

Особенности ааа проекта: ЦЕЛЕВЫЕ ПЛАТФОРМЫ Основными платформами являются консоли текущего поколения и ПК

Слайд 32

Особенности ааа проекта: coding

Следуйте code conventions (иногда, к сожалению, не формализованным)
Не бойтесь работать

с большой кодовой базой. Используйте IntelliSense, VAssistX и полнотекстовый поиск.
Не будьте перфекционистом – найдите баланс между «красотой» реализации и ее сроками, а также сложностью поддержки
Отмечайте технический долг в коде (//TODO)

Особенности ааа проекта: coding Следуйте code conventions (иногда, к сожалению, не формализованным) Не

Слайд 33

Особенности ааа проекта: LEGACY

Как правило вам предстоит работать с уже существующей кодовой базой
Это

накладывает некоторые ограничения на возможные решения (в особенности в live проекте)
При работе с ней, постарайтесь связаться с авторами
При внесении изменений, согласуйте предварительно архитектуру

Особенности ааа проекта: LEGACY Как правило вам предстоит работать с уже существующей кодовой

Слайд 34

Особенности ааа проекта: code review

Используйте специализированные решения: SWARM, Code collaborator, Crucible
Пишите развернутое описание

измений.
Старайтесь, чтобы в ревью было минимум 2 человека. Не стесняйтесь добавлять больше людей при необходимости

Особенности ааа проекта: code review Используйте специализированные решения: SWARM, Code collaborator, Crucible Пишите

Слайд 35

Особенности ааа проекта: работа с qa engineers

Просите проверять не только реализованный функционал, но

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

Особенности ааа проекта: работа с qa engineers Просите проверять не только реализованный функционал,

Слайд 36

Особенности ааа проекта: LOG your work

Работайте над задачами, требования по которым оформлены письменно

(mail, documentation, sharepoint, etc.)
Используйте таск треккер (JIRA, redmine, etc.) Фиксируйте свой прогресс и оставляйте при необходимости комментарии в задачах.
Старайтесь поддерживать документацию

Особенности ааа проекта: LOG your work Работайте над задачами, требования по которым оформлены

Слайд 37

Особенности ааа проекта: нетоКсичность

Уважайте труд ваших коллег. Равно как текущих, равно так и

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

Особенности ааа проекта: нетоКсичность Уважайте труд ваших коллег. Равно как текущих, равно так

Слайд 38

Особенности ааа проекта: HAVE FUN!

Особенности ааа проекта: HAVE FUN!

Имя файла: Профессия-Gameplay-программиста.-Особенности-работы-на-ААА-проекте.pptx
Количество просмотров: 136
Количество скачиваний: 0