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

Содержание

Слайд 2

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

ABOUT ME: ALEXANDER BALAKSHIN

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

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

О компании 14 лет на рынке gamedev Основана в 2004

О компании

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

в 3 странах

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

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

Слайд 4

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

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

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

видеоигр
Слайд 5

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

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

Слайд 6

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

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

Слайд 7

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

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

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

Слайд 8

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

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

System engineers
Render engineer
Network engineers
Physics programmers
Animation programmers
Tools engineers
UI engineers
QA

engineer
….
Gameplay engineer
Слайд 9

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

Gameplay engineer

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

чтобы получить игру.
Слайд 10

GAMEPLAY ENGINEER: WHAT HE/SHE is Actually doing Enemies and NPC

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

Слайд 11

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

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

Слайд 12

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

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

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

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

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

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

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

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

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

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

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

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

 

Слайд 15

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

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

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

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

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

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

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

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

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

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

 

 

Слайд 18

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

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

Познакомьтесь хотя бы с одним из доступных

игровых движков…
Слайд 19

Какие навыки нужны: game engines …и попутно прочтите эту книгу

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

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

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

каждый аспект разработки игр, начиная с основ.
Автор – один из участников разработки серии игра Uncharted и Last Of Us
Является хорошим подспорьем при работе с проприетарными движками
Позволяет посмотреть на различные подходы к разработке
Слайд 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
Возможны изменения. Порой весьма серьезные
Слайд 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 проектах используются свои

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

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

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

Особенности ааа проекта: THIRD PARTY РЕШЕНИЯ Несмотря на максимальное количество

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

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

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

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

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

Основными платформами являются консоли текущего поколения и

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

Особенности ааа проекта: coding Следуйте code conventions (иногда, к сожалению,

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

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

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

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

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

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

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

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

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

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

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

Особенности ааа проекта: работа с qa engineers Просите проверять не

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

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

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

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

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

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

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

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

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

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

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

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

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

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