SlideShare a Scribd company logo
1 of 19
Three! Two! One! Fight!
Fighting Game with UE4
Андрей Дьяков
Position: Lead Engineer
Mail: andrey.dyakov@sperasoft.com
Об авторе
Крупнейшая Game Developing
компания в Восточной
Европе
Более 250 сотрудников
Основана в 2004
О компании Sperasoft
Почему Unreal Engine 4?
# 20 летний опыт разработки
# Открытый исходный код
# Одна из лучших графических систем
# Стоимость
Почему Fighting?
# Комплекс взаимосвязанных задач
# Способы решения в UE4
# Популярность MKX у сотрудников
Sperasoft =)
С чего нужно начинать разработку?
# Определение специфических требований
# Анализ ключевых систем игры
# Подбор технологического стэка
# Составление грубого плана разработки
# Поиск «плейсхолдерного» арта
Ключевые системы жанра Fighting
# Система Рукопашного Боя
# Система Анимаций
# Распознавание Комбинаций
и..
# Графон =)
Необходимые подсистемы движка
# Анимационная подсистема – Persona
# Ретаргетинг анимаций и скелетов
# Анимационные Монтажи и События
# Игровая логика – Gameplay Framework
# Гибкая архитектура
# Client-Server
# ООП и КОП вместе
Ретаргетиг анимаций и скелетов
Система рукопашного боя
# Пересечение Капсул Персонажей
# Коллизии Оружия
# Анимационные События
Работа с анимациями
# Movement Animations
# Combat Moves Animations
Locomotion Statemachine
Animation Montage
Требования к распознаванию комбинаций
# Строгий порядок нажатий
# Одновременные нажатия
# Интервал нажатий < 250 ms
# 12 кнопок геймпада
# Неограниченная длина комбинации
# Удобство заполнения
Распознавание комбинаций
Cпособы распознавания:
# Строковый паттерн:
“←→XA→”; “↓→ XXY”; “← BYBXA”;
# Древовидные cостояния:
Распознавание Комбинаций
Реализованный способ
EControlButtons FSequence
На чем писать?
Доступные в Unreal Engine 4 языки
программирования:
# C++ or UE4 C++
# Blueprint Graph
и…
# С# – https://mono-ue.github.io/
Диаграмма классов Fighting Game
Спасибо за внимание!
Вопросы!?

More Related Content

Similar to Andrey Dyakov, Lead Engineer, Sperasoft

Software engineering. Введение в специальность. Обзор
Software engineering. Введение в специальность. ОбзорSoftware engineering. Введение в специальность. Обзор
Software engineering. Введение в специальность. ОбзорPavel Egorov
 
Unreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent ShowcasesUnreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent ShowcasesDevGAMM Conference
 
Project migration while changing publisher: saving time and data
Project migration while changing publisher: saving time and dataProject migration while changing publisher: saving time and data
Project migration while changing publisher: saving time and dataDevGAMM Conference
 
Что знают геймдизайнеры
Что знают геймдизайнерыЧто знают геймдизайнеры
Что знают геймдизайнерыAlexey Kopylov
 
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”HYS Enterprise
 
Ihor Kopiov: Як знайти роботу гейм-дизайнеру, без досвіду роботи. Практичний ...
Ihor Kopiov: Як знайти роботу гейм-дизайнеру, без досвіду роботи. Практичний ...Ihor Kopiov: Як знайти роботу гейм-дизайнеру, без досвіду роботи. Практичний ...
Ihor Kopiov: Як знайти роботу гейм-дизайнеру, без досвіду роботи. Практичний ...Lviv Startup Club
 
Сын Питча: как поднять деньги на игру мечты дважды / Кирилл Золовкин (Heart C...
Сын Питча: как поднять деньги на игру мечты дважды / Кирилл Золовкин (Heart C...Сын Питча: как поднять деньги на игру мечты дважды / Кирилл Золовкин (Heart C...
Сын Питча: как поднять деньги на игру мечты дважды / Кирилл Золовкин (Heart C...DevGAMM Conference
 
Машинное обучение для ваших игр и бизнеса
Машинное обучение для ваших игр и бизнесаМашинное обучение для ваших игр и бизнеса
Машинное обучение для ваших игр и бизнесаromovpa
 
Разработка ПО. Введение в специальность 1
Разработка ПО. Введение в специальность 1Разработка ПО. Введение в специальность 1
Разработка ПО. Введение в специальность 1Pavel Egorov
 

Similar to Andrey Dyakov, Lead Engineer, Sperasoft (10)

Indie game development for UE
Indie game development for UEIndie game development for UE
Indie game development for UE
 
Software engineering. Введение в специальность. Обзор
Software engineering. Введение в специальность. ОбзорSoftware engineering. Введение в специальность. Обзор
Software engineering. Введение в специальность. Обзор
 
Unreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent ShowcasesUnreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent Showcases
 
Project migration while changing publisher: saving time and data
Project migration while changing publisher: saving time and dataProject migration while changing publisher: saving time and data
Project migration while changing publisher: saving time and data
 
Что знают геймдизайнеры
Что знают геймдизайнерыЧто знают геймдизайнеры
Что знают геймдизайнеры
 
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
 
Ihor Kopiov: Як знайти роботу гейм-дизайнеру, без досвіду роботи. Практичний ...
Ihor Kopiov: Як знайти роботу гейм-дизайнеру, без досвіду роботи. Практичний ...Ihor Kopiov: Як знайти роботу гейм-дизайнеру, без досвіду роботи. Практичний ...
Ihor Kopiov: Як знайти роботу гейм-дизайнеру, без досвіду роботи. Практичний ...
 
Сын Питча: как поднять деньги на игру мечты дважды / Кирилл Золовкин (Heart C...
Сын Питча: как поднять деньги на игру мечты дважды / Кирилл Золовкин (Heart C...Сын Питча: как поднять деньги на игру мечты дважды / Кирилл Золовкин (Heart C...
Сын Питча: как поднять деньги на игру мечты дважды / Кирилл Золовкин (Heart C...
 
Машинное обучение для ваших игр и бизнеса
Машинное обучение для ваших игр и бизнесаМашинное обучение для ваших игр и бизнеса
Машинное обучение для ваших игр и бизнеса
 
Разработка ПО. Введение в специальность 1
Разработка ПО. Введение в специальность 1Разработка ПО. Введение в специальность 1
Разработка ПО. Введение в специальность 1
 

More from White Nights Conference

Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)
Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)
Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)White Nights Conference
 
Artur Shakalis, Vladimir Tomko, Odnoklassniki
Artur Shakalis, Vladimir Tomko, OdnoklassnikiArtur Shakalis, Vladimir Tomko, Odnoklassniki
Artur Shakalis, Vladimir Tomko, OdnoklassnikiWhite Nights Conference
 
David Reichelt, Color Switch Productions, Inc.
David Reichelt, Color Switch Productions, Inc.David Reichelt, Color Switch Productions, Inc.
David Reichelt, Color Switch Productions, Inc.White Nights Conference
 

More from White Nights Conference (20)

Kirill Zolovkin, OctoBox Interactive
Kirill Zolovkin, OctoBox InteractiveKirill Zolovkin, OctoBox Interactive
Kirill Zolovkin, OctoBox Interactive
 
Leonid Eletskih, Adjust
Leonid Eletskih, AdjustLeonid Eletskih, Adjust
Leonid Eletskih, Adjust
 
Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)
Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)
Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)
 
Valeria Andrianova, JetBrains
Valeria Andrianova, JetBrainsValeria Andrianova, JetBrains
Valeria Andrianova, JetBrains
 
Sven Erik Knop, Perforce
Sven Erik Knop, Perforce Sven Erik Knop, Perforce
Sven Erik Knop, Perforce
 
Mike Hines, Amazon
Mike Hines, AmazonMike Hines, Amazon
Mike Hines, Amazon
 
Artem Petukhov, Pixonic
Artem Petukhov, PixonicArtem Petukhov, Pixonic
Artem Petukhov, Pixonic
 
Vasiliy Sabirov, devtodev
Vasiliy Sabirov, devtodev	Vasiliy Sabirov, devtodev
Vasiliy Sabirov, devtodev
 
Artur Shakalis, Vladimir Tomko, Odnoklassniki
Artur Shakalis, Vladimir Tomko, OdnoklassnikiArtur Shakalis, Vladimir Tomko, Odnoklassniki
Artur Shakalis, Vladimir Tomko, Odnoklassniki
 
Ivan Belousov, HypeTrain Digital
Ivan Belousov, HypeTrain DigitalIvan Belousov, HypeTrain Digital
Ivan Belousov, HypeTrain Digital
 
Aleksey Rehlov, Creative Mobile
Aleksey Rehlov, Creative MobileAleksey Rehlov, Creative Mobile
Aleksey Rehlov, Creative Mobile
 
Alexander Neberekutin, DevGame
Alexander Neberekutin, DevGame	Alexander Neberekutin, DevGame
Alexander Neberekutin, DevGame
 
Konrad Czernik, Techland
Konrad Czernik, Techland	Konrad Czernik, Techland
Konrad Czernik, Techland
 
Christian Corsano, Io Interactive
Christian Corsano, Io InteractiveChristian Corsano, Io Interactive
Christian Corsano, Io Interactive
 
Evgeniy Kozlov, Twitter
Evgeniy Kozlov, Twitter	Evgeniy Kozlov, Twitter
Evgeniy Kozlov, Twitter
 
David Reichelt, Color Switch Productions, Inc.
David Reichelt, Color Switch Productions, Inc.David Reichelt, Color Switch Productions, Inc.
David Reichelt, Color Switch Productions, Inc.
 
Keenan Timko, MoPub (Twitter)
Keenan Timko, MoPub (Twitter) Keenan Timko, MoPub (Twitter)
Keenan Timko, MoPub (Twitter)
 
Anna Krizhanovskaya, Playrix
Anna Krizhanovskaya, Playrix	Anna Krizhanovskaya, Playrix
Anna Krizhanovskaya, Playrix
 
Natalie Portier, Appodeal
Natalie Portier, Appodeal	Natalie Portier, Appodeal
Natalie Portier, Appodeal
 
Maxim Babichev, VK.com
Maxim Babichev, VK.comMaxim Babichev, VK.com
Maxim Babichev, VK.com
 

Andrey Dyakov, Lead Engineer, Sperasoft

Editor's Notes

  1. Переходим к следующему ключевому моменту – работа с анимациями. Чтобы анимации можно было правильно использовать с рукопашной системой, их надо систематизировать. Я поделил их на два ключевых типы: анимации передвижения и анимации ударов. Анимации передвижения используются в специальном анимационном блупринте, который следит за действиями персонажа и правильнм образом это отражает. Для этого конечно же используются стэйт машины – на экране пример обычного классического Locomotion. И теперь самое интересное, у нас есть отрезки анимаций ударов, из которых мы хотим сделать последовательности и динамически воспроизводить их в процессе боя. При этом мы наверняка хотим, чтобы назначать удары персонажам было бы максимальо просто, без необходимости менять анимблупринт. Для этого идеально подходит уже упомянутые Animations Montages. Мы лишь добавляем для них слот между узлом финальной позы и стейтмашиной locomotion. После этого в коде воспроизводим тот или иной монтаж.