- PVSM.RU - https://www.pvsm.ru -

Открытая разработка игры — подготовка

В своем предыдущем топике [1] я опубликовал ссылку на небольшой набросок идей игры под рабочем названием Hexagon (в документе на тот момент фигурировало название Celestial island). Достаточно много людей проявило к нему интерес, причем не только как корректоры: расставляющие знаки препинания и неистова исправляющие в нем орфографические ошибки, за что им конечно спасибо, но это все же был «набросок» — записки на полях. Но так же некоторые задавали вопросы и изъявили желание принять участие в проекте.

Немного поразмыслив и взвесив все за и против и сказав себе: — А, почему бы и нет.
Я решил провести эксперимент: из проекта «для души», разрабатываемого в свободное время — открыть проект и вести разработку публично под открытой лицензией и посмотреть, что из этого получиться.

Первый этап

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

Рабочая среда

Игровой движок

Изначально выбор был из нескольких движков которые “у всех на слуху”:

У всех у них в том или ином виде есть «щадящие» лицензии для не коммерческих проектов с возможностью на разных условия перейти на платную версию. Все они предлагают целую инфраструктуру, развитое сообщество и отличное портфолио AAA-тайтлов. UDK и Unity3d в свою очередь «из коробки» предоставляют возможность портировать проекты под мобильные платформы.

Unity3d был вычеркнут из списка почти сразу — «непонятки» с лицензированием для некоммерческих проектов: на сайте ее в явном виде нет; по слухам на просторах интернета у кого-то получалось — это решить в индивидуальном порядке или на особых условиях лицензирования и все в этом духе… Слишком много вопросов и мало ответов — решил, что проще не связываться.

Чуть позже следом за ним отправили и двое других претендентов.
Все три движка с их «инфраструктурой» навязывают и свою философию того что на них можно создавать и как это делать от начала и до конца — именно такое ощущение, возможно ошибочное, у меня сложилось при знакомстве. Запускаешь демо и редактор и буквально перед глазами предстает как на них сделать: шутер от первого или от третьего лица, гонки или «поуровневый» платформер… А вот образ стратегии с открытым бесконечными миром ну ни как не проявлялся.

Кроме этого важным критерием при выборе была кроссплатформенность как финального продукта так и инструментов разработки — этот была общая проблема.
В итоге выбор пал на blender [5]. До сих пор многие его воспринимают исключительно как инструмент 3d моделирования(рендер, композинг, анимация и тд), но ни как движок. Хотя данный его модуль буквально с каждым обновлением получает новые возможности. Так же к нему можно подключить, внешний графический движок, например: Ogre [6] или Crystal Space [7], а так же другой физический движок, при необходимости.

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

  • Создание «полноценных» шейдеров (GLSL)
  • Возможность подключение внешних файлов скриптов (по умолчанию скрипты пишутся в самом .blend-файле проекта, во встроенном редакторе)
  • Проверка работоспособности физики и логики по коллизии между объектов, а так же событийная модель в целом.

Было принято решение, по крайней мере на этапе прототипа основной версии игры остановиться именно на нем.

Здесь наверное стоит уточнить, что игра подразумевает возможность играть используя различные устройства и «протоколы». Например, отправив sms с короткой командой изменить тактику боя игровых юнитов, а зайдя в игру с мобильного в открывшемся упрошенном-режиме принять стратегические решения или поучаствовать в торгах. Полнофункциональный клиент на данный момент планируется только для компьютера — это в том числе позволяет решить важную проблему с которой сталкиваются многие порты с одной платформы на другую: когда бывает неудобно играть на тачскрине в те же шутеры, в то время как джойстиком или мышью с клавиатурой управляешься «на ура».

Язык программирования и IDE

Выбор движка был сделан он определил языка — python. До этого был опыт написания на нем как под веб-проекты, так и когда-то давно скриптов непосредственно под сам blender. Проблем с разработчиками, документацией и сообществом тоже не должно быть.

Выбор IDE был сделать в пользу pycharm [8] не удивительно, что разработчики которые изъявляли желание присоединиться так же работали в ней, так как на данный момент, по собственному убеждению — это лучший инструмент на рынке который стоит своих денег, ну и конечно поддержка выше всяких похвал.

3d-редактор

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

Им стал Softimage Mod Tool [9] урезанная во многом версия редактора Softimage XSI для создания игровых модов и некоммерческих проектов. Проблема была лишь в разных маштабах между игровой сценой и Mod Tool, но она быстро решается пайплайном экспорта-импорта.

Локализация

Для того чтобы проект был действительно «открытым» необходимо максимально избавиться от языкового барьера. Все тексты включая документацию было решено вести параллельно на английском и русском. Для этого был выбрано проект notabenoid [10] как оказалось, со слов их администрации, с помощью него и его аудитории уже давно ведется перевод ряда игровых проектов и проектной документации.

Веб-платформа

Публичный проект необходимо адекватно и удобно представить в сети:

  • Коллективная удаленная работа и планирование
  • Написание документации
  • Возможность работать с комьюнити
  • Публикация исходников

Инструментом коллективной сначала стал googel apps [11] позже teamlab [12]. Описывать проект и создавать задачи (особенно вложенные) в teamlab оказалось крайне не удобно а разграничения прав пользователей крайне не очевидным в итоге пришлось продолжить поиски, в том числе создать соответствующий вопрос в q&a [13]. Максимально соответствующий всем моим там озвученным требованиям оказался не очень известный birdviewprojects [14]. Сочетающий в себе инструменты: планирования, коллективной работы и небольшой «бухгалтерии».

Для документации выбор очевиден — нужен вики-движок. Google docs всем хороши, но без удобных кроссылок и поддержки моногоязычности не обойтись ни как, особенно при больших объемах текста. Выбор оказался достаточно ограниченным рамками облачной платформы который стал appfog [15]. При всех ее плюсах (тарифы, прикрепление своих доменных имен, широкий выбор языков, хорошая документация и тд) по сравнению например с OpenShift [16] глюки и медлительность которого начинаются буквально после прохождения регистрации (доступ к сервису по неизвестной причине был получен только спустя неделю после оной) у нее существуют детские болезни, и ряд ограничений для загружаемых приложений.

Загрузилась и запустилась только MediaWiki [17]. При этом именно она была на первом месте среди претендентов по совокупности имеющихся возможностей. Так что стечение обстоятельств стало определяющим фактором.

Работа с комьюнити и хранилище исходников в современном открытом программном продукте часто идут «бок о бок ». Это наш случай — github [18], по моему личному убеждения, не имеет на данный момент конкурентов, если не нужны приватные проекты которые для данного проекта не актуальны.

Лицензия

Важным аспектом открытой разработки является лицензия для публикуемых материалов и исходников. Для меня было важно в первую очередь сохранить авторство всех участников проекта насколько бы они малый вклад в проект не делали, а так же не исключить возможность создавать платные «редакции» проект.

По этим и ряду других причин после долгого изучения различных вариантов для кода была выбрана New BSD [19], а для всего остального контента, начиная от моделей и заканчивая документацией (для всех материалов где лицензия не указана явн) CC BY-NC 3.0 [20] дающая возможность использовать все в некоммерческих проектах, а при желании запросить у правообладателя индивидуальное расширение ее рамок.

Послесловие

На этом я думаю стоит завершить свой рассказ об этапе «подготовки» к разработке игрового проекта. Если у посетителей хабра будет интерес к проекту, о котором в данном статье было рассказано буквально пара строк, то спрашивайте — я обязательно отвечу. Если есть желание поучаствовать — обращайтесь, обсудим.
Так же в ближайшее время начнется публикация исходников и документации, обо всем — этом кроме статей на хабре будет написано и на будущем сайте scrw [21].

Автор: Kaaboeld

Источник [22]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/25542

Ссылки в тексте:

[1] топике: http://habrahabr.ru/post/164465/

[2] UDK: http://www.unrealengine.com/udk/

[3] Crytek engine SDK: http://www.mycryengine.com/

[4] Unity3d: http://unity3d.com/

[5] blender: http://www.blender.org/

[6] Ogre: http://www.ogre3d.org/

[7] Crystal Space: http://www.crystalspace3d.org/main/Main_Page

[8] pycharm: http://www.jetbrains.com/pycharm/

[9] Softimage Mod Tool: http://usa.autodesk.com/adsk/servlet/pc/item?id=13571257&siteID=123112

[10] notabenoid: http://notabenoid.com/

[11] googel apps: http://www.google.com/intl/ru/enterprise/apps/business/

[12] teamlab: http://www.teamlab.com/ru/

[13] вопрос в q&a: http://habrahabr.ru/qa/32197/

[14] birdviewprojects: http://www.birdviewprojects.com/ru/

[15] appfog: https://www.appfog.com/

[16] OpenShift: https://openshift.redhat.com/app/

[17] MediaWiki: http://www.mediawiki.org/wiki/MediaWiki

[18] github: https://github.com/

[19] New BSD: https://github.com/scrw/hexagon/blob/master/NEW-BSD-LICENSE.txt

[20] CC BY-NC 3.0: http://creativecommons.org/licenses/by-nc/3.0/

[21] scrw: http://www.scrw.co/

[22] Источник: http://habrahabr.ru/post/166843/