Wykonanie nawet prostej trójwymiarowej gry na przykład w czystym języku C++ zajęłoby prawdopodobnie mele długich miesięcy. Na szczęście tworząc gry komputerowe, można korzystać z gotowych bibliotek, które wspomagają i ułatwiają życie programistom. Takimi bibliotekami są tak zwane silniki gier.
Silnik gry (ang. gamę engine) jest podstawowym elementem każdej gry komputerowej. Można go oczywiście stworzyć samodzielnie, ale to zadanie przerasta możliwości nawet zaawansowanego zespołu programistów. Producenci większości gier korzystają więc zwykle z gotowych silników. Takie podejście znacznie ułatwia tworzenie gry komputerowej. Pozwala również stworzyć grę, która przy niewielkiej modyfikacji
kodu będzie mogła być uruchomiona na innej platformie sprzętowej - na przykład na konsoli do gier czy komputerze z systemem operacyjnym Mac OS.
Na rynku dostępnych jest kilkaset darmowych oraz komercyjnych silników gier -w tabeli na stronach 64-65 Ekspert przedstawił najbardziej popularne. Pełną listę silników znajdziemy na stronie O • Najczęściej silniki gier mają budowę mo-- dułową f, w której każdy moduł odpowiada "za inną część gry komputerowej. Wiele silników gier, szczególnie tych dostępnych za darmo, ma tylko niektóre spośród wymienionych przez Eksperta modułów. W takim wypadku zadaniem programisty jest samodzielne oprogramowanie nieobsługiwanych automatycznie funkcjonalności gry.
Moduł renderujący
zwany jest również silnikiem 'raficznym. Jego zadaniem est wyświetlanie grafiki dwu-trójwymiarowej w czasie rzeczywistym.
—| Moduł skryptowy [
stanowi wewnętrzny język programowania gry, za pomocą którego często tworzony jest scenariusz poszczególnych poziomów gry.
r Moduł detektora kolizji
Moduł dźwięku")—i ą
odpowiedzialny jest za |_
odtwarzanie muzyki /. .
i efektów dźwiękowych i ((\
(także przestrzennych). V \' |
wspiera wykr między obiektami 3D w świecie gry. Dzięki temu modułowi silnik gry wie, kiedy pocisk wy-l. strzelony przez gracza trafi przeciwnika oraz kie-
Moduł animacji
odpowiedzialny jest za ani mowanie postaci oraz innych elementów występujących w gra. Dzięki temu modułowi inaczej zachowuje się chodząca i biegnąca postać. Moduł animacji dba o płynne wyświetlanie odpowiednie) sekwencji animacji charakterystycznych dla danego zachowania czy sytuacji.
j |
— |
nę lub inną przeszkodę.
Moduł fizyczny [
zwany też silnikiem fizycznym. Odpowiedzialny jest za symulację fizyki w środowisku gry komputerowej. To dzięki niemu w gracn występuję grawitacja, zestrzelony samolot opada na ziemię.
Moduł komunikacji sieciowej
umożliwia prowadzenie rozgrywek między wieloma graczami przez sieć lokalną lub internet.
Moduł sztucznej inteligencji
odpowiada za sterowanie postaciami, w wypadku rozgrywki pomiędzy człowiekiem a komputerem. Algorytmy zastosowane w module sztucznej inteligencji zależą od rodzaju gry -inny typ algorytmu znajduje się w rialf-Life, a inny w Need For Speed.
Który silnik gier wybrać do stworzenia własnej gry 3D? Najlepszym rozwiązaniem będzie skorzystanie z darmowego silnika o nazwie Irrlicht © . Poniżej Ekspert przedstawia najważniejsze cechy tego silnika gier.
Cechy Irrlicht:
• Wydajny rendering grafiki 3D przy wykorzystaniu bibliotek Direct3D oraz OpenCL (do wyboru);
j • Irrlicht jest niezależny od platformy oraz systemu operacyjnego - działa pod Windows, Linuksem oraz Mac OS-em;
• W silnik wbudowano bibliotekę gotowych materiałów, którą można łatwo rozszerzać (Irrlicht wspiera shadery typu Vertex oraz Pixel);
• Wbudowany w silnik moduł animacji wspiera animację szkieletową orazmor-fing;
• Irrlicht zawiera system cząsteczek (do animacji śniegu, dymu lub ognia), mapy oświetlenia (do symulacji realistycznego oświetlenia), dynamiczne cienie rzucane przez postacie oraz moduł mgły;
• Irrlicht ma wsparcie dla platformy .NET, dzięki czemu istnieje możliwość tworzenia gier w nowoczesnych językach programowania: C#, Visual Basic .NET oraz Delphi .NET;
• Silnik pozwala na bezpośredni import popularnych modeli 3D (Maya, 3D Studio, poziomy Quake 3, modele Quake 2, pliki Microsoft DirectX) oraz tekstur w formacie BMP, PNC, PSD, JPC, TC A czy PCX;
• W Irrlicht wbudowano wydajny moduł detekcji kolizji;
• Silnik Irrlicht pozwala odczytywać dane ze skompresowanego archiwum ZIP.
Klikając dwukrotnie na ikonę programu553 Demoexel znajdującego się w katalogu C:\lrrllcht\bln\Win32-Vi-sualStudlo, wystartujemy aplikację demonstracyjną «. Warto, to zrobić, aby przekonać się o możliwościach silnika Irrlicht. j
I Na początek instalujemy .NET Framework 2.0 - wersję instalacyjną tej platformy programistycznej znajdziemy na płycie CD dołączonej do Eksperta.
.NET Framework to darmowa platforma programistyczna, która umożliwia tworzenie i uruchamianie aplikacji korzystających z technologii .NET. Zadaniem .NET Framework jest zarządzanie tworzoną aplikacją: jej kodem, pamięcią, bezpieczeństwem. Programy w .NET mogą być pisane w jednym z wielu języków - C#, Visual Basic .NET czy J#.
Uwaga! .NET Framework występuje w kilku wersjach (1.1,2.0 i 3.0), które mogą działać równolegle (więcej na ten temat przeczytamy na stronie 78).
2 Następnie z płyty instalujemy darmowe środowisko programistyczne SharpDeve-lop. Instalacja jest bardzo prosta - wystarczy postępować zgodnie z instrukcjami pojawiającymi się na ekranie.
3 Na koniec możemy zająć się instalacją silnika gry Irrlicht. Po uruchomieniu instalatora z płyty CD dołączonej do Eksperta pliki źródłowe silnika zostają rozpakowane domyślnie do katalogu C:\Irrlicht.
Dlbinl Dldoc]
CD [ea ample#] Cj[exomploa.ncł]
katalogów •-.Warto dowiedzieć si_ę,^j|||J)c]hld°I
co zawierają poszczególne foldery:
• w katalogu bin znajdują się wszystkie biblioteki silnika graficznego Irrlicht oraz przykładowe aplikacje;
• folder doc zawiera dokumentację niezbędną do tworzenia programów wykorzystujących silnik Irrlicht;
• katalog examples zawiera pliki źródłowe C++ przykładowych aplikacji znajdujących się w folderze bin, a katalog examples.net pliki źródłowe dla Cs i .NET Framework;
• w folderach include oraz lib znajdują się pliki niezbędne do tworzenia aplikacji korzystających z silnika Irrlicht w C++;
• katalog media zawiera materiały, z których można korzystać podczas tworzenia gry - na przykład trójwymiarowe postacie, tekstury czy poziomy gry;
• folder source zawiera pliki źródłowe samego silnika Irrlicht;
• w katalogu tools umieszczono dodatkowe
naizędzia, z których możemy skorzystać podczas tworzenia gry (tworząc grę z Ekspertem , nie będziemy ich potrzebować). 8*
eKspert
Q] [media]
f*1[touice1
Glłoob]
i""lchanqeł
□readme
LUTY 2007 63