суббота, 31 марта 2012 г.

Урок 1

Привет всем.
Игровой движок
В этом уроке я расскажу из чего должен состоять игровой движок. И сразу вопрос, что такое игровой движок. Не существует единого, общепринятого определения игрового движка. Каждый разработчик понимает его по-своему, и выделяет в него какие-то определенные элементы. Попробуем построить наиболее широкую схему игрового движка.
Игровой движок — это центральный программный компонент компьютерных и видео игр или других интерактивных приложений с графикой, обрабатываемой в реальном времени. Он обеспечивает основные технологии и часто даёт игре возможность запускаться на нескольких платформах, таких как игровые консоли и настольные операционные системы, например, Linux, Mac OS и Microsoft Windows.
Игровые движки предоставляют собой гибкую и многократно используемую программную платформу со всей необходимой функциональностью для разработки игрового приложения, сокращая затраты, сложность и время разработки — все критические факторы в сильно конкурирующей индустрии видеоигр.
В наиболее широком случае, игровой движок включает в себя:
·       Графический движок
·       Систему игровой логики
·       Систему ввода и работы в сети
·       Систему анимации
·       Физический движок или система навигации и обнаружения столкновения
·       Систему искусственного интеллекта
·       Звуковой движок
·       Скриптовый движок
·       Базу данных трехмерных моделей и изображений
·       Разнообразные редакторы для работы с движком и создания игры
Некоторые игровые движки предоставляют только возможности 3D рендеринга (т.е. визуализации) в реальном времени вместо всей функциональности, необходимой играм. Эти движки доверяют разработчику игры реализацию остальной функциональности или её сбор на основе других игровых компонентов. Такие типы движков обычно относят к графическим движкам («движкам рендеринга» или «3D движкам») вместо более содержательного термина «игровой движок». Однако эта терминология используется противоречиво: так, многие полнофункциональные игровые 3D движки упомянуты просто как «3D движки».
Обладая только графическим и физическим движками, можно приступать к разработке игры, но только на уровне программного интерфейса. Каждое изменение вносится непосредственно в код. Это очень неудобно для геймдизайнеров, им требуются более простые и понятные инструменты разработки. Для этого пишутся вспомогательные визуальные средства разработки, которые могут включать редакторы моделей, редакторы карт, редакторы уровней. Не последнюю роль здесь играет и скриптовый движок, с помощью которого можно управлять всеми остальными элементами игрового движка.
Жанр
Структура игрового движка сильно зависит и от жанра игры, для которой он создается. Например, в гоночных аркадах может не быть развитого физического движка, а только учет сил трения, упругих соударений и импульса. А в некоторых играх физика может составлять часть геймплея (геймплей - совокупность игровых возможностей, образующих собственно игровой процесс) данной игры, как например в Half-life 2.
Часто игровые движки имеют компонентную архитектуру, позволяющую заменять или расширять некоторые системы движка более специализированными компонентами. Некоторые игровые движки, такие как RenderWare, проектируются как набор слабосвязанных компонентов, которые могут выборочно комбинироваться для создания собственного движка, вместо более традиционного подхода расширения или настройки гибкого интегрируемого решения.
Подавляющее большинство движков пишется на языке программирования С++. Хотя существуют движки, написанные на таких языках программирования, как Delphi и C#. Но их число не так велико и они не могут сравниться по своим возможностям и проработке с платными решениями от крупных компаний разработчиков.
Несмотря на специфичность названия, игровые движки часто используются в других типах интерактивных приложений, требующих графику в реальном времени, таких как рекламные демо-ролики, архитектурные визуализации, обучающие симуляторы и среды моделирования.

Вывод
·       Игровой движок представляет собой удобный конструктор для создания игры. При этом требуется минимальное вмешательство программистов, и большая часть работы может быть выполнена другими членами команды разработчиков.
·       Разработка игрового движка является очень трудоемким, длительным и дорогим процессом, посильным не всем игровым студиям.
·       В некоторых случаях, при разработке игры стоит купить готовый игровой движок, чтобы сократить трудозатраты и время разработки.
·       Но для создания качественной игры мало купить хороший игровой движок. Необходимо собрать квалифицированную команду разработчиков, которые смогут качественно реализовать все задумки и инновации.

четверг, 29 марта 2012 г.

Начало

Всем привет. Со следующего понедельника, я начинаю курс по программирования 3D движка на C#. Вы спросите под какой API мы будем разрабатывать, конечно OpenGL, а точнее Tao Framework. Работа будет вестись в microsoft visual studio 2010.Вернемся к движку, наш "Велосипед", сможет загружать модели в формате OBJ и 3DS, поддержка SKYBOXа, обработка столкновений, поддержка текстур (PNG,BMP и JPG), источник света, тени.
Вот небольшой план:
  1. Введение в 3D
  2. Изучим архитектуру движка
  3. Подготовим наш проект к работе
Ну вот и все спасибо за потраченное время.