Камышников Пётрруководитель команды интерфейсовwww.mail.ruИнтерфейсы в Аллодах Онлайн
MMO RPG Аллоды Онлайнwww.mail.ru2
MMO RPG Аллоды Онлайнwww.mail.ru3
MMO RPG Аллоды Онлайнwww.mail.ru4
MMO RPG Аллоды Онлайнwww.mail.ru5
Множество людей - игроковwww.mail.ru6
Интерфейс в развитии игрокаНачало игрыВысокий уровеньwww.mail.ru7
Множество людей - разработчиковДизайнерыХудожникиПрограммистыQAwww.mail.ru8
Дизайнер и художникwww.mail.ru9
Аддон – что это?www.mail.ru10
Элементы аддона - виджетыAddonDescMainFormWidgetPanelTextViewButtonEditLineContainerВсего виджетов: 4982www.mail.ru11
Типы аддоновIngameMainMenuTestsUser modsВсего аддонов: 125www.mail.ru12
States – области жизни аддоновSystemPreMissionMissionDeveloperStatewww.mail.ru13
LUA – реализация игровой логикиВерсия:5.0 (патч 5.0.3)Также используется в:Adobe Photoshop LightroomBaldur's Gate Civilization VCrysisDiablo 3S.T.A.L.K.E.R.World of WarcraftВсего файлов: 470 (+321 QA)Всего строк: 102,163 (+46,933 QA)www.mail.ru14http://www.lua.org/
Запуск игры - инициализацияwww.mail.ru15
GameSystemwww.mail.ru16
Объекты. Откуда брать?www.mail.ru17Создаются
Уничтожаются
Содержат поля:
Примитивные
Классы
КонтейнерыСоздание и обработка сообщенийPlayer.Mechanics.Stats.IntStats.Health.Value.ResultDEFINE_EVENT( OnPlayerHealthChanged, Player, Mechanics, Stats, IntStats, Health, Value, Result)bool Player::OnHealthChanged(const Replica::OnPlayerHealthChanged ) 	{ 		… // логика	}pEventProcessor->Register( this, OnHealthChanged, true );www.mail.ru18
Объект в GameSystemwww.mail.ru19
Поля объекта меняютсяwww.mail.ru20
Обработка в скриптеwww.mail.ru21
Реализация логики дизайнеромВызов методовlocal mountInfo = mount.GetInfo( mountId )ЛогикаИзменение виджетовwtMountInfo:SetText( mountInfo.name )www.mail.ru22
Сложные случаиСоздание объектовМодульные объектыПростота vsКрасотаwww.mail.ru23
Иерархия объектовwww.mail.ru24
Сложный случай – создание объектовwww.mail.ru25
Сложный случай – отслеживание позицииwww.mail.ru26ОдногруппникиРядомВсё естьДалекоНет в графическом движкеНет в клиентской механикеВне игрыНичего нет
Сложный случай – модульные объектыРаньше:ИгрокХарактеристикиЗдоровьеУмираетНаносит урон другим игрокам и получает урон от нихПередвигается по землеКорабльУмеет летатьУстройстваНаносит урон устройствам и кораблям, получает уронwww.mail.ru27
Ктулхи – великие и ужасныеЗдоровьеУмеет летатьНаносит урон устройствам и кораблям, получает урон от устройств
Умираетwww.mail.ru28

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