зомби ферма. как это сделано - Виктор и Андрей Кузьмины...

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

Upload: sociality-rocks

Post on 22-May-2015

3.220 views

Category:

Education


4 download

DESCRIPTION

В докладе будет рассказано, как создавалась топовая социальная онлайн игра "Зомби Ферма", в которую играет уже более 8 000 000 пользователей не только русскоязычных, но и зарубежных социальных сетей. С какими трудностями пришлось столкнуться в процессе разработки и дальнейшей поддержки игры. Какие проблемы возникали и какими путями они устранялись.Какие решения позволили поднять игру на более высокий уровень в техническом плане. Как оптимизировалась работа движка и как усовершенствовалась серверная база. Почему для нас не проблема DAU в 5 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

Изометрия

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

• Объекты хранятся в массиве в порядке их отображения• Сортировка персонажей осуществляется каждые 100 мс• Многоэтажность

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

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

• Редактор объектов и карт• Конвертер спрайтов

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

Page 10: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive

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

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

Page 11: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive

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

• Создаётся конфиг файл для настройки анимаций• Анимация конвертируется при сборке проекта

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

Page 12: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive

• Каждая сеть имеет свои технические особенности• Использование препроцессора во flex• Проект всегда имеет одну ветку в системе контроляверсий

• Проект собирается и заливается на серверодной командой с параметром социальнойсети

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

Page 13: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive

Isomech Engine

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

Page 14: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive

Требования• Высокие нагрузки• Линейное масштабирование• Простота написания логики игры

Server-side

Page 15: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive
Page 16: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive
Page 17: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive

• Распределенная система серверов логики• PostgreSQL в качестве БД• PostgreSQL в качестве системы синхронизациисерверов логики

После старта

Page 18: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive

База Данных• не справлялась с нагрузкой• хаотичный рост размера данных• отсутствие устойчивости к потере сервера• использование базы данных не по назначениюв качестве синхронизатора

Проблема

Page 19: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive
Page 20: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive

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

• Cassandra в качестве распределенной БД• Сессия игрока привязана к определенномусерверу• 9 серверов БД + 6 серверов логики =100000 CCU, 800000 DAU (RU)• 200 GB данных игроков (RU)

Итоги

Page 21: зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive

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

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