Проектирование И Архитектура Игр
Особенности компьютерного проектирования при разработке игр. Published by Авторович on Ноябрь 21, 2012 Leave a response. На сегодняшний день индустрия развлечений развивается ускоренными темпами, поэтому большинство ее ведущих брендов инвестируют огромные суммы в развитие новых технологий и направлений. При проектировании архитектуры важно учитывать возможности используемого языка программирования, парадигмы ООП (инкапсуляция, наследование, полиморфизм), а, как следствие, и паттерны проектирования — повторяемые архитектурные конструкции, представляющие собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.
- Скачать Роллингз Э., Моррис Д. - Проектирование и архитектура игр / 2006 Скачать с vip-file.com Скачать с turbobit.net Скачать с unibytes.com. Перед тем как скачать 'Роллингз Э., Моррис Д. - Проектирование и архитектура игр / 2006', проверьте ВСЕ ссылки на работоспособность. На момент публикации 'Роллингз Э., Моррис Д. - Проектирование и архитектура игр / 2006', все ссылки были в рабочем состоянии. Назад Комментарии 0 Просмотров: 486. Другие материалы на эту тему: Золотая коллекция игр ХХХ (2010).
- Nov 3, 2014 - Проектирование и архитектура игр - Э. Моррис Данная книга раскрывает основы создания игры, как производственного.
- Приемы при проектировании архитектуры игр Хабрахабр. К сожалению, нигде нет более менее.
Jeff Plummer - Гибкая и масштабируемая архитектура для компьютерных игр, часть первая Гибкая и масштабируемая архитектура для компьютерных игр, часть первая Автор: Jeff Plummer. Перевод: Александр Петров Компьютерные игры становятся все сложнее и масштабнее, в сравнении с их скромными собратьями начала шестидесятых. К настоящему моменту игры достигли необычайного уровня реализма, особенно в областях графики, имитации физических законов и искусственного интеллекта.
Однако, несмотря на значительные достижения в области разработки программного обеспечения, развитие компьютерных игр обошло их стороной. В данной диссертации архитектура компьютерных игр представлена как система систем (System of Systems), взаимодействие которых порождает саму игру, как полноценное приложение. В основе предлагаемой архитектуры лежит принцип взаимодействия через данные, которые совместно обрабатываются независимыми компонентами, входящими в состав каркаса. Архитектура обеспечивает такие существенные, особенно при разработке игровых приложений, возможности как модифицируемость, расширяемость и устойчивость. При реализации архитектуры будет активно использоваться идея компонентных технологий (например, встраивание готовых коммерческих компонентов), потому что использование взаимодействующих компонентов, разработанных независимо друг от друга, значительно облегчает системное проектирование и соответствует общей концепции Системы Систем. Игры представляют собой многомиллиардную индустрию разработки программ, в общем случае состоящих из миллионов строк кода 1, но сам процесс разработки крайне не значительно изменился со времен написания первых программ 3. Отсутствие промежуточных этапов при разработке игры от ее идеи до уровня кода или, иначе говоря, непосредственное кодирование - обычная ситуация в настоящее время, однако при таком подходе успех или неудача проекта целиком зависят от мастерства и опытности разработчиков 18.
Создание архитектуры, которая бы унифицировала взаимодействие между основными подсистемами игры и при этом оставляла гибкость и возможность масштабирования, является необходимым условием для развития индустрии компьютерных развлечений. Современные методы и их недостатки В настоящее время архитектура проектируется и разрабатывается под конкретную игру. Разумеется, разработчики игр могут перенести часть архитектуры или какие-то проектные решения, созданные и спроектированные для одной игры, в другую, однако это возможно не всегда, хотя и является де-факто устоявшимся методом проектирования, результаты применения которого зависят от индивидуального опыта разработчика. Таким образом, до сих пор лишь опытным разработчикам удается достигать желаемых результатов, но при этом проект редко сдается в срок и еще реже удается спланировать сам процесс разработки 14. Одной из проблем подобного метода создания архитектуры игрового приложения является то, что такие качественные критерии как гибкость и расширяемость редко учитываются при планировании и проектировании системы. Так, например, компании id software при создании новой игры приходилось переписывать практически весь код предыдущей. Что наглядно видно на примере использования архитектуры игры Quake 3 для создания Doom 3 19.
Несмотря на то, что обе игры принадлежат к одному жанру FPS и во многом похожи. Фактически, их единственное отличие заключается в улучшенной графике. С тех пор как развитие игр фактически свелось к улучшению графики, основной причиной переделывания структуры одной игры при создании новой является то, что существующие модели и архитектурные шаблоны не поддаются расширению. Пример проблем, с которыми столкнулась id, безусловно не единичен. Большинство (если не все) компании тратят время на переписывание звуковой системы игры, системы интерфейса пользователя и т.д., просто потому что существующий код невозможно встроить в новую игру.
Архитектура Роллингса и Морриса (Rollings and Morris) Роллингс и Моррис (Rollings and Dave Morris), авторы Game Architecture and Design, дают обзор существующих архитектурных моделей игровых приложений и пытаются выделить, насколько это возможно, основные элементы игровой архитектуры (см. Игра, построенная по схеме компонентов, представленная на рисунке 1, будет работать, но я считаю, что подобная сеть взаимоотношений и многочисленные связи между компонентами, сильно ограничивают расширяемость системы и возможность ее повторного использования в других проектах. Удобная архитектура должна не только логически разделять систему на подсистемы, она также должна предусматривать легкую замену или модификацию любой подсистемы без перестраивания системы целиком. Отчасти проблемы заключаются в том, что в основе практически каждой модели игры лежит принцип объектно-ориентированности и, следовательно, в каждой игре присутствует чрезмерное количество взаимосвязей между компонентами системы.
Игры практически всегда имеют дело с объектами, живущими в виртуальном мире. Игровые объекты обладают собственным поведением, отрисовывают сами себя на экране, а иногда даже говорят сами. Такой подход кажется логичным и его распространение, по всей видимости, связано со всеобщим признанием объектно-ориентированной парадигмы. Однако ограниченность данного подхода проявляется, как только сложность и запутанность таких функций как отрисовка (rendering) и принятие решений (ИИ) начинает расти экспоненциально. В свою очередь данное усложнение приводит к громоздкости игровых объектов в частности и архитектуры вообще. Представление игры в объектно-центрированной модели 1.1.2. Переход к COTS (прим.
COTS - component off the shelf, методология, предписывающая разработчикам использование сторонних компонентов.) Компьютерные игры как разновидность программного обеспечения переживают сегодня революционный этап. Качество игр приближается к качеству современных фильмов, однако играм недостает модульности и возможности привлечения сторонних фирм для разработки отдельных компонентов игры, то есть того, что уже давно используется в индустрии кино.
Кисти для фотошопа бабочки. Фильмы создаются несколькими компаниями, каждая из которых специализируется на конкретной сфере: звуке, спецэффектах и т.п. Такой уровень разделения труда позволяет достигать выдающихся результатов как в области качества, так и в области планирования и снижения рисков. Можно сказать, что запланирован практически каждый кадр снимаемой картины. В тоже время игры только начали движение от полной разработки игры компанией производителем к технологии использования сторонних компонентов, называемой COTS 5.
Переход к системам, построенным на COTS, является первым шагом на пути масштабного изменения игр, принципов их разработки и планирования. Однако несмотря на то, что использование готовых компонентов способно улучшить качество игры и сократить время ее разработки, использование объектно-ориентированного подхода приведет к тому, что компоненты едва ли будут более полезны, чем обычные библиотеки функций, помогающие оперировать объектами. Игровые объекты все еще ответственны за обработку своих данных, а именно, за рендеринг, за искусственный интеллект, звук, физику и т.д. Одним словом, игры пытаются использовать преимущества COTS-компонентов и вместе с этим оперируют слишком большими и сложными игровыми объектами. А это в свою очередь приводит к тому, что при разработке объектов разработчики жестко привязаны к используемым COTS-компонентам (см. Сочетание метода COTS-разработки и объектно-центрированной модели Вдобавок объектно-ориентированный подход ограничивает возможность повторного использования, даже при применении технологии COTS-компонентов.
Код, описывающий объект, всегда остается наихудшим в смысле повторного использования, но при совмещении объектно-ориентированных и COTS-технологий этот код содержит в себе еще и вызовы функций различных специализированных компонентов. Таким образом, при переходе на новый проект разработчики часто вынуждены переписывать код вследствие подобного взаимодействия объекта и компонентов. Даже хорошо спланированная и разработанная иерархия классов не способна уменьшить риск переписывания кода из-за того, что объекты остаются жестко связанными с используемыми COTS-компонентами. Я полагаю, что существует архитектура, способная значительно сократить количество переписываемого кода, вследствие ликвидации жестких взаимосвязей. Применение готовых игровых движков К настоящему моменту в развитии игровой индустрии можно выделить общую тенденцию совмещения всех COTS-компонентов в игровом ядре, также известном как игровой движок. Компании-разработчики покупают очень мощные и эффектные игровые движки, что позволяет создавать игру, используя проверенный и надежный игровой каркас. Этот прием является выдающимся примером повторного использования кода, вместе с тем, возможными последствиями таких покупок могут быть ограничения возможностей разработчиков потому, что сторонний движок может не учитывать особенностей игры.
Использование игровых движков создает следующие ограничения:. Ограничения через архитектуру движка. Игровые движки обычно создаются под конкретную игру, и это сказывается на их архитектуре. Попробуйте использовать Unreal Engine, движок игры от первого лица, для создания футбольного симулятора. Ценовые ограничения. Игровые движки являются чрезвычайно дорогими. Передовой движок может стоить сотни тысяч долларов 2 (уже миллионы - прим.
Решение об использовании подобных движков заранее означает, что игра должна стать хитом, чтобы окупить начальные вложения. К сожалению, для того чтобы удовлетворить запросы максимального сегмента рынка, разработчики значительно ограничены в выборе типа, жанра и специфики создаваемой игры. Решением данных проблем является проектирование игр на более высоком уровне абстракции, нежели на уровне игрового движка. Из этого вовсе не следует, что коммерческий движок с возможностью повторного использования не может быть создан с помощью предлагаемой архитектуры. Тем не менее, мы должны понимать разницу между архитектурой и полностью законченной системой.
Основная цель данной диссертации - спроектировать и доказать существование архитектуры программного обеспечения как достаточно расширяемой, чтобы соответствовать современным технологиям, так и достаточно гибкой, чтобы поддерживать различные типы игр. Подобная архитектура обеспечила бы надежный фундамент для дальнейшего развития и, возможно, стала бы началом стандартизации взаимодействия между компонентами, используемыми в игре.
Удачная архитектура развивалась и расширялась бы вместе с увеличением сложности современных игр и при этом не ограничивала бы творческий подход разработчиков игр. Для того чтобы достичь этой высокой цели, итоговая архитектура должна отвечать следующим требованиям. Требования к архитектуре: Поддержка концепции COTS-компонентной разработки Во-первых, архитектура должна иметь строгую логическую структуру.
Необходимо таким образом разделить систему на логически независимые части, чтобы каждая из подсистем могла быть разработана и оттестирована независимо от других. Это требование согласовывается с требованиями к COTS-системам, и в данном исследовании я буду придерживаться принципов COTS-концепции. Для того чтобы проверить, отвечает ли полученная архитектура данному требованию, разработчик должен продемонстрировать, что компоненты системы были разработаны и оттестированы независимо. Эти компоненты должны легко интегрироваться в итоговом игровом приложении и не требовать для этого больших изменений игрового кода.
В идеале разработанные компоненты должны соединяться также легко, как если бы мы соединяли их на логическом уровне. Требования к архитектуре: Сокрытие деталей реализации и доступность применения без знания предметной области (локализация предметных областей) Архитектурное требование о сокрытии деталей реализации и доступности применения существует из-за различных возможностей, требуемых в различных играх. В современных играх требуется высококлассная графика, реалистичная физика, человекоподобный искусственный интеллект, звук кинематографического качества. Даже если игровой разработчик использует COTS-компоненты для создания всего этого в игре, он должен хорошо знать предметную область - для того, чтобы использовать конкретный компонент корректно.
Источник в паспортном столе рассказал, что паспорт не за месяц, а за 10–15 дней действительно делают. Бланк свидетельства о рождении украина.
Общеизвестно, что игровой разработчик вынужден быть экспертом в различных технических областях вместо того, чтобы сфокусироваться на создании собственно геймплея. Требуемый уровень знаний предметной области будет лишь возрастать с усложнением игровых технологий, поэтому необходимо попытаться разрешить эту проблему как можно скорее. В своем исследовании я стараюсь не только выявить общее в интерфейсах компонентов, но и спроектировать архитектуру таким образом, чтобы минимизировать объем знаний, требуемых для использования компонента, знаний о его интерфейсе (о его API). Для того чтобы проверить, отвечает ли полученная архитектура данному требованию, разработчик должен продемонстрировать, что работа с API скрыта в самом компоненте. Игровой программист не должен ничего знать о внутреннем устройстве компонента и о деталях предметной области для того, чтобы встроить компонент в игру.
Очевидно, что это требование усугубляет показанный ранее логический разрыв между компонентами и обычными библиотеками функций. Требования к архитектуре: Гибкость и модифицируемость Гибкость - ключ к будущему игр. Из-за постоянно растущей стоимости разработки возможность комбинировать и изменять существующие компоненты критична в плане сдерживания цен. Предлагаемая архитектура не зависит ни от жанра игры, ни от технологий, воплощаемых в ней, что позволяет разработчикам создавать различные игры, используя различные технологии. Для того, чтобы эта архитектура прижилась в игровой индустрии, она должна быть достаточно гибка, чтобы любая игра смогла использовать ее. Для того чтобы проверить, отвечает ли полученная архитектура данному требованию, достаточно продемонстрировать, что разные игры могут быть написаны на ее основе. Требования к архитектуре: Масштабируемость и эксплутационная надежность Другими критическими требованиями к архитектуре, также вытекающими из проблемы быстрого роста стоимости разработки, являются масштабируемость и эксплутационная надежность.
Успешные игры часто появляются заново с различными дополнениями и улучшенным качеством. Так, например, компания Blizzard последовательно выпускала три версии своей игры под названием Warcraft, от Warcraft до Warcraft 3. В последней версии были добавлены новые герои и красивая трехмерная графика, но основа во всех трех версиях оставалась очень похожей.
Успешная архитектура должна легко позволять подобную эволюцию игры. Для того чтобы проверить, отвечает ли полученная архитектура данному требованию, достаточно продемонстрировать, что архитектура с легкостью поддерживает новые или улучшенные технологии, а также позволяет легко добавлять новые функциональные схемы в игру. Например, с помощью новой архитектуры разработчики смогут перенести игру из двухмерного пространства в трехмерное, не испытывая при этом трудностей с переписыванием уже написанных частей игры. Производительность и другие качественные параметры не являются приоритетными Может показаться странным, что я не считаю производительность ключевым, главным требованием при проектировании архитектуры программ, предметная область которых постоянно напоминает о высокой планке производительности. Причина в том, что производительность в действительности играет несравнимо меньшую роль в вопросах межкомпонентного взаимодействия, чем производительность самих компонентов и подсистем игры. Например, отрисовка 10 миллионов треугольников одного объекта гораздо сильнее влияет на производительность, чем единичное межкомпонентное воздействие на графическую систему, вызывающее эту отрисовку. Я не стану игнорировать производительность при разработке архитектуры, но требования, описанные выше, имеют более высокий приоритет и значимость.
Другие качественные параметры, такие как надежность или совместимость, также будут учитываться. Однако в данном исследовании рассматриваются лишь те качественные параметры, которые могут быть проверены в заданные временные рамки.
Последующая работа может включать в себя использование методов анализа с целью выбора компромиссного решения, например метод SEI's архитектурного анализа, для того чтобы установить как те или другие параметры поддерживаются данной архитектурой. Вследствие данных намерений только те качественные параметры, которые я считаю самыми важными, принимаются в качестве требований. Основными задачами, решаемыми в данной диссертации, являются следующие:. Получение лучшего понимания игр как систем. Выводы, сделанные в данной диссертации, позволяют лучше понять какие именно подсистемы вовлечены в компьютерные игры и близкие им проекты.
Создание архитектуры для игр, поддерживающей простую разработку и встраивание COTS-компонентов. Создание архитектуры, поддерживающей доступность применения без знаний предметной области, отказ от требований к игровым разработчикам как к экспертам во всех областях, связанных с разработкой игр. Создание архитектуры, поддерживающей гибкость и масштабируемость и позволяющей разработчикам с легкостью добавлять, удалять или модифицировать компоненты игры. Создание архитектуры, поддерживающей масштабируемость и надежность и позволяющей легко расширять возможности игры в следующих ее версиях. В настоящее время существует большое количество книг посвященных теме разработки игр.
Однако большинство из них описывает детали специфичных сфер разработки, а не архитектурные модели и общие подходы к разработке игр. Разумеется, эти книги в той или иной мере решают свои задачи, однако не существует вообще никакой литературы о том, как организовать описываемые первыми книгами конкретные специализированные компоненты игр в готовый продукт, в законченную игру. Книга Кевина Хавкина и Дэвида Астла (Kevin Hawkin and David Astle) под названием OpenGL Game Programming - хороший пример типичной книги о разработке игр. Книга раскрывает многие тонкости графики в компьютерных играх и рассказывает о том, как реализовать их с помощью OpenGL API.
В книге освещены аналитическая геометрия, принципы освещения, текстурирования, трансформаций и различные другие темы, посвященные программированию трехмерной графики. После прочтения этой книги читатель будет иметь основательные познания в области графики и OpenGL API, но использование этих знаний в контексте сложной системы, такой как, например, игра, останется для него загадкой. Получается, что несмотря на то, что книга очень хорошо написана, охватывает многие технические детали формирования пикселей с помощью OpenGL, она практически не содержит информации об архитектуре игры. Примеры, используемые в книге, имеют чрезвычайно упрощенную архитектуру. Один единственный игровой объект вмещает в себя все - графику, ИИ, физику и т.д. Рисунок 4 ниже).
Такой подход к описанию игры возможен в случае рассмотрения какой-либо детали, специфичной части игры, но он является АБСОЛЮТНО неадекватным, неправильным в случае реальных игр. Простейшего логического деления на уровне классов абсолютно не достаточно для проекта, объем которого стремиться к миллионам строк кода. Структурная декомпозиция на уровне объектов классов Для того чтобы увидеть проблемы, связанные с подобным микроскопическим подходом к архитектуре, рассмотрим некоторые вопросы, с которыми постоянно сталкиваются разработчики компьютерных игр. Во-первых, подобная схема не затрагивает вопросов совместимости, крайне важных при коммерческом подходе к игре: игра должна работать как на многочисленных игровых консолях, так и на ПК. Во-вторых, подобный код напрочь лишен возможности повторного использования из-за того, что объект намертво привязан к своему поведению.
Таким образом, данная часть архитектуры не является ни гибкой, ни масштабируемой из-за того, что она представляет собой систему со слишком тесной связью и, изменяя ее, вы рискуете повлиять на всю систему в целом. Книга Руди Ракера (Rudy Rucker) Software Engineering and Computer Games делает попытку научить разработке игр с повторно используемой архитектурой. В книге рассматривается создание каркаса игры по принципу 'Документ Вид' приложения. Упор делается на то, что используя описанный в книге каркас, разработчик может создавать различные игры, просто расширяя этот каркас, предлагаемый автором в качестве 'народного автомобиля' и средства решения всех проблем. Книга рассказывает о том, каким образом шаблоны проектирования могут быть использованы в контексте разработки игровых приложений, и почему возможность повторного использования кода так важна для разработчиков игр. Автор использует архитектуру 'документ вид' для того, чтобы отделить данные от кода, ответственного за их визуализацию, и вследствие этого появляется возможность изменения данных без переписывания кода.
Данная идея предоставляет большую гибкость в вопросах, связанных с игровыми объектами, в тоже время она достаточно ограничена. Искусственный интеллект и физика все еще остаются в ведении объекта, что делает их изменение чрезвычайно затруднительным. Таким образом, в авторской архитектуре система визуализации представляет собой нечто отделенное от объекта, однако при этом автор продолжает использовать механизмы прямого, непосредственного взаимодействия между графикой и данными, что делает оба компонента взаимозависимыми и что 'слегка' противоречит выбранному шаблону проектирования 'документ/вид'.
→ → → Проектирование и архитектура игр Кеш страницы книги с сайта: Название: Проектирование и архитектура игр Автор: Роллингз Э., Моррис Д. Издательство: Вильямс Год: 2006 Страниц: 1035 ISBN: 0-7357-1363-4 Формат: PDF Размер: 201 Mб Язык: русский В книге рассказывается об искусстве проектирования компьютерных игр, начиная от выработки концепции и заканчивая финальными стадиями разработки. В ней обсуждаются вопросы геймплея и достижения оптимального баланса, проблемы выбора организационной структуры рабочей группы и архитектуры программного кода, методы разработки сюжета и обеспечения оригинальности стиля игры. В книге обосновывается рациональность подхода к разработке, опирающегося на проектную документацию, который обеспечивает эффективность рабочей группы проекта и возможность управления изменениями. Все изложенные в книге теоретические постулаты неоднократно апробированы на практике. Книга адресована широкому кругу читателей, а также тем, кто профессионально работает в индустрии компьютерных игр. Она будет интересна не только проектировщикам игр, но и менеджерам, разработчикам, маркетологам и другим категориям специалистов, так или иначе связанным с созданием современных компьютерных игр.
Внешние ссылки, скачать. Источник mirknig.com/knigi/programming/-proektirovanie-i-arhitektura-igr.html Дата и время Страница сгенерирована: 2016-02-27 12:39 Оригинальная дата и время страницы: 2013-10-28 16:09. Смотрите также. Автор: коллектив Название: Архитектура гражданских и промышленных зданий в 5-ти томах Издательство: Стройиздат Год издания: 1976-1986 Формат: DJVU Язык: русский Cтраниц: 1500 Размер: 114 МБ Описание: ОПИСАНИЕ ТОМОВ: Том. Название: Всеобщая история архитектуры в 12 томах Автор: Н.В.Баранов, А.В.Бунин, В.В.Большаков и др.
Издательство: Стройиздат Год: 1973 Страниц: 686 Формат: JPEG Размер: 205 Мб Качество: Отфотографированные страницы Язык: русский От издателя Двенадцатитомная. Название: Всеобщая история архитектуры в 12 томах Автор: Н.В.Баранов, А.В.Бунин, В.В.Большаков и др.
Инструкция по эксплуатации швейной машинки чайка 132 м. Издательство: Стройиздат Год: 1973 Страниц: 690 Формат: JPEG Размер: 205 Мб Качество: Отфотографированные страницы Язык: русский От издателя Двенадцатитомная. Автор: Вильковский М. Издательство: Фонд «Русский авангард» Год: 2010 Формат: pdf + doc Размер: 2.4 Mb Для сайта: В монографии представлен обзор западных и отечественных социологических теорий.
Проектирование И Архитектура Компьютерных Игр Fb2
Автор: Гинзбург М.Я. (глав.ред.) Издательство: Издательство Академии архитектуры СССР Год: 1944 Формат: djvu Язык: русский Cтраниц: 373 Размер: 65 мб Для сайта: Всеобщая история архитектуры, издаваемая Академией архитектуры СССР, является. Автор: Н.В. Баранов, А.В.
Большаков и др. Издательство: Издательство литературы по строительству Год: 1968 Страниц: 592 Формат: DJVU Размер: 228 Mб Язык: русский Двенадцатитомная « Всеобщая история архитектуры» - одно. Автор: Кузнецова Н.В. Название: Кузнецова Н.В. История архитектуры. Основные этапы истории мировой архитектуры Издательство: Тамбов: Изд-во ФГБОУ ВПО «Тамбовский государственный технический университет» Год: 2013 Формат.
Проектирование И Архитектура Игр Pdf
Автор: Коллектив авторов Издательство: Стройиздат Год: 1966 Страниц: 693 Формат: DjVu Размер: 15,4 Мб Язык: русский Двенадцатитомная 'Всеобщая история архитектуры' - одно из наиболее значительных по масштабу изданий в существующей специальной литературе. Ссылка на эту страницу:.