понедельник, 11 июля 2011 г.

Ogre3D Beginner Tutorial without the ExampleApplication framework

Появилась идея заняться разработкой игр, в связи с чем начали осваивать и выбирать графический движок. В основном нас заинтересовали Unity3D, Ogre3d и UDK (может быть ещё XNA). Наткнувшись на гайд по Ogre решил его перевести для себя. Пусть будет криво, но будет. Я потренируюсь в переводе и необходимость закончить перевод будет дополнительным стимулом изучить Огра.

Введение (о чём этот гайд)
Организация (или спасибо кэп)


О чём эта статья?
Нет такого места, где можно было бы учиться на чужом опыте и ошибках в разработке игр и моделировании. Конечно существуют буквально сотни отличных wiki-статей и сообщений на форумах, которые могут ответить практически на любой вопрос (если конечно вы знаете что и как искать), и я обязательно буду ссылаться на них в ходе этого курса. Для тех, кто имеет неплохое понимание объектно-ориентированных языков и разработки, но ничего не смыслит в разработке 3D игр может быть тяжело разобраться в том, что нужно знать, чтобы начать работу и написать игру на практике.

Целевая аудитория этого курса - это опытный программист, который хочет учиться созданию игр, но не знает с чего начать. Начнём прямо тут :) Я расскажу о важных задачахи темах, объясню что делать и как использовать библиотеки, указанные далее (включая Ogre3D конечно). Я буду рассматривать их, если это необходимо, либо ссылаться на соответствующие wiki-статьи.

Конечно я не стану учить вас C или C++ (или C# или ...). Вы уже должны иметь какой-то практический опыт с ООП и C++, или вы тратите время зря. Без опыта работы с C++ вы так же тратите зря время людей из unity community, желающих помочь вам, но быстро разочаровывающихся из-за низкого уровня знаний новичков, которые не знают как запустить Visual Studio, выполнить ./configure или что такое указатель. Вы должны выучить это самостоятельно, это (как в любой игре или большом приложении) достаточно сложная система, и я думаю, что разработчики Ogre Demo apps, руководствуясь благими намерениями и сделав простой метод "run()" в ExampleFramework, дали новичкам возможность начать разработку не надеясь на полное понимание работы этого модуля. Так, что, если всё, что вы хотите сделать - это загрузить анимированную модель в Ogre и смотреть, как она бегает по экрану - то этот курс не для вас, откройте папку с демками, там уже всё для вас сделано.

Это звучит как будто я ругаю ExampleApplication Framework, это не так. Оно использует стандартный объектно-ориентированный шаблон и он неплохо работает в некоторых ситуациях: в демонстранионном пирложении, маленьких играх с минимальными требованиями, приложений для визуализации и так далее. То, о чём я буду говорить выше этого. Вы хотите убрать диалог настройки и загрузить свои собственные данные, контролировать загрузку ресурсов при инициализации? Если да - то этот курс для вас.

Тем не менее... Для меня стало очевидным, что Ogre была одной из лучших библиотек для 3D рендеринга: крос-платформенная, проверенная временем, имела множество функций и находилась в активной разработке.Существует всего одна или две жизнеспособных библиотек с открытым исходным кодом для обеспечения каждой из подсистем игры. Ogre для рендеринга, OpenAL для звука, ODE для физической симуляции и так далее. Каким бы ни был твой проект ты скорее всего уже принял решение какие библиотеки ты будешь использовать. Это не имеет значения для данного курса. Просто имей в виду, что выбор библиотеки обуславливается некоторыми причинами: проверка временем, возможности, активность разработки (так как эта разработка в конце концов является частью твоей игры).

Этот курс написан как проект, использующий Ogre для видео, OIS для ввода, CEGUI для 2D GUI, RakNet для сети, OpenAL для звука и Gangsta, как физический движок.

Комментариев нет:

Отправить комментарий