21
Как сделать Dota-like игру Семён Корзунов ex-Nival, senior software developer

Tech Talks @NSU: Как сделать Dota-like игру

Embed Size (px)

Citation preview

Page 1: Tech Talks @NSU: Как сделать Dota-like игру

Как сделать Dota-like игру

Семён Корзунов

ex-Nival, senior software developer

Page 2: Tech Talks @NSU: Как сделать Dota-like игру

Кто я?

• Выпускник АФТИ ФФ НГУ 2007 года

• Работал в SoftLab-NSK (Дальнобойщики 3)

• Последние 4 года – старший разработчик в Nival (Москва)

Page 3: Tech Talks @NSU: Как сделать Dota-like игру

Кто играл в Dota?

Page 4: Tech Talks @NSU: Как сделать Dota-like игру

А кто играл в LoL?

Page 5: Tech Talks @NSU: Как сделать Dota-like игру

А в Prime World?

Page 6: Tech Talks @NSU: Как сделать Dota-like игру

Игровая механика

• 3 дороги

• 10 игроков

• Герои развиваются во время игровой сессии

Page 7: Tech Talks @NSU: Как сделать Dota-like игру

О чем будем говорить

• Как связать 10 игроков (тонкие или толстые клиенты)

• Игровая модель

• С чего начать разработку прототипа

Page 8: Tech Talks @NSU: Как сделать Dota-like игру

Тонкий или толстый клиент?

• Чем различаются подходы?

• Толстый клиент экономит «серверные деньги»

• Смешанный подход: «почти» peer-to-peer

Page 9: Tech Talks @NSU: Как сделать Dota-like игру

Игровая модель

• У всех 10 игроков игровая модель одинакова

• Игровая модель легко передается по сети в случае реконнекта

• Все 10 игроков видят игровую модель по-разному

• Разделение клиента на игровую модель и ее клиентскую обработку

Page 10: Tech Talks @NSU: Как сделать Dota-like игру

С чего начать разработку игровой модели?

Page 11: Tech Talks @NSU: Как сделать Dota-like игру

Карта

Page 12: Tech Talks @NSU: Как сделать Dota-like игру

Карта

• Художественный рельеф

• Карта проходимости

• Карта высот

• Fog of war

Page 13: Tech Talks @NSU: Как сделать Dota-like игру

Юнит

• Размер

• Высота

• Обзор

• Положение и поворот

• Игровые характеристики

Page 14: Tech Talks @NSU: Как сделать Dota-like игру

Динамика игры

• Понятие “step”

• Как игроки влияют на мир

• Синхронизация степов между клиентами

• Как реализовать динамику мира

Page 15: Tech Talks @NSU: Как сделать Dota-like игру

Понятие state machine и behavior для юнитов

• Каждый юнит – это state machine

• Юниты обладают стеком поведений

• Чем отличается герои от друг

• Как можно это реализовать?

Page 16: Tech Talks @NSU: Как сделать Dota-like игру

Pathfinding

• Что это такое

• Pathfinding A-star

• Варианты подешевле

Page 17: Tech Talks @NSU: Как сделать Dota-like игру

Понятие collision

• Возникает при конфликте путей

• Как его обрабатывать?

• Понятие «запереть»

Page 18: Tech Talks @NSU: Как сделать Dota-like игру

Как заполнить игровую модель

• Необходимость заполнять игровые данные

• Понятие редактора игровых данных

• Как «оживить» юнитов

• Насколько дизайнер игр может определять мир

Page 19: Tech Talks @NSU: Как сделать Dota-like игру

Запускаем прототип

• Игровая модель – Карта – Игроки – Динамика и жители карты

• Поведение юнитов • Pathfinding и коллизии • Создание карты и ее наполнение игровыми

данными • Запуск в тестовом режиме и с участием

сервера

Page 20: Tech Talks @NSU: Как сделать Dota-like игру

Что я пропустил?

• Рендер и 3d сцена

• Звуки и музыка

• Юзер Интефейс (UI)

• Как входить в игру (Lobby)

• Реализация игровой механики

• Реализация сетевого уровня

Page 21: Tech Talks @NSU: Как сделать Dota-like игру

Спасибо за внимание!

Семён Корзунов

ex-Nival, senior software developer