Долгожданный релиз исходников движка игры Doom III под открытой лицензией снова откладывается. Основателю и главному программисту id Software, по всей видимости, придётся переписать порцию исходного кода движка id tech 4. Правда, судя по твиттеру самого Кармака, он это уже сделал, а следовательно, сейчас всё снова упрётся в «отмашку» от юристов, которые должны завизировать исходники до того, как те будут выложены во всеобщий доступ.
Проблема заключается в следующем: в рамках подготовки движка для Doom III Джон Кармак написал специальный алгоритм динамического отображения теней (трафаретных теней, если быть точным), получивший название Carmack’s Reverse (также известный как z fail или depth fail). Алгоритм был разработан в 2000 году независимо от кого бы то ни было ещё.
Однако программисты Уильям Билодо и Майкл Сонги изобрели очень похожий метод в октябре 1998 года; в 1999 году он был представлен на конференции и на форуме для разработчиков компании Creative Labs, а затем Билодо и Сонги получили на этот метод патент US 6384822 (B1), описывающий метод рендеринга теней с использованием теневого объёма и трафаретного буфера (Method for rendering shadows using a shadow volume and a stencil buffer).
В результате оказалось, что в распоряжении Creative Labs оказался патент на алгоритм отрисовки теней, если не на идентичный разработанному Кармаком, то на него чрезвычайно похожий. Опасно похожий. Благодаря этому Creative Labs удалось «продавить» в игру Doom III свою звуковую технологию EAX, которую Кармак лично недолюбливает. Фактически имел место такой маленький шантаж: id Software использует в своей игре EAX (бесплатно), Creative убирает подальше свой патентный кистень.
Кармак в итоге пояснил:
«Ситуация с патентом, откровенно говоря, дерьмовая донельзя. Мы были готовы использовать двухпроходный алгоритм, который даёт эквивалентные результаты за счёт быстродействия, однако удалось заключить сделку с Creative, согласно которой мы могли использовать метод z fail бесплатно. Был большой соблазн встать в позу и заявить, что в наших продуктах никогда не будет использоваться никаких продвинутых разработок Creative/3dlabs из-за их позиции в отношении патентования алгоритмов в игровом ПО, но в итоге пострадали бы только пользователи».
И вот 2011 год, исходники id tech 4 уже готовы к релизу, и тут юристы, крякнув, напоминают Кармаку о той самой оказии с Creative…
«Придётся написать некоторое количество нового кода», — написал Кармак в своём твиттере. Ему задали вопрос: насколько это будет тяжело, «переписать весь код»? «Всё это демонстрирует идиотизм патента: обходной путь потребовал написать четыре строки кода и поменять ещё две», — ответил программист.
Если вся проблема упирается в эти шесть строк кода, то остаётся надежда увидеть GPL-версию движка Doom III до конца этого года.