Докладчик: Пётр Камышников, глава команды интерфейса...

33
Камышников Пётр руководитель команды интерфейсов www.mail.ru Интерфейсы в Аллодах Онлайн
  • Upload

    -
  • Category

    Career

  • view

    360
  • download

    1

description

Процесс производства интерфейсов. Составляющие. Последовательная реализация. Аддоны. Примеры интересных задач. Цифры.

Transcript of Докладчик: Пётр Камышников, глава команды интерфейса...

Page 1: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru

Камышников Пётрруководитель команды интерфейсов

Интерфейсы в Аллодах Онлайн

Page 2: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 2

MMO RPG Аллоды Онлайн

Page 3: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 3

MMO RPG Аллоды Онлайн

Page 4: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 4

MMO RPG Аллоды Онлайн

Page 5: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 5

MMO RPG Аллоды Онлайн

Page 6: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 6

Множество людей - игроков

Сервер

Клиент Клиент ... Клиент

Page 7: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 7

Интерфейс в развитии игрока

Начало игры Высокий уровень

Page 8: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 8

Множество людей - разработчиков

• Дизайнеры• Художники• Программисты• QA

Page 9: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 9

Дизайнер и художник

Анализ Концепт Дизайн Создание аддона

Концепт ДизайнОтрисовкаэлементов

Page 10: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 10

Аддон – что это?

Ресурсы

Шаблоны виджетов Скрипты LUA

Изображения Локализируемые тексты

Экземпляры

Page 11: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 11

Элементы аддона - виджеты

• AddonDesc• MainForm• Widget– Panel– TextView– Button– EditLine– Container

– Всего виджетов: 4982

Page 12: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 12

Типы аддонов

• Ingame• MainMenu• Tests• User mods

– Всего аддонов: 125

Page 13: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 13

States – области жизни аддонов

• System• PreMission• Mission• DeveloperState

Page 14: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 14

LUA – реализация игровой логики

• Версия: 5.0 (патч 5.0.3)• Также используется в:– Adobe Photoshop Lightroom– Baldur's Gate – Civilization V– Crysis– Diablo 3– S.T.A.L.K.E.R.– World of Warcraft

• Всего файлов: 470 (+321 QA)• Всего строк: 102,163 (+46,933 QA)

http://www.lua.org/

Page 15: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 15

Запуск игры - инициализация

Init

Create State

Create Addon

Create Widgets

Init LUA state (интерпретация скриптов, регистрация обработчиков сообщений)

Init GameSystem

Page 16: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 16

GameSystem

Менеджер объектов

Главный игрок

Имя, уровень Менеджеры

Контейнеры

Заклинания Питомец

Интерактивные объекты

Игроки

Корабли

Устройства

Менеджеры

Почта

Гильдия

Территориальные войны

Page 17: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 17

Объекты. Откуда брать?

Сервер Репликация Клиент

• Создаются• Уничтожаются• Содержат поля:• Примитивные• Классы• Контейнеры

Page 18: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 18

Создание и обработка сообщений

• Player.Mechanics.Stats.IntStats.Health.Value.Result

• DEFINE_EVENT( OnPlayerHealthChanged, Player, Mechanics, Stats, IntStats, Health, Value, Result)

• bool Player::OnHealthChanged( const Replica::OnPlayerHealthChanged ) {

… // логика}

• pEventProcessor->Register( this, OnHealthChanged, true );

Page 19: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 19

Объект в GameSystem

Init GameSystem

Init MainPlayer

Init MountsManager

Подписка на изменение списка скакунов

Подписка на изменение активного скакуна

Page 20: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 20

Поля объекта меняются

Список скакунов изменился

Создание объекта скакуна

Подписка на изменение полей

Отсылка EVENT_MOUNT_ADDED( mountId) в скрипт (в очередь сообщений)

Page 21: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 21

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

Очередь сообщений обрабатывается в MainLoop

Для всех States

Для всех Addons

Для всех Handlers

Передача управления скриптовому методу с параметрами

Page 22: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 22

Реализация логики дизайнером

• Вызов методов– local mountInfo = mount.GetInfo( mountId )

• Логика• Изменение виджетов– wtMountInfo:SetText( mountInfo.name )

Page 23: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 23

Сложные случаи

• Создание объектов• Модульные объекты• Простота vs Красота

Page 24: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 24

Иерархия объектов

InteractiveObject

Creature

Mob Player

MainPlayer

OtherPlayer

Device

Chest Stele UsableDevice

Cannon

Visor

Accelerator

Transport

Page 25: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 25

Сложный случай – создание объектов

Источники

•Реплика•Клиентская механика•Графический движокКлассы

реализаций

•InteractiveObject•Device•UsableDevice•Cannon

Page 26: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 26

Сложный случай – отслеживание позиции

Одногруппники• Рядом– Всё есть

• Далеко– Нет в графическом движке– Нет в клиентской механике

• Вне игры– Ничего нет

Page 27: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 27

Сложный случай – модульные объекты

Раньше:• Игрок– Характеристики– Здоровье– Умирает– Наносит урон другим игрокам и получает урон от них– Передвигается по земле

• Корабль– Умеет летать– Устройства– Наносит урон устройствам и кораблям, получает урон

Page 28: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 28

Ктулхи – великие и ужасные

• Здоровье• Умеет летать• Наносит урон устройствам и

кораблям, получает урон от устройств

• Умирает

Page 29: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 29

Наследование vs Агрегация

• Модульный объект AstralUnit– Компоненты:

• Health• Mortal• FlyController• Damage

– Всего базовых: 14• Модульный объект Player

– Компоненты:• Health• Mortal• PlayerMoveController• Damage

– Всего базовых: 20

Page 30: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 30

Сложный случай – игровые предметы

GameItem:• Ресурс шаблона• Игровой предмет в контейнере игрока• Аукцион• Лавка редкостей• Чат

Page 31: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 31

Простота vs Красота

• Красивая последовательность событий– Нанесение урона синхронно с анимацией– Запуск заклинаний моментален на клиенте

• Ограничение информации для пользователя• Простота доступа в скрипте• Оптимизация сообщений в скрипт• Оптимизация запросов на сервер– Фильтр ошибочных команд на сервер– Сокращение запросов к аукциону, лавке редкостей

Page 32: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

www.mail.ru 32

(c) baflyer http://allods.mail.ru/media.php?item=10338

Page 33: Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».

Камышников Пётрруководитель команды интерфейсов,

департамент клиентских игр[email protected]

СПАСИБО!

www.mail.ru

Mail.RuРазработчик игр и сервисов №1Крупнейший работодатель в отрасли

Работайте у нас[email protected]://corp.mail.ru/career/vacancies/voronezh