Silnik Dooma 3 uwolniony
Znany i lubiany deweloper, id Software, po raz kolejny opublikował opracowaną przez siebie technologię na licencji GPL.
23.11.2011 12:25
Tym razem gracze, programiści i entuzjaści mogą zatopić swoje zęby w kodzie źródłowym gry Doom 3, która miała premierę 3 sierpnia 2004 roku. Silnik na którym bazowała wykorzystywany był później w takich grach jak Quake 4, Prey, Enemy Territory: Quake Wars, Wolfenstein (wersja z 2009 roku) czy całkiem niedawno Brink. Choć wiele z tych gier korzystało z silnie zmodyfikowanego renderera bazującego na rozwijanej przez Carmacka koncepcji megatekstur, ostatnia komercyjna gra na nim — Prey 2 — jest wciąż w produkcji i zapowiada się nader obiecująco. Jest to zatem jeden z pierwszych przypadków, kiedy publikowana jest dojrzała, sprawdzona, ale i względnie nowoczesna baza kodu tego typu.
Opublikowanie kodu Dooma 3 przez krótki czas pozostawało pod znakiem zapytania. W 2009 roku id Software zostało kupione przez ZeniMax Media, firmę-matkę znanego z serii The Elder Scrolls dewelopera Bethesda Softworks. Mimo początkowych wątpliwości, czy nowy właściciel id pozwoli na uwolnienie kodu, sytuacja została wyjaśniona przez Johna Carmacka i Todda Hollensheada: ZeniMax nie zamierza ingerować w „spuściznę” i metody operowania firmy. Uwolnienie źródeł pozostawało zatem jedynie kwestią czasu.
Wreszcie na tegorocznym Quakeconie potwierdzono zbliżającą się publikację kodu, została ona jednak opóźniona ze względów prawnych. Doom 3 stosował wolumetryczne cienie — technikę rzadko wykorzystywaną w grach m.in. z uwagi na obciążenie patentowe rozwiązania, które pozwalało na wyeliminowanie jednego z problemów takiej metody. Technika odkryta równolegle przez kilku deweloperów znana jest szerzej jako Carmack's Reverse, ale została opatentowana przez Williama Bilodeau i Michaela Songy z firmy Creative. W obawie przed pozwem, prawnicy ZeniMax poprosili Carmacka o zmianę logiki gry. Ten przystąpił do pracy i szybko zmodyfikował oryginalny kod, pozbywając się zależności od problematycznego algorytmu. Sześć linijek kodu niezbędnych do zmiany techniki w elegancki sposób dowiodło absurdu przyznanego patentu.
Opublikowany w nocy kod można przeglądać i pobierać z repozytorium na GitHubie. Udostępniony na licencji GPL w wersji trzeciej korzysta z szeregu zewnętrznych bibliotek (m.in. Curl, OggVorbis oraz OpenAL), których licencje także powinno się sprawdzić przed wglądem w źródła.