Pierwsze kroki z Raspberry Pi: jak zrobić z RPi konsolę do gier na przykładzie Return to Castle Wolfenstein
Niska cena i duże możliwości Raspberry Pi gwarantują dużą popularność tej platformie sprzętowej, której obszary zastosowania rozciągają się od bardzo poważnych po bardzo rozrywkowe. W artykule przedstawiamy sposób implementacji na RPi kolejnej – po dwóch wersjach Quake’a – gry: Return to Castle Wolfenstein.
Dodatkowe informacje związane z optymalizowaniem wydajności komputera Raspberry Pi są dostępne w artykule. |
Zgłębiając tematykę gier dostępnych na komputer Raspberry Pi (już przeportowanych lub będących w najbliższych planach), jako jedną z dróg poszukiwań nowych tytułów wybrałem silnik gry Quake3 (więcej o samych poszukiwaniach przeczytasz w „W co jeszcze zagramy?” ). Tym samym trafiłem na dość ciekawe repozytorium zawierające kod źródłowy niezwykle popularnej kilka lat temu gry Return to Castle Wolfenstein , zoptymalizowane pod kątem komputera Raspberry Pi.
Return to Castle Wolfenstein to gra z gatunku FPS osadzona w klimatach II wojny światowej. Sama gra ukazała się w 2001 roku i jest kontynuacją wielkiego hitu minionych lat – gry Wolfenstein 3D (którą również możemy przekompilować i uruchomić na platformie Raspberry Pi). Przystąpmy więc do kompilacji…
Schemat budowania plików wykonywalnych nie będzie odbiegał znacząco od tego zaprezentowanego w przypadku gier Quake III i Quake II . Zaczynamy od utworzenia katalogu do którego pobierzemy kod źródłowy:
mkdir $HOME/rtcw_src cd $HOME/rtcw_src git clone https://github.com/hexameron/RTCW-SP-arm.git cd RTCW-SP-arm
Kompilacja dla systemów uniksowych (w tym dla zestawu Raspberry Pi) odbywa się z poziomu katalogu src/unix . Listę dostępnych opcji konfiguracyjnych oraz ustawienia targetu, dla którego będzie przeprowadzana kompilacja, wyświetlimy poleceniem (z poziomu katalogu src/unix ):
./cons -h
Automatycznie ustawiona konfiguracja dla komputera Raspberry Pi:
Wolfenstein version 1.41 cpu : arm OS : Linux libc: 2.2 configured for release build CFLAGS: -pipe -fsigned-char -I/opt/vc/include/interface/vcos/pthreads -Ofast -marm -march=armv6j -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -I/opt/vc/include/ -fomit-frame-pointer -fno-strict-aliasing -fstrength-reduce
Kompilację kodu uruchamiamy również poleceniem cons , tym razem jednak z parametrem — release :
./cons -- release
Kod źródłowy udostępniony w repozytorium git nie zawiera żadnych danych samej gry, które należy zakupić osobno (analogicznie jak miało to miejsce w przypadku np. Quake III ). Dlatego też i tym razem skorzystamy z pliku pak0.pk3 dystrybuowanego wraz z wersją demo gry Return to Castle Wolfenstein . Jak zdobyć owy plik PK3? Jednym ze sposobów jest pobranie skryptu instalatora wersji demo przeznaczonego dla maszyn x86 pracujących pod kontrolą systemu Linux. Skrypt instalacyjny wolfspdemo-linux-1.1b.x86.run możemy pobrać ze strony:
http://cesium.di.uminho.pt/pub/games/wolf/linux/old/
W systemach pracujących pod kontrolą systemu Linux (w tym bezpośrednio na zestawie Raspberry Pi) niezbędny plik pak0.pk3 możemy wyodrębnić za pomocą polecenia:
tail -n +175 wolfspdemo-linux-1.1b.x86.run | tar -xz demomain/pak0.pk3
W przypadku jakichkolwiek problemów z otrzymaniem pliku pak0.pk3 można go pobrać jako (dostępny na liście załączników na dole strony).
Po zakończonym procesie kompilacji plik pak0.p k3 umieszczamy w katalogu $ HOME/rtcw_src/RTCW-SP-arm/src/unix/release-arm-Linux-2.2/out/main . Grę uruchamiamy poleceniem:
cd $HOME/rtcw_src/RTCW-SP-arm/src/unix/release-arm-Linux-2.2/out sudo ./wolfsp.arm
A oto uzyskany efekt: