Алексей Аникутин

28
Эволюция разработки flash- игры: от хаоса к порядку Алексей “Vooparker” Аникутин, компания SKAZKA, Москва FlashGAMM Киев 2010

description

“Эволюция разработки flash-игры: от хаоса к порядку”Проблемы разработки игр под flash-platform.Основные этапы разработки игры Королевство и фактор “так исторически сложилось”.Выбор подходов к разработке и их эволюция.Сапоги для сапожника – инструментарий разработчика.Запускаем браузерку в соцсетях и зарубежом: проблемы, решения, ошибки.Делаем социалку на рельсах браузерки.

Transcript of Алексей Аникутин

Page 1: Алексей Аникутин

Эволюция разработки flash-игры:от хаоса к порядкуАлексей “Vooparker” Аникутин, компания SKAZKA, МоскваFlashGAMM Киев 2010

Page 2: Алексей Аникутин

О чем докладДоклад о том, через какие стадии прошел проект «Королевство» и как на каждой из стадий менялся подход к разработке

С какими проблемами пришлось столкнуться в процессе разработки

Как менялся подход к разработке

Какие ошибки и решения были сделаны

Page 3: Алексей Аникутин

Королевство в числах~ 600 KLОC, из них > 120 KLОC AS3> 1000 уникальных персонажей> 1500 уникальных объектов> 700 заданий

Королевство в людяхна разных стадиях проекта

Гейм дизайн – 1-2 человекаХудожественный отдел – 4-8 человекWeb-разработчики – 2-3 человекаFlash-разработчики – 1-3 человекаРазработчики серверной части – 2-4 человека

Page 4: Алексей Аникутин

Делаем платформу, а не игру

Page 5: Алексей Аникутин

Делаем платформу, а не игруНам нужна платформа для наших игр – платформа для «игр нашей мечты».

Основной подход:— Максимальное количество возможностей— Если это можно сделать, то мы это сделаем— Сложности нас не остановят, если требуется пересматриваем архитектуру— Как следствие большие итерации разработки

Page 6: Алексей Аникутин

Делаем платформу, а не игруИтоги:— Мы создали действительно хорошую основу— Большое количество игровых возможностей— Мы были довольны результатом

Page 7: Алексей Аникутин

Характеристики этапаВремя итераций – большоеКоличество нового кода – большоеКачество кода - высокоеКоличество нового контента – малоеСтепень автоматизации – низкаяСостояние инструментария – только самое необходимоеКонтроль качества – низкийСтабильность проекта – низкая

«Ручная» компиляция«Ручное» управление ресурсами«Ручное» управление проектом

Page 8: Алексей Аникутин

Все было хорошо, пока мы не вышли в открытую βету

Page 9: Алексей Аникутин

Делаем игру, а не платформуМы делали игру несколько месяцев, а игроки ее прошли за несколько дней

Надо менять подход!

Page 10: Алексей Аникутин

Делаем игру, а не платформуМы слишком увлеклись платформой и ее возможностями. Пора делать игру.

Делаем только то, что нужно нашим игрокам. Но только что это? Лучший способ это узнать -

проверить.

Page 11: Алексей Аникутин

Делаем игру, а не платформуИзменения в задачах по сравнению с предыдущим этапом:— Быстрое прототипирование— Частые итерации— Проверка нововведений в условиях реальной жизни

Изменения в разработке— Автоматизации рутинных задач (Flex SDK + Ant)— Общее снижение качества кода необходимо было компенсировать быстрой обратной связью с пользователями— Минимальные изменения в архитектуре

Page 12: Алексей Аникутин

Характеристики этапаВремя итераций – малоеКоличество нового кода – большоеКачество кода - низкоеКоличество нового контента – растетСтепень автоматизации – растетСостояние инструментария – увеличивается количество возможностейКонтроль качества – среднийСтабильность проекта – средняя

Автоматическая сборка проекта«Ручное» управление ресурсами«Ручное» управление проектом

Page 13: Алексей Аникутин

Общие итоги этапаВектор развития игры и платформы стал понятен

Все нововведения были проверены реальной жизнью

Минимальные изменения архитектуры мало сказались на общей стабильности проекта

Общее падение качества кода не привело к катастрофе. Все что не нужно можно легко выпилить из проекта

Page 14: Алексей Аникутин

Меняем подход: от хаоса к порядку

Page 15: Алексей Аникутин

Меняем подход: от хаоса к порядкуУдаляем все лишнее, оставляем нужное, приводим архитектуру в соответствии с актуальными требованиями

Изменения в разработке— Увеличение время итерации— Повышение контроля качества— Делаем то, что нужно проекту— Приближаем платформу к реальности

Page 16: Алексей Аникутин

Характеристики этапаВремя итераций – среднееКоличество нового кода – среднееКачество кода - высокоеКоличество нового контента – большоеСтепень автоматизации – растетСостояние инструментария – увеличивается количество возможностейКонтроль качества – высокийСтабильность проекта – высокая

Автоматическая сборка проектаАвтоматическое управление ресурсами«Ручное» управление проектом

Page 17: Алексей Аникутин

Социальный бум или хаос возвращается

Page 18: Алексей Аникутин

Социальный бумКаким должно быть Королевство в социальных сетях. Насколько интеграция в социальную сеть скажется на геймплее?

Ответы требуют времени – но его нет.

Решение создаем клон проекта – это быстро!

Page 19: Алексей Аникутин

Социальный бумИзменения в разработке:— Возвращаемся к быстрым итерациям— Дублирование кода в разные ветки проекта

Итоги:В кратчайшие сроки проект был запущен во Вконтакте, МойМир, Одноклассники

Page 20: Алексей Аникутин

Многоязычное КоролевствоОсновная проблема – «хардкод» локализации как на сервере, так и на клиенте.

Решение— Никакой локализации на сервере. Все исключительно силами клиента— Собственные инструменты локализации в рамках нашей платформы

Page 21: Алексей Аникутин

Инструментарий

Page 22: Алексей Аникутин

ИнструментарийХорошему разработчику – нужен хороший инструментарий.

Зачем нужны инструменты:— Сокращение времени на решение рутинных задач— Снижение требований к исполнителю— Минимизация рисков

Page 23: Алексей Аникутин

ИнструментарийПроблема:Нет прямой зависимости между качеством конечного продукта и качеством средств его разработки. Отсюда ресурсы на разработку инструментария ограничены.

Решение:— Инструменты надо делать быстро— Инструменты надо делать постоянно на протяжении всего проекта— Инструменты надо делать для человека

Page 24: Алексей Аникутин

ИнструментарийС помощью чего делать инструменты:— Flex framework – быстрые и удобные интерфейсы— Adobe AIR – работает на всех системах— JSFL + MMExecute – пишем плагины для Flash IDE— Ant + Java – делаем все одним действием

Page 25: Алексей Аникутин

Общие выводыБольшие проекты разрабатываются долго

За время разработки приоритеты могут меняться

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

Page 26: Алексей Аникутин

Работа в компании SKAZKAСегодня компания SKAZKA ищет специалистов:— ActionScript разработчики— Python и C++ разработчики— Web-разработчики— Художники— 3D-моделлеры и аниматоры

Отправляйте ваши резюме на почту:

[email protected]

Page 27: Алексей Аникутин

Вопросы?

Page 28: Алексей Аникутин

Спасибо за вниманиеАлексей “Vooparker” Аникутин

[email protected]