Marcin Piotr Grondecki | 2007-06-29 11:46:52 | | Dodaj komentarz | AlienArena2007 6.05
Jeśli wiesz co to znaczy "fragować", co więcej - lubisz to, to z całą pewnością warto spróbować tego, co w temacie. Próba będzie kosztowała nieco czasu - i to właściwie jedyny koszt (poza oczywiście wartością z licznika zużytej energii elektrycznej, jeśli ten czas się wydłuży... ;]). | Wspaniale zrobiona gra, odnosząca się stylistycznie do dawnych filmów science-fiction, grafika jest wręcz efektowna, wręcz przerastająca źródła. Źródła, czyli... Quake2 oraz Quake3, gdyż z kodu tych silników opublikowanych przed id software "pod rygorem" GNU GPL COR Entertainment zbudowało tę grę. Publikuje ją, co oczywiste, również na licencji GNU GPL (i to jest przyczyna, dla której o tym produkcie w ogóle mówię). Grę ściągamy stąd. Przystępujemy do kompilacji, którą na tzw. wszelki wypadek poprzedzamy make clean. W trakcie tejże być może trafimy na ostrzeżenia i/lub błędy, które trafiły się i mi. Oto jak sobie z nimi poradzić. Ostrzeżenia warning: SSE instruction set disabled, using 387 arithmetics dały znać o tym, że kompilator nie skorzysta z zestawu SSE instrukcji procesora - a są one na wyposażeniu każdego współczesnego procesora tzw. PC - a miast tego użyje biedniutkiej arytmetyki koprocesora matematycznego 387 sprzed wielu, wielu lat... Domniemany efekt: daleko niższa prędkość działania wielu części silnika gry. Zdziwiony spojrzałem na zawartość zmiennej środowiskowej CFLAGS: -mfpmath=sse wpisałem byłem i stoi jak wół, ale okazało się, iż to za mało. Dołożyłem jeszcze jeden modyfikator: -msse. To załatwiło sprawę. Jedną. Druga to ciąg błędów, nie ostrzeżeń jak powyższe, o postaci error: redefinition of typedef 'PFNGLPROGRAMSTRINGARBPROC' dla tego typu i wielu innych. Po chwili pomyślunku nad tym, co jest powtarzane, ująłem w ładne komentarze wiersze od 397 do 414 pliku source/ref_gl/qgl.h źródeł gry. Po co bowiem przedefiniowywać to, co X.org zdefiniował był wcześniej a dobrze (a takie były właśnie te re-definicje)? I zmyślniem to wykoncypował, bo usuwa to problem. Teraz make, po chwili uruchamiamy release/crx lub release/crx.sdl i oglądamy dzieło, rozpoczynając np. od 'deathmatch' z botami lub łącząc się z postawionym już gdzieś serwerem. Możemy też postawić własny serwer i dać dostęp doń z zewnątrz - jaka to miła przewaga w pingach, gdy grać np. deatchmatch ;] Możliwości konfigurowania zarówno lokalnego, jak i serwera, są naprawdę niemałe. I są nieźle opisane w dokumentacji. Jeśli czegoś w "docach" brak, to wiadomo - mamy źródła, więc wiemy o programie wszystko :]]] Jeśli nie wiesz co to jest "fragowanie", też spojrzyj na w/w grę. Warto. Dla jej urody. I może zrozumiesz urok tego tajemniczego słowa... :] Strona domowa: http://red.planetarena.org/
| |
[5416/1436]
|