Игра или продукт? или
Методологии творчества
Введение
• «Кто я?»– Андрей Грищенко, менеджер
внешних проектов отдела игровых и мультимедийных продуктов фирмы «1С», Россия, Москва ([email protected])
• «О чем буду говорить?»– Это введение– Немного о предмете– Некоторые методики
разработки ПО– Некоторые следствия
Проблемы разработки игр
• Хорошо продаваемый продукт – не всегда хорошая игра– Феррари
• Хорошая игра – почти всегда хорошо продаваемый продукт– И Слава и Феррари
• Непростая задача: – качественный продукт творческого и интеллектуального
труда в ограниченный срок и бюджет
Проблемы разработки игр
• Трудности:– Меняющиеся технологии (основной инструмент)– Меняющиеся требования, высокая «планка»– Творческий продукт– Значительные объемы содержимого (content)– Молодая индустрия
• Результаты:– Перерасходы бюджетов– Задержки сроков– Снижение качества– Неоправданность ожиданий
• Это не лучшая обстановка для творчества
Проблемы разработки игр
“20.01.04 из компании Blizzard ушел один из основателей и бывший вице-президент Аллен Эдхам. Как сообщают официальные представители компании, причиной этого шага стала "многолетняя рутинная работа по доводке игровых продуктов".” (http://news.dtf.ru/index.php?type=id&publ_id=52066)
• Статистика одного рисованного квеста:– 2000 графических объектов
– 5400 их отдельных состояний
– 1066 звуков
Классика создания продуктов
• Кинопроизводство:– Scripting: сценарий– Pre-production: планирование, сasting, финансирование, прокат
оборудования и т.д.– Production: съемки – Post-production: обработка, монтаж, озвучивание
Бизнес-моделирование
Анализ и Проектирование
Разработка
Тестирование
Scripting
Pre-production
Production
Post-production
Внедрение
Проектирование
Pre-production
Production
Post-production
Тестирование
Фильмы Игры ПО
Разработка
Scripting
Классика создания продуктов
• Создание ПО:– Стратегическое планирование: концепция, цели и задачи– Анализ и проектирование: уточнение проблем и путей достижения
поставленных целей– Разработка: реализация выявленных путей– Тестирование: технологический этап разработки любого ПО
Бизнес-моделирование
Анализ и Проектирование
Разработка
Тестирование
Scripting
Pre-production
Production
Post-production
Внедрение
Проектирование
Pre-production
Production
Post-production
Тестирование
Фильмы Игры ПО
Разработка
Scripting
Игры – фильм или ПО?
• Фильм:– Развлекательный
аудиовизуальный продукт– Производство content’a
• НЕ фильм:– Интерактивность и
нелинейность– Не такой дорогой
production– Относительно молодой
тип развлечений– Gameplay – игровой
процесс
• ПО:– Программный продукт
• НЕ ПО:– Наличие значительного
содержимого помимо программного кода (content)
– Предназначение – развлекательное. «Одноразовость».
– Gameplay – игровой процесс
Некоторые методики создания ПО
• Каскад (водопад)• RUP – Rational Unified Process,
http://www-136.ibm.com/developerworks/rational/products/rup
• MSF - Microsoft Solution Framework, http://www.microsoft.com/rus/msdn/msf/
• XP – eXtreme Programming, http://www.extremeprogramming.org/
• О киноиндустрии больше ни слова…
RUP
• Rational Unified Process• Накопленный опыт ведущих разработчиков• Наиболее полный набор концепций, которые так или
иначе присутствуют в других методиках• Единый язык моделирования – UML (Unified Modeling
Language)• Сейчас подконтролен IBM
UML (RUP)
• Сценарии (use cases)
UML (RUP)
• Сценарии (use cases)
UML (RUP)
• Диаграммы последовательностей (sequence diagram)
Проблемы применения RUP
• Как все универсальное – много лишнего
• Как все универсальное – мало конкретного
MSF
• Microsoft Solution Framework• Ключевые особенности:
– Нет единственного менеджера проекта, а «кластер»: • Главный художник +Главный программист + Главный гейм-дизайнер
• Фазы проекта по MSF:
Планирование
Концепция
Разработка
Стабилизация
Поставка
MSF
• Фаза стабилизации
Время
Master Patch
Точка конвергенцииBug Convergence
Точки «безошибочности»Zero Bug Bounce
Количествооткрытых дефектов
Alfa Beta
MSF
• Треугольник компромиссов или как торговаться с обстоятельствами– «Мы делаем быстро, качественно и недорого! Выберите два из
трех…»
Содержание
XP
• eXtreme Programming• Основная заповедь:
– «Концентрируйте усилия на выполнении наиболее важных задач, выбранных вашим заказчиком, чтобы не получить несколько незавершенных задач, выбранных разработчиками»
• Лучший путь, когда дорога неизведанна - так часто и бывает
XP
• 12 практик XP1. Планирование на основе опыта2. Частые сборки с небольшим увеличением объемов
разработки3. Метафоры4. Простота дизайна5. Тесты впереди реализации6. Постоянный refactoring7. Парное программирование8. Коллективное владение ресурсами (кодом)9. Постоянная интеграция10. 40-часовая рабочая неделя11. «Заказчик с нами» - тесная обратная связь12. Стандарты
Возможные проблемы ХР
• Спорные практики– Простота дизайна – «Каждая задача имеет одно элегантное,
простое, но неправильное решение»– Коллективное владение – «У семи нянек дитя без глазу»– Затраты на рефакторинг – постоянные переделки– Парная разработка – не всегда возможно
• Можно заблудиться– Как человек не может выйти из пустыни?
• Тестирование игр – нетривиальная задача
Панацея – своими руками
• Все– Цикличность, итерационность– Планирование– Ориентация на Заказчика (в нашем случае - Игрока)
• RUP– Основные понятия – UML
• MSF– Треугольник компромиссов – Фаза стабилизации проекта
• XP– Гибкость– Регулярные сборки и постоянная интеграция– Тесная обратная связь
Панацея на практике
• Применение элементов RUP в компании-разработчике из 300 человек, 50 активных проектов– Единые стандарты технической документации– Развязать понятия «должность» и «роль» - гибкость и
предсказуемость
• Применение элементов ХР в игровой разработке– Ранняя демонстрация прогресса проекта – уже через 1..2
месяца от начала разработки– Отсутствие «мертвых» периодов– Адаптация по результатам оценки
• Применение элементов MSF в игровой разработке– Достижение ключевых задач проекта– Управляемый процесс завершения проекта
Немного о планировании…
• Почему трудно написать дизайн документ (и план)– Значительный объем– Много неопределенностей
• Выход - дизайн документ (и план) разрабатывается в течении всего проекта– Опережение – Общая картина
• Milestone – верстовой столб или столб позора?– Milestone – объективное событие в проекте, как измерение
прогресса к цели– Хорошо определенный milestone – легко измеряемые
показатели– «Не доделанная работа – не сделанная работа»
Спасибо!
• Вопросы?• Если вопросов нет – это или все понятно или не
понятно ничего…