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

Презентация:



Advertisements
Похожие презентации
Flash портал top4top.ru: структура, проблемы, решения.
Advertisements

Поддержка пользовательских файловых хранилищ. Облачные хранилища. Максим Смирнов ведущий разработчик.
Решение прикладных задач: Хранение неограниченного объема информации за любой период времени Возможность анализа любых хранящихся данных за определенный.
База данных (БД) – Совокупность определённым образом организованной информации на определённую тему (в рамках определённой предметной деятельности); Организованная.
Построение системного ландшафта для высоко нагруженного проекта ООО «Ленвендо-Софт» Гаврилов Виталий Технический директор тел.: +7 (812)
Модуль поиска путей в игровом движке Владимир Олейник
Алексей Кирсанов ведущий разработчик «1С-Битрикс» Магазин – глобальная реструктуризация. D7 Партнерская конференция «1С-Битрикс»
Первый опыт внедрения WPF в сложной системе (С++ и COM) Михаил Павлов Transas.
Владимир Костюков, АлтГТУ АлтГТУ им И. И. Ползунова Распределенная система мониторинга и диспетчерезации процессов гетерогенной среды.
EXtreme Programming XP Тема 2. XP Заказчики определяют: объем работ; приоритеты; композиции версий; сроки выпуска версий. Разработчики определяют: оценку.
Нагрузочное тестирование Применение при разработке высоконагруженных веб- проектов Михаил Токовинин, генеральный директор компании QSOFT +7 (495)
Кредитный клиент Программное обеспечение (фронт офис) оформления банковских кредитов.
Разработка высоконагруженных проектов (например – сайтов для сообществ) Олег Бунин.
Технология хранения, поиска и сортировки информации в базах данных
Competentum.АВТОР Инструмент по разработке электронных курсов (авторское средство)
БЭСТ Дизайнер проектов Введение Концепции Основные понятия.
Разработка Веб - проектов, от требований заказчика до запуска. Прозрачность разработки как средство формирования ожиданий заказчика.
Распределенные и параллельные вычисления на MS SQL (always on). Адаптация для 1С 8 Сердюк Владимир Баркетов Павел.
Объектно-ориентированное программирование Основы языка программирования Lazarus.
Тема работы Архитектура игровых движков. Компьютерные игры Популярный вид развлечения среди широкой категории людей Появились в середине 40-х годов 20-го.
Транксрипт:

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

Начало разработки Требование к движку Обзор существующих Flash-движков Основной упор при разработке на оптимизацию

Способ отрисовки Display List и Bitmap Bitting Движок изначально писался на Action Script 2 Однозначный выбор – использование Display List

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

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

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

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

50 Зомби!

Звуки Создание стерео звуков. Использование SoundTransform SoundManager для хранения и менеджмента всех звуков в игре

Кеширование Графика объектов собирается группами в swf файлы Менеджер объектов следит за количесвом созданных копий картинок Для подгрузки и кеширования картинок напрямую используется класс CachedImage

Сигналы Проблема разработки при разростании проекта Использование сигналов Простейший базовый класс логики Важность правильной структуры кода на начальных этапах разработки

Обход препятствий Алгоритм обхода в ширину даёт большую нагрузку Обход препятствий при необходимости Проблемы погрешностей при вычислениях Учёт физики карты

Тестирование Обновления нужно делать в короткие сроки Все ошибки не возможно найти на этапе тестирования внутри компании Критические ошибки Flash отправляются на сервер и записываются в логи

Программист не должен заниматься добавлением контента Редактор объектов и карт Конвертер спрайтов Организация работы

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

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

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

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

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

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

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

Требования распределённая база удобные инструменты работы с базой, в частности простота расширения кластера отказоустойчивость возможность простой адаптации текущей модели игры под базу Выбор базы

Варианты mongodb HBase Cassandra Выбор базы

Варианты ZooKeeper memcached hazelcast Кеш и синхронизация

Модуль статистики все данные собираются в разрезах по полу, возрасту, стране основные параметры данных: – идентификатор события – числовое значение события в качестве дополнительных параметров выступает массив подкатегорий Статистика

Распределенная система работы логики Hazelcast в качестве системы синхронизации серверов и кэширования данных Cassandra в качестве распределенной БД Сессия игрока привязана к определенному серверу 9 серверов БД + 10 серверов логики = CCU, DAU (RU) 450 GB данных игроков (RU) Итоги

Вопросы? Спасибо за внимание!