На сегодняшний день индустрия развлечений развивается ускоренными темпами, поэтому большинство ее ведущих брендов инвестируют огромные суммы в развитие новых технологий и направлений. С недавних пор, активное место в жизни многих людей стали занимать социальные сети, что породило волну игр, ориентированных на Facebook, ВКонтакте и т. п. Отличительной особенностью таких игр является ярко выраженная социальная сторона. Игрокам требуется общаться со своими друзьями или заводить новые знакомства, для наиболее рационального пути выполнения заданий в играх. Кроме расширения рынка социально направленных игр, большое развитие получили игры, предназначенные для мобильных платформ. Рост производительности устройств на таких платформах как Android и iOS позволил создавать достаточно яркие и полноценные трехмерные игры. Таким образом, пользователи получили возможность играть всегда и везде. Как следствие, ведущим направлением развития игровой индустрии являются проекты, использующие вышеуказанные платформы одновременно. Игрок может играть в клиентскую часть проекта, используя свой домашний ПК, Mac, либо игровые консоли. Кроме того, часть игры доступна пользователю посредством социальных сетей и мобильных устройств. В данном случае, игрок получает возможность играть в одну и ту же игру все время, будь он дома или в дороге. Это позволяет разработчикам увеличить прибыль от игры в несколько раз, а игрокам — дает желаемое.Для сохранения конкурентоспособности разработчикам требуется обеспечить высокое качество производимого продукта и увеличить скорость разработки игры.
Разработкой компьютерных игр называют процесс производства программного продукта, основная цель которого — развлечение. С развитием индустрии разработки игр указанный термин существенно расширился. На сегодняшний день более корректной является формулировка следующего вида: разработкой игр называют процесс производства программного продукта для одной или более целевых платформ, которыми могут являться как персональные компьютеры, так и игровые консоли, мобильные телефоны, аудиоплееры, социальные сети, игровые автоматы. Современных игры, как и прежде, носят развлекательный характер, но также они могут преследовать и дополнительные цели, такие как образование, обсуждение социальных и личностных проблем, попытки переосмыслить исторические события, рассказать драматическую или комедийную историю. На сегодняшний день индустрию видеоигр можно сравнить с индустрией кино. Ключевым отличием является то, что игры обладают свойством интерактивности.
Для индустрии разработки игр пока не характерны принципы стандартизации, а также общепринятые практики. Обычно компании разработчики используют внутренние разработки, специализированные под конкретные типы и жанры игр. Конечно, разработчики делятся своим опытом, однако каждая компания сама принимает решение об использовании сторонних практик. Разработка коммерческого проекта обычно включает следующие этапы:
- предпроизводственный этап;
- этап производства;
- этап тестирования;
- релиз;
- поддержка готового продукта.
Фундамент будущего проекта закладывается на этапе проектирования продукта. Проектирование программного обеспечения подразумевает выработку свойств системы на основе анализа постановки задачи, а именно: моделей предметной области, требований к ПО, а также опыта проектировщика. Модель предметной области накладывает ограничения на бизнес-логику и структуры данных. Требования к ПО определяют внешние (видимые) свойства программы, рассматриваемой как «черный ящик». Определению внутренних и детализации внешних свойств системы, собственно, и посвящено проектирование.
Проектированию обычно подлежат:
- игровой дизайн и игровая механика;
- архитектура программного обеспечения;
- пользовательские интерфейсы.
Проектирование игрового дизайна или геймплея (игрового процесс с точки зрения игрока) включает в себя разные аспекты компьютерной игры, в том числе технические (игровая механика, совокупность определенных методов взаимодействия игры с игроком и др). Само понятие геймплея крайне обобщено и обычно используется для выражения полученных ощущений в ходе прохождения игры, под влиянием таких факторов, как графика, звук и сюжет. Как правило, в процессе проектирования игрового дизайна создаются следующие документы:
Концепт-документ — служит для формирования прототипа будущего проекта, кратко описывает игровой процесс, способы взаимодействия игрока с игровым миром и т.д.
Дизайн документ — служит для подробного описания каждого элемента будущего проекта. Описываются все возможные объекты, пользовательский интерфейс, логику некоторых алгоритмов, применяемых в проекте. Применяется для формирования:
- задач для отдела разработки;
- задач для отдела арта;
- задач для композиторов и музыкантов;
- данных для отдела маркетинга;
- критериев оценки завершенности и качества продукта.
На основании вышеуказанной документации формируются технические спецификации, определяющие:
- выбор используемых технологий и обоснование выбора;
- дробление на версии продукта;
- список задач и план решения;
- соглашение об использовании правил именования;
- архитектуру проекта;
- критерии оценки решения каждой задачи;
• минимальные системные требования для функционирования проекта.
Под архитектурой проекта понимается — структура программы или вычислительной системы, которая включает программные компоненты, видимые снаружи свойства этих компонентов, а также отношения между ними. Этот термин также относится к документированию архитектуры программного обеспечения. Документирование архитектуры упрощает процесс коммуникации между заинтересованными лицами, позволяет зафиксировать принятые на ранних этапах проектирования решения о высокоуровневом дизайне системы и позволяет повторно использовать компоненты этого дизайна и шаблоны в других проектах.
При проектировании архитектуры важно учитывать возможности используемого языка программирования, парадигмы ООП (инкапсуляция, наследование, полиморфизм), а, как следствие, и паттерны проектирования — повторяемые архитектурные конструкции, представляющие собой решение проблемы проектирования в рамках некоторого часто возникающего контекста. Наиболее часто, при разработке игр, применяются следующие паттерны проектирования: MVC, Object Factory, Singleton, Flyweight, Chain of Responsibility, Iterator, Observer, Command, Decorator, Facade, Mediator, State. Использование этих методик позволяет создавать гибкое архитектурное решение проекта, что в последствии упрощает дополнения, модификации и сопровождение.
Таким образом, создавая гибкое архитектурное решение, разработчик снижает временные, трудовые, а значит и финансовые затраты на будущие модификации и дополнения проекта, что особенно важно в контексте онлайновых игр. Создание документации, описывающей игровой дизайн, позволяет заранее определить наиболее затратные участки продукта, а также создает единое представление о проекте для всех членов команды-разработчика. Применение этих практик существенно снижает временные затраты, повышает качество продукта, что особенно важно на нынешнем этапе развития игровой индустрии.