Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Сегодняшний проект слегка отличается от наших обычных изысканий в С++, но я полагаю, что он очень хорош. И так как он компилируется в VS 2005, VS2008 и VS2010 и является забавным, мне кажется, что он понравится и вам.
Проект пока еще находится на альфа-стадии, но уже реально хорош, так что если вы захотите помочь ему, то можете приблизиться к основам…
Я сказал «помочь»? Да, он нуждается в вашей помощи...
Мы ищем разработчиков, художников, звукорежиссеров, веб-дизайнеров и т. д.
Их роли в команде разработки 0 A.D. значительны, если вы хотите усовершенствовать свое мастерство и обновить портфолио, если ищете учебный проект с выходом в реальную жизнь, если вы заботитесь о судьбе свободной культуры и ПО, и если вы готовы трудиться для общественного блага с группой добровольцев со всего мира.
Интересно? Пожалуйста, зарегистрируйтесь на форуме и начните новую тему, представив себя в форуме приложений и вкладов, следуя инструкции.
О каких проектах мы говорим?
• Свободно распространяемое ПО с открытым кодом
• Кросс-платформенность
• Основана на исторических событиях
• Шесть уникальных цивилизаций
• Провинции и территории
• Реалистичная карта/топография
• Реалистичные морские сражения
• Исчерпывающий редактор
• Несколько многопользовательских режимов
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.
На странице описывается, как получить последнюю нестабильную версию кода. Если вы не планируете активно участвовать в разработке, возможно, вам понадобиться последняя относительно стабильная версия.
Текущий выпуск игры предназначен для разработчиков, а не для «нормальных» пользователей. Поэтому следующие инструкции предполагают разумный уровень технического опыта. Если вы столкнетесь со сложностями, пожалуйста, обращайтесь на форум.
Общие требования ¶
Вам понадобиться:
В достаточной мере мощный компьютер – несколько гигабайт свободного дискового пространства, желательно, по крайней мере, 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 C++ 2010 Express Edition.
- Или скачайте и установите Visual C++ 2008 Express Edition.
- Если у вас старая VC++ 2005 Express, вам понадобится установить отдельный пакет Platform SDK (шаги 1-3).
Файлы решения и проекта Visual Studio генерируются автоматически из исходных файлов:
- Запустите build/workspaces/update-workspaces.bat.
- Откройте build/workspaces/vc2010/pyrogenesis.sln. (Используйте каталог vc2005 для VC++ 2005 или vc2008 для VC++ 2008.)
- ...
Для получения файлов из репозитария SVN, выполните один командный файл и запустите решение. Да, действительно, так просто.
Теперь репозитарий исходников велик ( устанавливаемая версия, которую можно скачать занимает 275 МБ, так что можете вообразить объем исходников и ресурсов,… который составляет 3,16 ГБ, включая откомпилированные двоичные файлы), так что понадобиться время, чтобы получить их. Но если вы это сделаете, то сможете собирать игру и запускать в отладчике (По крайней мере, я смог… ).
Вот снимок моего дерева, выполненный программой WinDirStat после компиляции и сборки.
Итак, вы получаете потрясающую стратегию и все, что нужно для ее построения. Вот снимок решения:
Код грамотно прокомментирован (т. е. прокомментированы намерения, а не просто код переписан другими словами).
Вы сможете принять участие в разработке большой игры, когда захотите, если вас привлекает идея помочь в построении стратегии реального времени или вы просто хотите взглянуть на исходники…