vizor interactive: Технологии успеха

30
Flash движок в игре Зомби Ферма Проблемы в процессе разработки и их решения

Upload: devgamm-conference

Post on 02-Jul-2015

717 views

Category:

Documents


1 download

DESCRIPTION

Докладчиками будут описаны тонкости в процессе создания социальной игры “Зомби Ферма”: как преодолевались трудности, которые возникали в процессе разработки продукта. Как устранялись проблемы, касающиеся обслуживания игры. Как велась работа над оптимизацией и усовершенствованием некоторых процессов. Какие технологии помогли поднять игру в ТОПы и привлечь внимание более 14 000 000 пользователей не только русскоязычных, но и зарубежных социальных сетей. Каким методом была создана та самая “технология успеха”

TRANSCRIPT

Page 1: Vizor Interactive: Технологии успеха

Flash движок в игре Зомби Ферма

• Проблемы в процессе разработки и их решения

Page 2: Vizor Interactive: Технологии успеха

Начало разработки Требование к движку

• Обзор существующих Flash-движков

• Основной упор при разработке на оптимизацию

Page 3: Vizor Interactive: Технологии успеха

Способ отрисовки

• Display List и Bitmap Bitting

• Движок изначально писался на Action Script 2

• Однозначный выбор – использование Display List

Page 4: Vizor Interactive: Технологии успеха

Изометрия

• Разделение объектов в мире на статические объекты и персонажей

• Объекты хранятся в массиве в порядке их отображения

• Сортировка персонажей осуществляется

каждые 50 мс

• Многоэтажность

Page 5: Vizor Interactive: Технологии успеха

Проблемы производительности

• При отображении тысяч спрайтов наблюдались сильные тормоза при движении мыши

• Flash шлет события мыши каждому спрайту, добавленному в Display List

Page 6: Vizor Interactive: Технологии успеха

Решение проблемы

Application

mainSprite UI Controller

• Блокирование всех событий мыши• Добавление объекта UI Controller• UI система. UIComponent и UIContainer

Page 7: Vizor Interactive: Технологии успеха

Система анимированияперсонажей

• Использование MovieClip тормозит• Персонаж состоит из слоев• Кадры персонажа собираются в одну большую растровую картинку• Под каждый слой создается объект Bitmap• Анимирование осуществляется путем копирования части растровой картинки в объект Bitmap

Page 8: Vizor Interactive: Технологии успеха

50 Зомби!

Page 9: Vizor Interactive: Технологии успеха

Звуки

• Создание стерео звуков. Использование SoundTransform

• SoundManager для хранения и менеджмента всех звуков в игре

Page 10: Vizor Interactive: Технологии успеха

Кеширование

• Графика объектов собирается группами в swf файлы

• Менеджер объектов следит за количесвом созданных копий картинок

• Для подгрузки и кеширования картинок напрямую используется класс CachedImage

Page 11: Vizor Interactive: Технологии успеха

Сигналы

• Проблема разработки при разростании проекта

• Использование сигналов

• Простейший базовый класс логики

• Важность правильной структуры кода на начальных этапах разработки

Page 12: Vizor Interactive: Технологии успеха

Обход препятствий

• Алгоритм обхода в ширину даёт большую нагрузку

• Обход препятствий при необходимости

• Проблемы погрешностей при вычислениях

• Учёт физики карты

Page 13: Vizor Interactive: Технологии успеха

Тестирование

• Обновления нужно делать в короткие сроки

• Все ошибки не возможно найти на этапе тестирования внутри компании

• Критические ошибки Flash отправляются на сервер и записываются в логи

Page 14: Vizor Interactive: Технологии успеха

• Программист не должен заниматься добавлением контента

• Редактор объектов и карт

• Конвертер спрайтов

Организация работы

Page 15: Vizor Interactive: Технологии успеха

Редакторкарт и объектов

• Редактор карт дает возможность добавлять в игру спрайты, анимированные спрайты, составлять из спрайтов объекты, а из объектов композиции• В редакторе задаются свойства клеток поля• Структура композиции на примере могилы дровосека

Page 16: Vizor Interactive: Технологии успеха

• Кадры сортируются по папкам в удобном для использования порядке

• Создаётся конфиг файл для настройки анимаций

• Анимация конвертируется при сборке проекта

Конвертер спрайтов

Page 17: Vizor Interactive: Технологии успеха

• Каждая сеть имеет свои технические особенности

• Использование препроцессора во flex

• Проект всегда имеет одну ветку в системе контроля версий

• Проект собирается и заливается на сервер

одной командой с параметром социальной

сети

Портирование под социальные сети

Page 18: Vizor Interactive: Технологии успеха

Isomech Engine• Быстрый изометрический движок• Оптимизированная UI-система• Оптимизированная анимация персонажей• Автоматизированное добавление контента• Многоэтажность• Автоматизированная сборка под все социальные сети

Page 19: Vizor Interactive: Технологии успеха

Требования

• Высокие нагрузки

• Линейное масштабирование

• Простота написания логики игры

Server-side

Page 20: Vizor Interactive: Технологии успеха
Page 21: Vizor Interactive: Технологии успеха
Page 22: Vizor Interactive: Технологии успеха

• Распределенная система серверов логики

• PostgreSQL в качестве БД

• PostgreSQL в качестве системы синхронизации серверов логики

После старта

Page 23: Vizor Interactive: Технологии успеха

База Данных

• не справлялась с нагрузкой

• хаотичный рост размера данных

• отсутствие устойчивости к потере сервера

• использование базы данных не по назначению

в качестве синхронизатора

Проблема

Page 24: Vizor Interactive: Технологии успеха

Требования

• распределённая база

• удобные инструменты работы с базой, в частности простота расширения кластера

• отказоустойчивость

• возможность простой адаптации текущей модели игры под базу

Выбор базы

Page 25: Vizor Interactive: Технологии успеха

Варианты

• mongodb

• HBase

• Cassandra

Выбор базы

Page 26: Vizor Interactive: Технологии успеха

Варианты

• ZooKeeper

• memcached

• hazelcast

Кеш и синхронизация

Page 27: Vizor Interactive: Технологии успеха

Модуль статистики

• все данные собираются в разрезах по полу, возрасту, стране

• основные параметры данных:– идентификатор события– числовое значение события

• в качестве дополнительных параметров выступает массив подкатегорий

Статистика

Page 28: Vizor Interactive: Технологии успеха
Page 29: Vizor Interactive: Технологии успеха

• Распределенная система работы логики

• Hazelcast в качестве системы синхронизации серверов и кэширования данных

• Cassandra в качестве распределенной БД

• Сессия игрока привязана к определенному

серверу

• 9 серверов БД + 10 серверов логики =

120000 CCU, 1100000 DAU (RU)

• 450 GB данных игроков (RU)

Итоги

Page 30: Vizor Interactive: Технологии успеха

Вопросы?E-mail: [email protected]

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