Dawid Bautsch Dev Blog

No category

Quake, Wolf3D, DukeNukem – legalne źródła na GitHub!

dbautsch

Od jakiegoś czasu modne jest otwieranie źródeł oprogramowania. Zmianie ulegają licencje wcześniej całkowicie komercyjnego oprogramowania. Dotyczy to nie tylko aplikacji, które tworzone są obecnie. Trend ten również nasila się w przypadku starych programów oraz gier. W ten sposób każdy zyskuje, ponieważ producenci (dzięki licencjom, które są wolne na przykład dla użytkowników domowych i płatne dla firm) zdobywają nowych użytkowników, natomiast zapaleńcy oraz programiści mają dostęp do ogromnej bazy wiedzy.

W ciągu ostatnich kilku lat można również zaobserwować znaczne zainteresowanie tematyką open-source przez giganta z Redmond, czyli Microsoft. Jest to realizacja szerszego planu, którego orędownikiem jest Satya Nadella, nowy CEO Microsoft. Firma ta wykazuje znaczną aktywność na serwisach typu GitHub. Pracownicy Microsoft zbudowali również swój własny odpowiednik w postaci codeplex, który notabene obecnie znajduje się na etapie wygaszania na rzecz GitHub.

Wydarzeniem, którego nikt się nie spodziewał, było otwarcie źródeł systemu operacyjnego MS-DOS w wersjach 1.1 oraz 2.0(1). W tym samym czasie uwolnione zostały jeszcze źródła Microsoft Word for DOS (2).

Znane i cenione studia game-dev’owe również podążają tym nurtem. Przykładów tego mamy mnóstwo. Jednym z najbardziej znaczących było otwarcie źródeł gry Quake(3). Wydarzenie to miało miejsce w grudniu 1999 roku, a więc w czasie, kiedy gry nie były jeszcze tak rozbudowane jak dziś. Krótko po tym można było zaobserwować wysyp gier-klonów zbudowanych w oparciu o silnik Quake. Wielu programistów mogło czerpać swoją wiedzę z tego bogatego źródła, ponieważ silnik ten był w tamtym czasie prawdziwym majstersztykiem. Z uwagi na znacznie ograniczone możliwości sprzętowe ówczesnych maszyn, John Carmack (właściciel Id Software oraz legendarny programista) zaimplementował wiele algorytmów używając zaawansowanych technik optymalizacji.

John wtedy już pracował nad kolejną wersją rewolucyjnej strzelanki, nazwanej Quake II. Jej źródła, podobnie jak kolejnej trzeciej wersji, również zostały otwarte. Wydarzenie to sprawiło, że ilość klonów tego FPS’a jeszcze bardziej się zwiększyła, szczególnie na platformach Linuxa.

Innymi klasycznymi grami, których kody źródłowe ujrzały światło dzienne są DukeNukem 3D(4) oraz Wolfenstein3D(5). Są to już naprawdę leciwe aplikacje pracujące pod kontrolą systemu operacyjnego MS-DOS. Analizując ich kod można poczuć klimat tamtej epoki, gdy niemalże każdy cykl pracy procesora był na wagę złota. Podobnie rzecz miała się z pamięcią operacyjną, której wiecznie brakowało. Autorzy szczególnie wymagających programów, jakimi są gry komputerowe musieli się nieźle napocić, aby uzyskać sensowną płynność rozgrywki. W tamtych czasach powstało wiele sprytnych algorytmów, które nawet dziś znajdują swoje zasłużone miejsce w kolejnych grach komputerowych.

W kolejnym poście zamieszczę link do bloga programisty, który robi review kodu źródłowego tak starych produkcji. Jest to prawdziwa gratka dla programistów grafiki komputerowej, jak również wielbicieli low-level typu asembler 16 bit / 32 bit.

Zamierzam również przyjrzeć się paczce kodu źródłowego MS-DOS, a także Microsoft Word for Windows. Wyglądają naprawdę obiecująco, szczególnie MS-DOS, w którym można zaobserwować powolne narodziny struktur znanych z systemów Microsoft Windows. Struktury te można znaleźć nawet w obecnych systemach Microsoft.

Odnośniki do stron internetowych, z których można pobrać kody źródłowe:

1) Microsoft MS-DOS

http://www.computerhistory.org/atchm/microsoft-ms-dos-early-source-code/

2) Microsoft Word 1.1

http://www.computerhistory.org/atchm/microsoft-word-for-windows-1-1a-source-code/

3) Quake, Quake II, Quake III

https://github.com/id-Software/Quake

https://github.com/id-Software/Quake-2

https://github.com/id-Software/Quake-III-Arena

4) Duke Nukem 3D

(linki wygasły, ale opisy zostały) https://arstechnica.com/civis/viewtopic.php?f=22&t=700678

Prawidłowy link do download: http://www.moddb.com/games/duke-nukem-3d/downloads/duke-nukem-3d-source-code

5) Wolfenstein 3D

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Back to top