Upload
tech-talks-nsu
View
74
Download
3
Embed Size (px)
Citation preview
Как сделать Dota-like игру
Семён Корзунов
ex-Nival, senior software developer
Кто я?
• Выпускник АФТИ ФФ НГУ 2007 года
• Работал в SoftLab-NSK (Дальнобойщики 3)
• Последние 4 года – старший разработчик в Nival (Москва)
Кто играл в Dota?
А кто играл в LoL?
А в Prime World?
Игровая механика
• 3 дороги
• 10 игроков
• Герои развиваются во время игровой сессии
О чем будем говорить
• Как связать 10 игроков (тонкие или толстые клиенты)
• Игровая модель
• С чего начать разработку прототипа
Тонкий или толстый клиент?
• Чем различаются подходы?
• Толстый клиент экономит «серверные деньги»
• Смешанный подход: «почти» peer-to-peer
Игровая модель
• У всех 10 игроков игровая модель одинакова
• Игровая модель легко передается по сети в случае реконнекта
• Все 10 игроков видят игровую модель по-разному
• Разделение клиента на игровую модель и ее клиентскую обработку
С чего начать разработку игровой модели?
Карта
Карта
• Художественный рельеф
• Карта проходимости
• Карта высот
• Fog of war
Юнит
• Размер
• Высота
• Обзор
• Положение и поворот
• Игровые характеристики
Динамика игры
• Понятие “step”
• Как игроки влияют на мир
• Синхронизация степов между клиентами
• Как реализовать динамику мира
Понятие state machine и behavior для юнитов
• Каждый юнит – это state machine
• Юниты обладают стеком поведений
• Чем отличается герои от друг
• Как можно это реализовать?
Pathfinding
• Что это такое
• Pathfinding A-star
• Варианты подешевле
Понятие collision
• Возникает при конфликте путей
• Как его обрабатывать?
• Понятие «запереть»
Как заполнить игровую модель
• Необходимость заполнять игровые данные
• Понятие редактора игровых данных
• Как «оживить» юнитов
• Насколько дизайнер игр может определять мир
Запускаем прототип
• Игровая модель – Карта – Игроки – Динамика и жители карты
• Поведение юнитов • Pathfinding и коллизии • Создание карты и ее наполнение игровыми
данными • Запуск в тестовом режиме и с участием
сервера
Что я пропустил?
• Рендер и 3d сцена
• Звуки и музыка
• Юзер Интефейс (UI)
• Как входить в игру (Lobby)
• Реализация игровой механики
• Реализация сетевого уровня
Спасибо за внимание!
Семён Корзунов
ex-Nival, senior software developer