LINUX.ORG.RU

Выбор лицензии для графического 3D движка

 , , , ,


1

3

Пишу велосипед грузящий wavefront, md5 (модельки из дума 3 - не чексуммы :D). Умеет модели освещения, псевдоотражения (на фреймбуфферах), скелетную анимацию и нескучный препроцессинг шейдеров.

Через пару месяцев собираюсь выкладывать на github. Будет документация в виде текста и UML.

По лицензии хотелось бы, чтобы его можно было использовать в свободных/открытых проектах (обязательно) и может быть в коммерческих (кроссплатформенная индюшатинка в 3D).

Хочу сохранить право называть себя автором проекта (и защитить его в качестве дипломной).

Какую лицензию посоветуют знатоки?

★★★

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

Формально бывает момент, что дипломный проект принадлежит универу, но фактически это не важно.

А выбрать лучше MIT или новую BSD, они практически эквивалентны.

CrossFire ★★★★★ ()
Ответ на: комментарий от CrossFire

Формально бывает момент, что дипломный проект принадлежит универу, но фактически это не важно.

На кафедре сказали - «после защиты можешь выложить, продать кому-нибудь, выбросить на свалку истории. К (дипломной) работе это уже не относится. Так что тут всё ок.

robus ★★★ ()
Ответ на: комментарий от EXL

MIT

Позволит ли эта лицензия нам с другом написать на нём игру и заработать на бутерброд с салатом?

А произвольным разрабам?

И если можно - в чём её отличие на пальцах от lGPLv3?

robus ★★★ ()
Последнее исправление: robus (всего исправлений: 1)
Ответ на: комментарий от robus

Самое самое главное - это смысл игры. Самого разнообразного шлака и так хватает на любые мыслимые тематики и вариации.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от robus

http://licenseit.ru/wiki/index.php/MIT_License

Позволит ли эта лицензия нам с другом написать на нём игру и заработать на бутерброд с салатом?

Да.

А произвольным разрабам?

Да.

И если можно - в чём её отличие на пальцах от lGPLv3?

Основное отличие: если движок будет под LGPLv3, то сторонние разработчики обязаны будут открыть все свои изменения в коде движка. Но сама игра может быть проприетарной, при условии что она использует движок как библиотеку/компонент. Если движок будет под MIT, то сторонние разработчики будут обязаны лишь сохранить твоё авторство. Независимо от того, оставят они код открытым или нет. Продажа не возбраняется в любом случае.

EXL ★★★★★ ()

LGPLv3, чтобы возвращали изменения в проект (предоставляли патчи) при его публичном использовании. Им самим надо будет только динамически линковать или статически, но с предоставлением возможности перелинковки. С коммерческим применением не конфликтует.

xaizek ★★★★★ ()
Последнее исправление: xaizek (всего исправлений: 2)
Ответ на: комментарий от EXL

По мне так LGPLv3 это лицензия что надо, при условии если двиг стоящий. Но судя по всему тут и MIT хватит.

I-Love-Microsoft ★★★★★ ()

По лицензии хотелось бы, чтобы его можно было использовать в свободных/открытых проектах (обязательно) и может быть в коммерческих (кроссплатформенная индюшатинка в 3D).

Любая свободная лицензия по-определению дозволяет использовать произвденеие в коммерческих целях.

Отсюда очевидно, что *не существует* таких лицензий, чтоб произведение можно было включать в свободные программы, но нельзя в коммерческие.

Поэтому ваше «может быть» отпадает.

Zmicier ★★★★★ ()
Ответ на: комментарий от AlexVR

Какую лицензию посоветуют знатоки?

BSD

Лицензии с названием «BSD» не существует.

Zmicier ★★★★★ ()
Ответ на: комментарий от CrossFire

Формально бывает момент, что дипломный проект принадлежит универу

В России? Можно пример?

Zmicier ★★★★★ ()
Ответ на: комментарий от CrossFire

А выбрать лучше MIT или новую BSD

Откуда такая любовь к бестолково написанным договорам?

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

Zmicier ★★★★★ ()

А возвращаясь к теме, рискну поворчать — и спросить, а что вы, товарищ, прочитали, прежде чем прийти на форум со сколько-то-там-сотенным вопросом про выбор условий распространения?

Ну хотя бы с «Как выбрать лицензию для своей собственной работы» на gnu.org ознакомились? Оно на русский переведено, если что.

Zmicier ★★★★★ ()
Ответ на: комментарий от robus

Позволит ли эта лицензия нам с другом написать на нём игру и заработать на бутерброд с салатом?

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

Так что как единоличный автор, ты имеешь право использовать свой движок как пожелаешь, не зависимо от публичной лицензии. В том числе можешь выложить под GPL3 и использовать в закрытой коммерческой игре.

Ты так же можешь выложить движок под GPL3 или MIT для всех, а потом выдать кому-то этот движок на любых других условиях (как делает qt и еще куча проектов).

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

Некоторые проекты, кстати, требуют от контрибьюторов отказа от имущественных прав в пользу владельца проекта, чтобы не потерять возможности делать с кодом что угодно. Например, cyanogen-mod, qt, openoffice.

ddos3 ()
Ответ на: комментарий от xaizek

С коммерческим применением не конфликтует.

Формально - нет. А на практике во многих компаниях табу на использование (L)GPL. Потому что необходимость предоставлять исходники библиотек добавляет много лишней работы, невозможность линковаться статически потенциально вносит ограничения на сферы применения продукта, и - самое главное - всегда есть риск случайно «заразить» GPLем код, который никогда не собирались открывать. Так что LGPL практически отметает возможность использования в коммерческих проектах (кроме редких исключений, когда найти альтернативу под BSD/MIT/Apache/etc невозможно, а писать с нуля слишком дорого; но 3Д движок - не тот случай).

ddos3 ()
Ответ на: комментарий от CrossFire

Что конкретно подразумевается под бестолковым договором — MIT или BSD?

Обе т. н. «лицензии MIT», все три лицензии BSD и еще целая пачка предельно небрежно написанных какими-то американцами сугубо для частного применения лицензий.

Zmicier ★★★★★ ()

lGPL пока выглядит наиболее приемлемым вариантом. Начинаю даже смотреть в сторону GPL.

upd: она ведь тоже позволит коммерческим проектам иметь в зависимостях двиг? Тогда чем она вообще отличается?

robus ★★★ ()
Последнее исправление: robus (всего исправлений: 1)
Ответ на: комментарий от ddos3

А на практике во многих компаниях табу на использование (L)GPL.

Потому что они не знают о чём они, простая некомпетентность. К сожалению, встречался с таким.

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

Нет, надо просто сделать репозиторий с локальной версией публичным на любом хостинге и сослаться на него. Более чем достаточно. При использовании BSD/MIT/Apache/etc тоже надо указывать авторство, и за этим надо следить, выложить исходники не сложнее.

невозможность линковаться статически потенциально вносит ограничения на сферы применения продукта

Статически линковать можно.

всегда есть риск случайно «заразить» GPLем код, который никогда не собирались открывать.

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

xaizek ★★★★★ ()
Ответ на: комментарий от ddos3

Формально - нет. А на практике во многих компаниях табу на использование (L)GPL

Я вам больше скажу — в массе весьма неформальных проектов по разработке свободных программ есть «табу» на те или иные условия распространения.

невозможность линковаться статически

Вы это о чем?

Так что LGPL практически отметает возможность использования в коммерческих проектах

Ну это вы загнули!

Zmicier ★★★★★ ()
Ответ на: комментарий от robus

upd: она ведь тоже позволит коммерческим проектам иметь в зависимостях двиг? Тогда чем она вообще отличается?

GPL заставит открыть исходники проекта, LGPL исходники движка при изменениях.

CrossFire ★★★★★ ()
Ответ на: комментарий от xaizek

Потому что они не знают о чём они

Наоборот, потому что знают.

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

Ну вот сделать этот репозиторий и поддерживать его в актуальном состоянии - это как раз лишняя работа.

надо указывать авторство

Один раз (при добавлении библиотеки в проект) приписывается в About, после этого можно больше никогда ничего не делать.

Статически линковать можно

Для этого нужно предоставить все объектные файлы, что добавляет дополнительный геморрой.

обычный риск не использования головы.

Всегда есть шанс, что какой-нибудь программер скопи-пастит какую-нибудь строчку из GPL библиотеки. Не по злому умыслу, а случайно или по незнанию. Если эта строчка проскочит в публичный релиз, компания будет формально обязана открыть весь свой код по запросу от любого пользователя. Юристы очень не любят такие риски, и правильно делают.

ddos3 ()
Ответ на: комментарий от robus

upd: она ведь тоже позволит коммерческим проектам иметь в зависимостях двиг? Тогда чем она вообще отличается?

Дубль два: *любая* свободная лицензия по определению позволяет использовать произведение под ней в составе коммерческого продукта. В этом пункте GNU GPL, GNU LGPL, 2-BSDL и т. д. друг от друга не отличаются.

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

А вообще они отличаются много чем. Основное отличие GNU (Lesser / Affero) GPL, MPL и др. от лицензии Апача и массы небрежный лицензий (Expat, X11, *-BSD, WTFPL) — в наличии т. н. авторского лева, то есть в отсутствии разрешения налагать на вашу программу и производные от нее дополнительные ограничения сверх наложенных вами.

(Авторское право воспрещает снимать ограничения, а авторское лево — накладывать, отсюда такое название.)

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от ddos3

Ну вот сделать этот репозиторий и поддерживать его в актуальном состоянии - это как раз лишняя работа.

А они в архивах исходники что ли хранят? Это может быть просто копия рабочего репозитория проекта.

Для этого нужно предоставить все объектные файлы, что добавляет дополнительный геморрой.

Что не делает статическую сборку невозможной. Как шаг сборки релиза собрать статическую библиотеку с самим приложением не rocket science.

Всегда есть шанс, что какой-нибудь программер скопи-пастит какую-нибудь строчку из GPL библиотеки.

Люди постоянно копируют код со StackOverflow, хотя там вообще-то тоже copyleft, если я правильно понял. И что-то никто не раскрывает все исходники. Избегать всех LGPL библиотек на таких основаниях (GPL — другое дело) это какой-то маразм. И его надо лечить, а не потакать ему.

xaizek ★★★★★ ()
Ответ на: комментарий от robus

GPL

Любой продукт, использующий GPL-компоненты, обязан распространяться по условиям GPL или совместимой лицензии. Это значит - открыть код и разрешить свободное распространение всего продукта от пользователя к пользователю через торренты. Коммерческие проекты на это не пойдут.

LGPL

Можно использовать компоненты с лицензией LGPL в проекте, который распространяется под любой лицензией (в том числе без открытия кода и без права свободной передачи от пользователя к пользователю), но необходимо предоставить пользователям код использованных LGPL-компонентов и обеспечить возможность заменить их реализацию на свою. То есть, либо линковаться с этими компонентами динамически (тогда пользователь может просто заменить *.so/*.dll своей версией), либо - в случае статической линковки - предоставить объектные файлы всего проекта, чтобы пользователь мог слинковать несвободную часть программы со своей версией LGPL компонента.

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

ddos3 ()
Ответ на: комментарий от ddos3

Один раз (при добавлении библиотеки в проект) приписывается в About, после этого можно больше никогда ничего не делать.

В каком смысле «никогда»? Если мы о небрежных лицензий типа Expat или *-BSDL, то при обновлении библиотеки надо будет делать заново. Если об умолчательной GNU (L/A)GPL, то да, только один раз.

Zmicier ★★★★★ ()
Ответ на: комментарий от xaizek

Люди постоянно копируют код со StackOverflow, хотя там вообще-то тоже copyleft, если я правильно понял. И что-то никто не раскрывает все исходники.

Там CC BY-SA. Да, это лицензия авторского лева, но вот об «исходниках» в ней ни слова. Но да, если следовать ходу мысли т-ща ddos3, то хотя бы сборку должны были бы освободить.

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

Как я уже писал выше, в коммерческой разработке LGPL чаще всего - табу

И у вас, конечно, есть чем это «чаще всего» подтвердить? Статистика какая-нибудь?

Zmicier ★★★★★ ()
Ответ на: комментарий от xaizek

Это может быть просто копия рабочего репозитория проекта.

То есть, нужно держать библиотеку в отдельном репозитории, что само по себе уже не очень удобно.

Что не делает статическую сборку невозможной.

Верно, но мало кто хочет этим заниматься.

Люди постоянно копируют код со StackOverflow

all Subscriber Content that You contribute to the Network
is perpetually and irrevocably licensed to Stack Exchange
under the Creative Commons Attribution Share Alike license. 
Attribution-ShareAlike
You are free to: 
    Share — copy and redistribute the material in any 
    medium or format. 
    Adapt — remix, transform, and build upon the material 
    for any purpose, even commercially. 
The licensor cannot revoke these freedoms as long as you 
follow the license terms.

Избегать всех LGPL библиотек на таких основаниях (GPL — другое дело) это какой-то маразм.

В случае ошибки одного программиста можно попасть на весь IP компании. Слишком большой риск, и это основная - обоснованная - причина отказа от LGPL.

И его надо лечить, а не потакать ему.

Риск случайно заразить весь свой код LGPL даже через одну строчку никуда не денется, такая лицензия. Как его лечить?

ddos3 ()
Ответ на: комментарий от ddos3

is perpetually and irrevocably licensed to Stack Exchange under the Creative Commons Attribution Share Alike license.

Благодарю за подтверждение моих слов. Так как со случайным копированием со Стэкоферфлоу чаще всего борются так не любящие риск юристы?

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

при обновлении библиотеки надо будет делать заново.

Зачем заново? Пишем в about: «This software uses Bla-Bla library by John Smith. See license for more details.»

И все, больше ничего обновлять не нужно. Я, конечно, не юрист, и может быть чего-то не понимаю.

ddos3 ()
Ответ на: комментарий от ddos3

Риск случайно заразить весь свой код

Да, вы не могли бы воздержаться от использования пропагандистских клише. Заранее благодарю.

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

Благодарю за подтверждение моих слов

Это не подтверждение, а опровержение. Лицензия (ее summary в том же комменте) позволяет любое использование. И каждый, кто постит на StackOverflow автоматически разрешает использовать то, что запостил, под этой лицензией. В этом случае рисков нет никаких и ни с чем бороться не нужно.

ddos3 ()
Ответ на: комментарий от Zmicier

вы не могли бы воздержаться от использования пропагандистских клише.

Предложи другую формулировку с сохранением смысла.

ddos3 ()
Ответ на: комментарий от ddos3

Риск случайно заразить весь свой код LGPL даже через одну строчку никуда не денется, такая лицензия.

Смотрите также: риск умереть от метеорита, выйдя на улицу, никуда не денется, риск умереть от заразы, выпив стакан воды, никуда не денется и т.д. LGPL это не чума.

Как его лечить?

Учиться думать, когда что-то делаешь, и помогать в обучении другим.

P.S. Все эти «аргументы» похожи на проприетарные страшилки и не более того.

xaizek ★★★★★ ()
Последнее исправление: xaizek (всего исправлений: 1)
Ответ на: комментарий от ddos3

Пишем в about: «This software uses Bla-Bla library by John Smith. See license for more details.»

Да что вы? Если мы берем трехпунктную BSDL, то в ней же четко написано, что надо воспроизводить:

    (2) Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in
    the documentation and/or other materials provided with the
    distribution.  

Это вам не GNU GPL, что позволят делать такие заметки в произвольной форме.

И все, больше ничего обновлять не нужно.

Как это? «Copyright notice» (которые, на минуточку, в нормальных программах содержаться в каждом файле), что вам надо воспроизводить, по-вашему не могут обновляться от версии к версии? Не просто могут, а по-хорошему должны, если появляются новые соавторы да и года текут.

Zmicier ★★★★★ ()
Ответ на: комментарий от ddos3

Это не подтверждение, а опровержение. Лицензия (ее summary в том же комменте) позволяет любое использование

Але! *Любая* свободная лицензия дозволяет использование в любых целях.

В этом случае рисков нет никаких

Я, конечно, тоже думаю, что никаких. Но вы-то почему-то считаете иначе — что авторское лево вам чем-то угрожает. А CC BY-SA — это (о, ужас!) тоже лицензия авторского лева.

Zmicier ★★★★★ ()
Ответ на: комментарий от xaizek

Учиться думать, когда что-то делаешь, и помогать в обучении другим.

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

Все эти агрументы похожи на проприетарные страшилки и не более того.

Тем не менее, время от времени в прессе проскакивают сообщения о том, что кто-то где-то использовал GPL/LGPL код и не открыл исходники, и теперь с ним судится FSF. Так что страшилки-страшилками, а прецеденты случаются IRL.

Так или иначе, (L)GPL остается табу во многих компаниях, и это реальность, с которой бесполезно спорить.

ddos3 ()
Ответ на: комментарий от Zmicier

*Любая* свободная лицензия дозволяет использование в любых целях.

...но только при соблюдении определенных условий, которые в случае GPL/LGPL могут оказаться неприемлемыми. А CC BY-SA не накладывает никаких условий или ограничений. В этом разница.

ddos3 ()
Ответ на: комментарий от ddos3

кто-нибудь сделает маленькую, но очень дорогую ошибку
время от времени в прессе проскакивают сообщения о том, что кто-то где-то использовал GPL/LGPL код и не открыл исходники, и теперь с ним судится FSF.

Ой-ой-ой! Это вы пытаетесь сказать, что ФСПО судится с невинными жертвами собственной невнимательности? Хоть один такой случай, пожалуйста.

Zmicier ★★★★★ ()
Ответ на: комментарий от ddos3

которые в случае GPL/LGPL могут оказаться неприемлемыми. А CC BY-SA не накладывает никаких условий или ограничений.

Блажен, кто верует. :-)

Если вы не верите мне и т-щу xaizek’у, когда мы трижды вам говорим, что CC BY-SA — это *тоже* лицензия авторского лева, то откройте и прочитайте ее сами (оно вообще крайне невредно, прежде чем о чем-то рассуждать). Лицензии «Креатив-коммонса», конечно, написаны не таким человеческим языком, как лицензии ГНУ, но осилить можно.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от robus

Начинаю даже смотреть в сторону GPL.

Зачем? GPL только оттолкнёт производных разрабов, потому что потребует не только открытия изменений в движке, но и потребует полностью открыть их проект.

Именно потому GPL-лицензии так и не распространились в игровых движках (Кармак не в счёт).

EXL ★★★★★ ()
Ответ на: комментарий от EXL

GPL только оттолкнёт производных разрабов, потому что потребует не только открытия изменений в движке, но и потребует полностью открыть их проект.

Разверните мысль, пожалуйста.

Под «открыть» вы на самом деле имеете в виду «освободить», это вроде бы понятно. А чем у вас «движок» отличается от «полностью проекта»?

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

Ну так копировать при сборке файл LICENSE.txt из текущей версии библиотеки в документацию и поставить линк на него. Не большая разница. Всяко дешевле, чем поддерживать свой репозитарий с кодом.

Но основная причина отказа от LGPL не в этом.

ddos3 ()
Ответ на: комментарий от ddos3

Некоторые требуют отказа от имущественных прав в пользу владельца проекта. Например, cyanogen-mod, qt, openoffice.

Опенофис все еще требует? Я думал, в Апаче от такой практики должны были отказаться.

Ты так же можешь выложить движок под GPL3 или MIT для всех, а потом выдать кому-то этот движок на любых других условиях (как делает qt и еще куча проектов).

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

Zmicier ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.