0 A.D. Стратегия реального времени с открытым кодом С++, которую ищут фанаты разработки игр

Грэг Дункан

Сегодняшний проект слегка отличается от наших обычных изысканий в С++, но я полагаю, что он очень хорош. И так как он компилируется в VS 2005, VS2008 и VS2010 и является забавным, мне кажется, что он понравится и вам.

Проект пока еще находится на альфа-стадии, но уже реально хорош, так что если вы захотите помочь ему, то можете приблизиться к основам…

Я сказал «помочь»? Да, он нуждается в вашей помощи...

Мы ищем разработчиков, художников, звукорежиссеров, веб-дизайнеров и т. д.

Их роли в команде разработки 0 A.D. значительны, если вы хотите усовершенствовать свое мастерство и обновить портфолио, если ищете учебный проект с выходом в реальную жизнь, если вы заботитесь о судьбе свободной культуры и ПО, и если вы готовы трудиться для общественного блага с группой добровольцев со всего мира.

Интересно? Пожалуйста, зарегистрируйтесь на форуме и начните новую тему, представив себя в форуме приложений и вкладов, следуя инструкции.

О каких проектах мы говорим?

0 A.D.

image

• Свободно распространяемое ПО с открытым кодом
• Кросс-платформенность
• Основана на исторических событиях
• Шесть уникальных цивилизаций
• Провинции и территории
• Реалистичная карта/топография
• Реалистичные морские сражения
• Исчерпывающий редактор
• Несколько многопользовательских режимов

Обзор

0 A.D. (произносится "зеро эй-ди" ) – свободно распространяемая кросс-платформенная стратегия реального времени с открытым исходным кодом, посвященная древним сражениям. Кратко говоря, это историческая военно-экономическая игра, которая позволяет игрокам пережить или переписать историю Западных цивилизаций, существовавших в период от 500 года до н. э. и по 500 год н. э. Это претенциозный проект, включающий современную трехмерную графику, подробные иллюстрации, звуки, а также мощный и гибкий движок.

Игра создавалась группой Wildfire Games (WFG), объединяющих с 2001 г добровольцев, занимающихся разработкой игр. Код и данные доступны по лицензии GPL, а художественные изображения, звуки и документация – под CC-BY-SA. Одним словом, мы рассматриваем 0 A.D. как учебный праздник разработки игр и древней истории.

Основные возможности – техника
  • Для производительности движок написан на C ++ , но на скриптовом языке javascriptмы старались писать где только возможно.
  • Рендеринг: OpenGL с шейдерами
  • Использованные библиотеки: OpenAL, OpenGL, Boost, Crypto++, CxxTest, DevIL, SDL, SpiderMonkey, Vorbis, wxWidgets, Xerces
  • Операционные системы:
    • Windows 2000, XP, 2003, XP64, Vista
    • Linux
    • Mac OS X
  • Системные требования: 1 ГГц ЦПУ, современная графическая карта (минимум GeForce 3), 512 Мб RAM
  • Использованные инструменты: Visual Studio, g++, CppDoc, COLLADA, встроенные инструменты отладки и профилирования

Графика

  • Движок на основе OpenGL с шейдерами
  • Иерархическая анимация скелета и система деформаций, базирующаяся на COLLADA
  • Фантастически анимированная вода с рефракциями и отражениями
  • Реалистические тени
  • Эффекты частиц
  • Эффекты освещения окружения (время дня, закаты)
  • Гибкий рендеринг территорий, использующий альфа-карты для бесшовного соединения территорий

Игра

  • Уникальные цивилизации: В игре 0 A.D. каждая цивилизация уникальна по своим внешним признакам, действующим персонажам, структуре и набору технологий.
  • Ополчение: В игре нет стандартных крестьян. Вместо этого регулярная пехота и кавалерия имеют не только военные функции, но и экономические, что делает их существенно более гибкими, чем в обычных стратегиях.
  • Автообновление персонажей: Ополченцы приобретают опыт и автоматически продвигаются по служебной лестнице. С каждым чином они становятся сильнее и приобретают уникальный внешний вид, но одновременно деградируют в выполнении гражданских задач.
  • Персонажи в строениях и кораблях: Жизнь персонажей проходит в строениях и на транспортных кораблях. Некоторых военнослужащих можно увидеть на стенах строений и палубах кораблей, они способны стрелять в противников.
  • Реалистичные морские сражения: больше неткрошечных судов? Которые топят крупные корабли стрелами. Корабельный сюжет включает множество новых возможностей стратегий: корабли существенно больших размеров, захват кораблей, тараны, и модульную сборку, позволяющую устанавливать на палубе катапульты, а войскам стрелять из луков.
  • Выбор, выбор и еще раз выбор: Иерархии технологий строятся как двоичные деревья. Например, если стоит выбор между технологией 1A и 1B, и вы выбираете для изучения 1A, то 1B становится недоступной. Некоторые технологии, стоящие на более высоких этажах технологической лестницы, требуют наличия 1A, в то время как другие – 1B. Такой подход добавляет к выбору технологий элемент стратегии и случайности, так как технологии более высокого уровня зависят от предыдущего выбора. Аналогичный выбор есть при формировании боевых единиц и тактики сражений.
  • Провинции и территории: В некоторых играх карта делится на провинции, которые можно захватывать и присоединять к территории игрока, чтобы потреблять возможные ресурсы и создавать на них форпосты. По желанию игрока, стартовая провинция может быть обнесена укреплениями, которые постепенно деградируют, для сдерживания натисков соперников.
  • Реализм карты мира: Случайные карты основаны на географических регионах, в которых развивались цивилизации древнего мира. Они генерировались с помощью специфических для расположения экосистем, повторяющих внешний вид и ощущение мира, существовавшего две тысячи лет тому назад: флора, фауна и территория.

Звучит так, как будто это сложно скомпилировать, не правда ли? Все эти внешние библиотеки и т. п.? И как я обещал, кое-что о Visual Studio.

Инструкции по сборке 0 AD

На странице описывается, как получить последнюю нестабильную версию кода. Если вы не планируете активно участвовать в разработке, возможно, вам понадобиться последняя относительно стабильная версия.

Текущий выпуск игры предназначен для разработчиков, а не для «нормальных» пользователей. Поэтому следующие инструкции предполагают разумный уровень технического опыта. Если вы столкнетесь со сложностями, пожалуйста, обращайтесь на форум.

Общие требования

Вам понадобиться:

  • В достаточной мере мощный компьютер – несколько гигабайт свободного дискового пространства, желательно, по крайней мере, 1 Гб ОЗУ, быстрый процессор, если не хотите проводить века в ожидании компьютера. Также рекомендуется современная графика, хотя игра может запускаться и на довольно старых видеокартах (GeForce 4, Intel 945GM и т. д.), правда медленно.

  • Современно программное обеспечение (пакеты обновлений Windows, обновления графических драйверов и т. д.)

  • Некоторый технический опыт. Мы старались сделать процесс сборки гладким и бесшовным насколько возможно, но он все-таки предназначен для программистов – если вы хотите просто поиграть в игру, используйте вместо этого помещенный в пакет инсталлятор.

Windows

Windows 7, Vista и XP – основные поддерживаемые версии; Windows 2000 также должна работать, но она тестировалась редко. Поддерживаются Visual C++ 2010 и 2008. Также подойдет и Visual C++ 2005 с достаточно современным пакетом Platform SDK. Поддерживаются лишь 32-разрядные сборки (хотя они могут компилироваться и запускаться в 64-разрядной Windows). Мы отмечали появление периодических проблем со свободными редакциями Express Editions, поэтому, при возможности, постарайтесь приобрести полную версию (например, через программы поддержки университетов). Конкретно, отказ встроенного автотеста test_wdbg_sym.h, по-видимому связан с VC2008 EE, и его нет в ни в VC2008 ни в VC2010 (карта отказа #884).

Получение кода

Код игры, данные и окружение сборки хранятся на сервере подверсий. Чтобы получить актуальную копию кода, рекомендуется воспользоваться программой TortoiseSVN:

  • Скачайте и установите TortoiseSVN. (Убедитесь, что перезагрузитесь, когда вас попросят об этом).
  • Используйте TortoiseSVN для выгрузки https://svn.wildfiregames.com/public/ps/trunk/. Это может занять некоторое время и при этом будет использовано 1,2 Гб дискового пространства. Если в процесс возникнут ошибки, используйте “обновления” TortoiseSVN чтобы продолжить загрузку.

Руководство по TortoiseSVN содержит информацию по выгрузке, а также по обновлениям и созданию заплаток.

(Этот публичный URL документов, предназначеных только для чтения. Если вы хотите иметь общий доступ, нужно использовать https://svn.wildfiregames.com/svn/ps/trunk/.)

Задание окружения сборки

Игра должна компилироваться с помощью Microsoft Visual C++. Если у вас уже установлена Visual C++ 2005 или 2008, убедитесь, что также установлен SP1 и затем продолжайте. В противном случае вы можете получить свободно доступную редакцию Express:

Файлы решения и проекта Visual Studio генерируются автоматически из исходных файлов:

  • Запустите build/workspaces/update-workspaces.bat.
  • Откройте build/workspaces/vc2010/pyrogenesis.sln. (Используйте каталог vc2005 для VC++ 2005 или vc2008 для VC++ 2008.)
  • ...

Для получения файлов из репозитария SVN, выполните один командный файл и запустите решение. Да, действительно, так просто.

Теперь репозитарий исходников велик ( устанавливаемая версия, которую можно скачать занимает 275 МБ, так что можете вообразить объем исходников и ресурсов,… который составляет 3,16 ГБ, включая откомпилированные двоичные файлы), так что понадобиться время, чтобы получить их. Но если вы это сделаете, то сможете собирать игру и запускать в отладчике (По крайней мере, я смог… ).

Вот снимок моего дерева, выполненный программой WinDirStat после компиляции и сборки.

SNAGHTML23024551_thumb[1]

Итак, вы получаете потрясающую стратегию и все, что нужно для ее построения. Вот снимок решения:

image_thumb[2]-33[1]

image_thumb[4]-26[1]

Код грамотно прокомментирован (т. е. прокомментированы намерения, а не просто код переписан другими словами).

SNAGHTML2305fc21_thumb[1]

Вы сможете принять участие в разработке большой игры, когда захотите, если вас привлекает идея помочь в построении стратегии реального времени или вы просто хотите взглянуть на исходники…