0 A.D.

Содержание:

Опубликовано: 10 Июля 2009

English 简体中文 Español Português Português Français Deutsch Türkçe Polski Español de Chile Česky עברית Galego Русский   Russian translation by fcxSanya.

Swamp Defense screenshot

Что такое 0 A.D.?

0 A.D. - бесплатная кросс-платформенная трёхмерная историческая стратегия реального времени, находящаяся в разработке.

Что вы делаете?

Переходим от закрытого процесса разработки к открытому: делаем исходный код доступным под GPL, а ресурсы под CC-BY-SA и стимулируем внешний вклад. Мы несколько лет работали над 0 A.D. в свободное время, и сейчас хотим показать, чего мы достигли и упростить другим людям вовлечение в процесс.

0 A.D. очень сложный и амбициозный проект. В него вложено много работы и многое ещё предстоит сделать. Мы не выпускаем готовый продукт, пригодный для игры - придётся долго ждать, если вас это интересует. Есть ещё много недостающих возможностей, багов и острых углов. Мы выпускаем это как проект-в-разработке, пре-альфа версию, предназначенную для разработчиков, интересующихся такими вещами, в надежде разделить ресурсы с сообществом, которое иначе было бы исключено из процесса разработки.

Это экспериментальный шаг, и мы не вполне уверены, что всё идёт наилучшим образом, потому мы двигаемся осторожно и пытаемся адаптироваться, основываясь на опыте. Данный документ описывает наши текущие планы. Обратная связь будет оценена! Связывайтесь с нами на наших форумах или на канале #0ad на QuakeNet IRC.

Discovery screenshot

Почему меня это должно интересовать?

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

Возможно, вы хотите получить опыт работы над сложным программным продуктом или конкретно над игрой. Данный проект включает в себя: графику и аудио, AI и UI, работу с файлами и создание скриптов для геймплея, работу с сетью и многое другое. Базовый фреймворк - уже готов, кое-что в нём уже проработано, однако есть еще много компонентов, требующих усовершенствования.

Возможно, вы хотите улучшить работу игры на своей любимой платформе. Возможно, вы хотите показать нам как мы глупы и что вы можете написать код лучше. (Мы далеки от совершенства!)

Возможно, вы хотите использовать часть кода или ресурсы игры в собственном проекте. Возможно, вы хотите использовать 0 A.D. для обучения практической разработке игр. А может быть, у вас есть другие причины.

Gaugamela screenshot

Почему вы это делаете?

Мы работаем над этой игрой в той или иной форме с 2001. Мы прошли с тех пор долгий путь, но создание игры такого типа действительно нелёгкая задача. Изначальная команда разработчиков была по большей части студентами и теперь вошла в жизнь и не может уделять много времени проекту. Привлечение новых разработчиков сложно и затратно по времени - мало людей обладают временем и навыками для обучения работе в рамках нашего существующего кода и внесения значительного вклада. Потому мы хотим понизить барьеры для входа, сделать так, чтобы людям было проще получить наш проект и посмотреть, интересен ли он им, в надежде, что некоторые решат вовлечься в процесс разработки.

К тому же, у нас есть некоторые идеи, инструменты и код, который на наш взгляд вполне хорош, и которым мы хотим поделиться. Мы должны почистить его и задокументировать должным образом, чтобы он был более полезен для других людей, но предоставление доступа к коду - первая задача. И, в частности на Linux, открытый исходный код решает некоторые проблемы с распространением и отладкой, делая некоторые вещи проще для нас и для пользователей.

До текущего момента доступ к проекту был ограничен до "официальных" членов нашей команды. Мы изначально намеревались сделать игру некоммерческой, просто концепция "открытого кода" не являлась для нас интересной в тот период.

Magna Graecia screenshot

Как будет организована разработка?

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

Раньше все разработчики были частью "официальной" команды, к которой каждый мог присоединиться. У нас было короткое интервью через IRC, чтобы узнать кандидата, и, если он имел время, энергию и навыки для участия, он становился членом команды. Мы хотим сохранить ядро группы разработчиков и личный способ общения - мы не хотим рисковать разрушением команды, которую мы уже получили. Мы хотим сохранить направление к конкретной версии проекта и не хотим сильно отклоняться от него - мы скорее не будем добавлять (и поддерживать) возможности, которые не являются частью цели. Мы выпускаем ресурсы для двух из шести игровых цивилизаций, но сдерживаем цивилиации-в-разработке, пока они не будут более завершены и пригодны для использования.

Отдельно от этих ограничений мы открываем доступ к серверу системы управления версиями (Subversion) и системе документирования и отслеживания ошибок (Trac) и перемещаем наши технические обсуждения на открытый форум. Любой может скачать, собрать и запустить последнюю версию игры. Наш изначальный процесс вклада будет очень прост: если вы делаете изменения, вам нужно создать патч и предоставить его нам, а мы должны проверить его и, возможно, предложить некоторые изменения или зафиксировать его в svn.

Вопрос лицензирования патчей и доработок остается открытым. С одной стороны, принятие GPL кода участников дает гарантии, что мы не намерены нечестно использовать их труд. С другой стороны, мы намерены сохранять наши возможности открытыми, принимая код только под BSD-лицензией. Возможно, для создания специальной версии, скомпанованной с проприетарной программой обнаружения читов, для препятствования мошенничеству на многопользовательских картах, которое может быть элементарно встроену в игру с открытым исходным кодом. Или для компоновки с проприетарными системами цифровой дистрибуции, для более эффективного распространения игры. Однозначное решение этого вопроса пока не найдено, поэтому его обсуждение остается открытым.

Savanna Biome screenshot

Как выгядит код?

Это примерно 150 тысяч строк C++ кода игрового движка и ещё 25 тысяч для инстументария. Скрипты для игрового процесса пишутся на JavaScript. Код построен поверх низкоуровневых библиотек (OpenGL, OpenAL, ENet, ...), а не на готовом игровом движке (типа OGRE).

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

Насколько код пригоден для повторного использования?

Большинство кода специфично для данной игры, однако некоторые его части могут быть интересны для разработчиков, работающих над другими проектами. Несколько примеров:

Как 0 A.D. соотносится с другими играми?

Мы знаем о нескольких других RTS с открытым исходным кодом. Glest достиг стабильного состояния и базируется на средневековом фэнтази мире, с менее сложным геймплеем и графикой, но с AI оппонентами (которые пока не реализованы в 0 A.D.). ORTS - фреймворк, делающий упор больше на исследовании AI, чем на игре. Spring - другой RTS-движок, который предназначен для игр, подобных Total Annihilation. 0 A.D. стремится отличаться от других игр, обеспечив новые идеи игрового процесса, детализованную графику и точный исторический сеттинг.

С чего я могу начать?

Смотри Руководство по началу работы, чтобы найти больше информации об игре, форумы для обсуждений, инструкции для сборки и запуска игры и ссылки для дальнейших подробностей.