Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00398 008672 10487738 na godz. na dobę w sumie
Perełki programowania gier. Vademecum profesjonalisty. Tom 6 - książka
Perełki programowania gier. Vademecum profesjonalisty. Tom 6 - książka
Autor: Liczba stron: 736
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-1087-7 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> inne - programowanie
Porównaj ceny (książka, ebook, audiobook).

Wyczerpujący przegląd nowoczesnych technik
tworzenia gier komputerowych

Przemysł gier komputerowych jest jedną z najszybciej rozwijających się branż informatyki. Gry, które jeszcze niedawno zapierały dech w piersiach, dziś wydają się proste i mało realistyczne. Współczesne symulatory i 'strzelanki' to arcydzieła, których produkcja angażuje środki porównywalne z budżetami hollywoodzkich superprodukcji. Rosnące w ogromnym tempie możliwości komputerów i konsoli wpływają jednak nie tylko na jakość gier, ale także na proces ich tworzenia i wykorzystywane podczas niego narzędzia. Programiści tworzący gry implementują zaawansowane algorytmy sztucznej inteligencji, wykorzystują niezwykłe możliwości układów wyświetlających grafikę i skomplikowany aparat matematyczny.

Książka 'Perełki programowania gier. Vademecum profesjonalisty. Tom 6' to doskonałe kompendium wiedzy dla wszystkich, którzy tworzą gry komputerowe lub zamierzają to robić. W każdym rozdziale, napisanym przez cenionego eksperta z tej branży, znajdziesz niezbędne informacje dotyczące różnych aspektów pisania gier. Przeczytasz o sztucznej inteligencji, symulacji zjawisk fizycznych oraz odwzorowywaniu oświetlenia i dźwięków. Poznasz nowoczesne techniki programowania współbieżnego, optymalizacji kodu pod kątem maszyn wieloprocesorowych, stosowania języków skryptowych i wykorzystywania możliwości procesorów graficznych.

Przeczytaj i stwórz grę, w którą zagrają miliony graczy.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Pere‡ki programowania gier. Vademecum profesjonalisty. Tom 6 Autor: Mike Dickheiser T‡umaczenie: Andrzej Gra¿yæski (wstŒp, czŒ(cid:156)ci I-III, VI-VII); Miko‡aj Szczepaniak (czŒ(cid:156)ci IV-V) ISBN: 978-83-246-1087-7 Tytu‡ orygina‡u: Game Programming Gems 6 (Book CD-ROM) Format: B5, stron: oko‡o 700 oprawa twarda Zawiera CD-ROM Wyczerpuj„cy przegl„d nowoczesnych technik tworzenia gier komputerowych (cid:149) Zaawansowane algorytmy sztucznej inteligencji (cid:149) Realistyczne odwzorowywanie zjawisk fizycznych, efekt(cid:243)w d(cid:159)wiŒkowych i o(cid:156)wietlenia (cid:149) JŒzyki skryptowe i sterowanie danymi (cid:149) Techniki zabezpieczania gier w wersji beta Przemys‡ gier komputerowych jest jedn„ z najszybciej rozwijaj„cych siŒ bran¿ informatyki. Gry, kt(cid:243)re jeszcze niedawno zapiera‡y dech w piersiach, dzi(cid:156) wydaj„ siŒ proste i ma‡o realistyczne. Wsp(cid:243)‡czesne symulatory i (cid:132)strzelanki(cid:148) to arcydzie‡a, kt(cid:243)rych produkcja anga¿uje (cid:156)rodki por(cid:243)wnywalne z bud¿etami hollywoodzkich superprodukcji. Rosn„ce w ogromnym tempie mo¿liwo(cid:156)ci komputer(cid:243)w i konsoli wp‡ywaj„ jednak nie tylko na jako(cid:156)(cid:230) gier, ale tak¿e na proces ich tworzenia i wykorzystywane podczas niego narzŒdzia. Programi(cid:156)ci tworz„cy gry implementuj„ zaawansowane algorytmy sztucznej inteligencji, wykorzystuj„ niezwyk‡e mo¿liwo(cid:156)ci uk‡ad(cid:243)w wy(cid:156)wietlaj„cych grafikŒ i skomplikowany aparat matematyczny. Ksi„¿ka (cid:132)Pere‡ki programowania gier. Vademecum profesjonalisty. Tom 6(cid:148) to doskona‡e kompendium wiedzy dla wszystkich, kt(cid:243)rzy tworz„ gry komputerowe lub zamierzaj„ to robi(cid:230). W ka¿dym rozdziale, napisanym przez cenionego eksperta z tej bran¿y, znajdziesz niezbŒdne informacje dotycz„ce r(cid:243)¿nych aspekt(cid:243)w pisania gier. Przeczytasz o sztucznej inteligencji, symulacji zjawisk fizycznych oraz odwzorowywaniu o(cid:156)wietlenia i d(cid:159)wiŒk(cid:243)w. Poznasz nowoczesne techniki programowania wsp(cid:243)‡bie¿nego, optymalizacji kodu pod k„tem maszyn wieloprocesorowych, stosowania jŒzyk(cid:243)w skryptowych i wykorzystywania mo¿liwo(cid:156)ci procesor(cid:243)w graficznych. (cid:149) Programowanie pod k„tem procesor(cid:243)w wielordzeniowych (cid:149) Siatkowa reprezentacja obiekt(cid:243)w gry (cid:149) Testowanie pojedynczych modu‡(cid:243)w gry (cid:149) Optymalizacja korzystania z zasob(cid:243)w (cid:149) Rachunek wektorowy i macierzowy (cid:149) Symulacja zachowania cieczy (cid:149) Tworzenie algorytm(cid:243)w sztucznej inteligencji (cid:149) Korzystanie z regu‡ logiki rozmytej (cid:149) Programowanie skryptowe w jŒzykach Lua i Python (cid:149) Optymalizacja wy(cid:156)wietlania obiekt(cid:243)w gry (cid:149) Wykorzystywanie mo¿liwo(cid:156)ci procesor(cid:243)w graficznych (cid:149) Generowanie efekt(cid:243)w d(cid:159)wiŒkowych w czasie rzeczywistym (cid:149) Tworzenie gier sieciowych Przeczytaj i stw(cid:243)rz grŒ, w kt(cid:243)r„ zagraj„ miliony graczy Wydawnictwo Helion ul. Ko(cid:156)ciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl Spis treści Przedmowa ........................................................................................ 13 Wstęp ................................................................................................. 17 O obrazku z okładki ......................................................................... 23 Biografie autorów ............................................................................. 25 Część I Programowanie w ogólności ............................................... 43 Wprowadzenie .................................................................................. 45 Rozdział 1.1 Algorytmy nieblokujące .................................................................. 47 „Porównaj i zamień” oraz inne prymitywy uniwersalne ............................................... 48 Parametryzowany stos nieblokujący .............................................................................. 50 Parametryzowana kolejka nieblokująca ......................................................................... 54 Nieblokująca parametryzowana lista wolnych bloków pamięci .................................... 57 Konkluzja ....................................................................................................................... 58 Literatura cytowana ....................................................................................................... 59 Zasoby ............................................................................................................................ 60 Rozdział 1.2 Wykorzystanie możliwości procesorów wielordzeniowych przy użyciu OpenMP ........................................................................ 61 Przykład: system cząstek ............................................................................................... 62 Korzyści ......................................................................................................................... 62 Wydajność ..................................................................................................................... 63 Przykład: wykrywanie kolizji ........................................................................................ 64 Zespoły wątkowe ........................................................................................................... 65 Zrównoleglanie wykonywania funkcji .......................................................................... 65 Tak, ale… ...................................................................................................................... 67 Konkluzja ....................................................................................................................... 68 Literatura cytowana ....................................................................................................... 68 Zasoby ............................................................................................................................ 68 Rozdział 1.3 Widzenie komputerowe w grach — programowanie z użyciem biblioteki OpenCV ........................ 69 Komputerowe widzenie w grach ................................................................................... 69 Biblioteka Open Computer Vision ................................................................................ 70 Przykład zastosowania ................................................................................................... 70 Co dalej? ........................................................................................................................ 79 Literatura cytowana ....................................................................................................... 79 4 Perełki programowania gier. Vademecum profesjonalisty. Tom 6 Rozdział 1.4 Rozdział 1.5 Siatkowa rejestracja obiektów gry ................................................. 81 Drzewa czwórkowe i ósemkowe ................................................................................... 82 Organizacja obiektów .................................................................................................... 84 Konkluzja ....................................................................................................................... 88 Literatura cytowana ....................................................................................................... 88 Techniki BSP ....................................................................................... 89 Czym jest BSP? Dlaczego BSP? ................................................................................... 89 Węzłowe BSP ................................................................................................................ 90 Renderowanie obiektów w węzłowym wariancie BSP ................................................. 93 Bezpodziałowy wariant węzłowego BSP ...................................................................... 94 Liściaste BSP i regiony wypukłe ................................................................................... 95 Generowanie portali między regionami wypukłymi ..................................................... 98 Generowanie zbiorów PVS .......................................................................................... 100 Kompresja wektora widzialności ................................................................................. 105 Obiekty krajobrazu w drzewie BSP ............................................................................. 107 Konkluzja ..................................................................................................................... 108 Literatura cytowana ..................................................................................................... 108 Rozdział 1.6 Dopasowywanie łańcuchów ......................................................... 109 Wyszukiwanie opierające się na identyfikatorach tekstowych .................................... 109 No to mamy problem… ............................................................................................... 110 Kilka znanych rozwiązań ............................................................................................. 110 Nasze rozwiązanie ....................................................................................................... 111 Zastosowanie rozwiązania ........................................................................................... 116 Konkluzja ..................................................................................................................... 117 Literatura cytowana ..................................................................................................... 117 Rozdział 1.7 Rozdział 1.8 Rozdział 1.9 Implementacja testowania modułów na bazie CppUnit ........... 119 Ogólnie o testowaniu modułów ................................................................................... 119 Ogólnie o pakiecie CppUnit ........................................................................................ 120 Uruchamianie klas mocujących ................................................................................... 122 Wykorzystanie pakietu CppUnit do testowania klasy zarządzającej modelami .......... 123 Testowanie modułowe funkcji prywatnych ................................................................. 129 Wykorzystywanie CppUnit do testowania niskopoziomowej funkcjonalności .......... 129 Konkluzja ..................................................................................................................... 134 Literatura cytowana ..................................................................................................... 134 Fingerprinting jako metoda ochrony wersji pre-release aplikacji ...135 Zniechęcanie ................................................................................................................ 135 Znaki wodne i odciski palców ..................................................................................... 136 Wykonywanie znakowania .......................................................................................... 137 Bezpieczeństwo gwarantowane przez znakowanie ..................................................... 137 Strategie znakowania ................................................................................................... 137 Atak porównawczy ...................................................................................................... 140 Konkluzja ..................................................................................................................... 140 Literatura cytowana ..................................................................................................... 141 Przyspieszanie ładowania zasobów na podstawie statystyki korzystania z nich .................................. 143 Sformułowanie problemu ............................................................................................ 143 Optymalizowanie kolejności zasobów ........................................................................ 145 Czynniki wpływające na wynik pomiaru .................................................................... 146 Potencjalne zagrożenia ................................................................................................ 147 Powszechne praktyki optymalizacyjne ........................................................................ 147 Spis treści 5 Konkluzja ..................................................................................................................... 148 Literatura cytowana ..................................................................................................... 148 Rozdział 1.10 Pozostań w grze: podmiana modyfikowanych zasobów „na gorąco” ................. 149 Jak to działa? ................................................................................................................ 149 Anatomia procesu ........................................................................................................ 151 Uwarunkowania praktyczne ........................................................................................ 155 Przykładowy program .................................................................................................. 156 Konkluzja ..................................................................................................................... 156 Literatura uzupełniająca ............................................................................................... 156 Część II Matematyka i fizyka .......................................................... 157 Wprowadzenie ................................................................................ 159 Rozdział 2.1 Osobliwości arytmetyki zmiennopozycyjnej ............................... 161 Format reprezentacji zmiennopozycyjnej .................................................................... 162 Projektowanie programów i funkcji ............................................................................ 167 Konkluzja ..................................................................................................................... 179 Literatura cytowana ..................................................................................................... 180 Rozdział 2.2 Obliczenia w przestrzeniach rzutowych z użyciem współrzędnych jednorodnych .................................... 181 Podstawy matematyczne .............................................................................................. 182 Obliczenia z użyciem współrzędnych jednorodnych ................................................... 184 Przecinanie linii z obiektami ....................................................................................... 187 Konkluzja ..................................................................................................................... 189 Dodatek A .................................................................................................................... 190 Dodatek B .................................................................................................................... 190 Podziękowania ............................................................................................................. 191 Literatura cytowana ..................................................................................................... 191 Zastosowanie iloczynu wektorowego do rozwiązywania układów równań liniowych ........................... 193 Wprowadzenie ............................................................................................................. 193 Linie proste .................................................................................................................. 196 Efektywna interpolacja bilinearna ............................................................................... 198 Rozwiązywanie układu równań z trzema niewiadomymi ........................................... 201 Konkluzja ..................................................................................................................... 203 Podziękowania ............................................................................................................. 203 Literatura cytowana i zalecana .................................................................................... 203 Indeksowanie sekwencyjne w programowaniu gier ................. 205 Terminologia ................................................................................................................ 205 Sekwencje .................................................................................................................... 206 Sekwencje dziedzinowe ............................................................................................... 207 Sekwencje permutacyjne ............................................................................................. 210 Sekwencje kombinacyjne ............................................................................................ 214 Konkluzja ..................................................................................................................... 217 Literatura cytowana ..................................................................................................... 218 Pływalność brył wielościennych ................................................... 219 Pływalność ................................................................................................................... 220 Pole wielokąta .............................................................................................................. 221 Rozdział 2.3 Rozdział 2.4 Rozdział 2.5 6 Perełki programowania gier. Vademecum profesjonalisty. Tom 6 Objętość wielościanu ................................................................................................... 223 Częściowe zanurzenie .................................................................................................. 224 Dokładność obliczeń .................................................................................................... 227 Siły oporu ..................................................................................................................... 229 Kod źródłowy .............................................................................................................. 230 Konkluzja ..................................................................................................................... 230 Podziękowanie ............................................................................................................. 230 Literatura cytowana ..................................................................................................... 231 Rozdział 2.6 Cząsteczkowa symulacja w czasie rzeczywistym oddziaływania cieczy z bryłami sztywnymi ................................. 233 Symulacja przepływów cieczy a SPH ......................................................................... 233 Rozszerzenie metody SPH na oddziaływania cieczy z bryłami sztywnymi ................ 238 Oddziaływanie z obiektami dynamicznymi — krokowa aktualizacja własności cząstek ...242 Szczegóły implementacji ............................................................................................. 243 Optymalizacje .............................................................................................................. 247 Konkluzja ..................................................................................................................... 248 Literatura cytowana ..................................................................................................... 248 Część III Sztuczna inteligencja ........................................................ 249 Wprowadzenie ................................................................................ 251 Rozdział 3.1 Zastosowanie modelowanego podejścia do implementacji AI na przykładzie Locust AI Engine w QA3 ....................................... 253 Wprowadzenie ............................................................................................................. 254 Stan obecny — zbiory reguł deterministycznych ........................................................ 255 Problemy związane z regułami .................................................................................... 257 Modelowane podejście do implementacji AI .............................................................. 259 Interfejs ........................................................................................................................ 260 Zalety i korzyści dla projektantów .............................................................................. 261 Locust AI Engine w Quake III Arena .......................................................................... 263 Soar .............................................................................................................................. 264 Konkluzja ..................................................................................................................... 265 Literatura cytowana ..................................................................................................... 265 Rozdział 3.2 Koordynacja działań autonomicznych BN .................................. 267 Możliwe rozwiązania ................................................................................................... 268 Struktura BN ................................................................................................................ 269 Mechanizmy koordynacji ............................................................................................ 270 Przykład. Skoordynowane tropienie gracza ................................................................. 277 Konkluzja ..................................................................................................................... 278 Literatura cytowana ..................................................................................................... 279 Rozdział 3.3 Zastosowanie behawioralnych architektur robotycznych w tworzeniu gier .............................................................................. 281 Architektura subsumpcyjna ......................................................................................... 282 Rozszerzone sieci behawioralne .................................................................................. 285 Dyskusja ...................................................................................................................... 289 Konkluzja ..................................................................................................................... 289 Literatura cytowana ..................................................................................................... 290 Spis treści 7 Rozdział 3.4 Konstruowanie sterowanego celem robota gry Unreal Tournament przy użyciu czujników rozmytych, maszyn skończenie stanowych i rozszerzonych sieci behawioralnych ..... 291 Projektowanie rozszerzonej sieci behawioralnej ......................................................... 292 Hierarchiczne czujniki rozmyte ................................................................................... 298 Moduły behawioralne jako maszyny skończenie stanowe .......................................... 301 Konkluzja ..................................................................................................................... 303 Literatura cytowana ..................................................................................................... 303 Rozdział 3.5 Robot sterowany celem: projektowanie zachowań i cech osobowości agenta gry przy użyciu rozszerzonych sieci behawioralnych ....................... 305 Rozszerzone sieci behawioralne .................................................................................. 306 Jakość wyboru akcji ..................................................................................................... 311 Projektowanie cech osobowości .................................................................................. 314 Konkluzja ..................................................................................................................... 317 Literatura zalecana ....................................................................................................... 318 Rozdział 3.6 Modelowanie pamięci krótkotrwałej Rozdział 3.7 Rozdział 3.8 Rozdział 3.9 przy użyciu maszyny wektorów wspierających ........................... 319 Maszyny wektorów wspierających .............................................................................. 319 Modelowanie pamięci krótkotrwałej ........................................................................... 325 Limitowanie obciążenia procesorów ........................................................................... 326 Konkluzja ..................................................................................................................... 326 Literatura cytowana ..................................................................................................... 327 Zastosowanie modelu oceny kwantytatywnej do analizy konfliktów zbrojnych ................................................... 329 Formuła podstawowa ................................................................................................... 330 Obliczanie siły ognia ................................................................................................... 330 Obliczanie potencjału bojowego .................................................................................. 331 Szacowanie efektywności użycia broni ....................................................................... 332 Teoretyczne przewidywanie wyniku konfliktu ............................................................ 333 A co z efektywnością wykorzystania broni? ............................................................... 334 Przykład systemu QJM ................................................................................................ 334 Ograniczenia ................................................................................................................ 335 Konkluzja ..................................................................................................................... 335 Literatura cytowana ..................................................................................................... 336 Projektowanie wielowarstwowego, przyłączalnego silnika AI .. 337 Rozwiązania pokrewne ................................................................................................ 338 Architektura silnika AI ................................................................................................ 339 Klasy i właściwości systemu sterowanego danymi ..................................................... 340 Priorytetowy zarządca zadań ....................................................................................... 345 Wydajność i techniki optymalizacyjne ........................................................................ 346 Narzędzia ..................................................................................................................... 348 Konkluzja ..................................................................................................................... 350 Literatura cytowana ..................................................................................................... 351 Zarządzanie złożonością scenerii na bazie reguł logiki rozmytej .. 353 Koncepcja .................................................................................................................... 353 Regulacja rozmyta ....................................................................................................... 354 Narzędzia ..................................................................................................................... 354 Projekt systemu ............................................................................................................ 357 Zastosowanie do gier ................................................................................................... 358 8 Perełki programowania gier. Vademecum profesjonalisty. Tom 6 Założenia ...................................................................................................................... 359 Uwagi implementacyjne .............................................................................................. 360 Testy i ich rezultat ....................................................................................................... 360 Konkluzja ..................................................................................................................... 362 Podziękowanie ............................................................................................................. 362 Literatura cytowana ..................................................................................................... 363 Część IV Skrypty i systemy sterowane danymi ............................. 365 Wprowadzenie ................................................................................ 367 Rozdział 4.1 Przegląd języków skryptowych ..................................................... 371 Po co w ogóle stosować języki skryptowe? ................................................................. 371 Wprowadzenie ............................................................................................................. 371 Sposób kodowania ....................................................................................................... 372 Integracja z językami C/C++ ....................................................................................... 377 Wydajność ................................................................................................................... 384 Metody wspierania procesów wytwarzania ................................................................. 387 Konkluzja ..................................................................................................................... 390 Literatura ...................................................................................................................... 390 Rozdział 4.2 Wiązanie obiektów C/C++ ze skryptami języka Lua .................. 391 Funkcje wiążące ........................................................................................................... 392 Wiązanie właściwych obiektów z wartościami języka Lua ......................................... 394 Wiązanie obiektów środowiska nadrzędnego z obiektami języka Lua ....................... 397 Wiązanie właściwych obiektów z tabelami języka Lua .............................................. 402 Konkluzja ..................................................................................................................... 403 Literatura ...................................................................................................................... 406 Rozdział 4.3 Rozdział 4.4 Programowanie zaawansowanych mechanizmów sterujących z wykorzystaniem współprogramów języka Lua ......................... 407 Współprogramy Lua .................................................................................................... 408 Filtry ............................................................................................................................ 409 Iteratory ........................................................................................................................ 411 Mechanizmy szeregowania zadań ............................................................................... 414 Wielozadaniowość równoległa .................................................................................... 415 Konkluzja ..................................................................................................................... 419 Literatura ...................................................................................................................... 419 Zarządzanie wykonywaniem skryptów wysokopoziomowych w ramach środowisk wielowątkowych ........................................ 421 Oprogramowanie komponentowe i interpreter skryptu ............................................... 422 Współprogramy i mikrowątki ...................................................................................... 422 Menedżer mikrowątków .............................................................................................. 423 Osadzanie kodu języka Python .................................................................................... 426 Eksperymenty i wyniki ................................................................................................ 429 Konkluzja ..................................................................................................................... 431 Literatura ...................................................................................................................... 432 Rozdział 4.5 Udostępnianie właściwości aktorów z wykorzystaniem nieinwazyjnych pośredników ........................ 433 Aktorzy, pośrednicy i właściwości. Mój Boże! ........................................................... 433 Nieinwazyjna i dynamiczna architektura ..................................................................... 435 Właściwości aktora ...................................................................................................... 436 Pośrednicy aktorów ..................................................................................................... 440 Spis treści 9 Rozdział 4.6 Od teorii do praktyki .................................................................................................... 442 Konkluzja ..................................................................................................................... 443 Literatura ...................................................................................................................... 443 System komponentowy obiektów gry .......................................... 445 Obiekty gry .................................................................................................................. 445 Komponenty bazowe obiektów gry ............................................................................. 447 Zarządzanie komponentami z poziomu obiektów gry ................................................. 448 Komunikacja pomiędzy komponentami ...................................................................... 450 Szablony komponentów gry ........................................................................................ 451 Szablony obiektów gry ................................................................................................ 454 Tworzenie obiektu gry sterowanego danymi ............................................................... 455 Konkluzja ..................................................................................................................... 455 Część V Grafika ................................................................................ 457 Wprowadzenie ................................................................................ 459 Rozdział 5.1 Synteza realistycznych ruchów nieaktywnych postaci w grze . 461 Wprowadzenie ............................................................................................................. 462 Główne składowe animacji ciała ludzkiego ................................................................. 463 Zmiany postaw ............................................................................................................. 465 Ciągłe, drobne zmiany postaw ..................................................................................... 469 Konkluzja ..................................................................................................................... 474 Literatura ...................................................................................................................... 474 Rozdział 5.2 Dzielenie przestrzeni z wykorzystaniem adaptacyjnego drzewa binarnego .............. 477 Budowa adaptacyjnego drzewa binarnego .................................................................. 477 Szczegółowa implementacja drzewa ABT .................................................................. 479 Poszukiwanie odpowiednich płaszczyzn dzielących ................................................... 483 Stosowanie drzew ABT dla scen dynamicznych ......................................................... 486 Wizualizacja drzewa ABT ........................................................................................... 487 Konkluzja ..................................................................................................................... 489 Podziękowania ............................................................................................................. 489 Literatura ...................................................................................................................... 489 Rozdział 5.3 Rozszerzony mechanizm eliminowania obiektów z wykorzystaniem (niemal) całkowicie ukierunkowanych ramek ograniczających ...491 Przegląd znanych metod .............................................................................................. 492 Techniki tradycyjne ..................................................................................................... 493 Efektywne rozwiązanie dla dwóch wymiarów ............................................................ 494 Udoskonalenia technik tradycyjnych ........................................................................... 496 Eliminowanie obiektów według ramki ograniczającej ................................................ 500 Dalsze usprawnienia .................................................................................................... 501 Konkluzja ..................................................................................................................... 502 Literatura ...................................................................................................................... 503 Podział powierzchni z myślą o optymalizacji renderingu .......... 505 Wprowadzenie ............................................................................................................. 505 Koncepcje podziału ..................................................................................................... 506 Heurystyka podziału wag ............................................................................................ 508 Heurystyka palety kości ............................................................................................... 508 Szczegółowe omówienie heurystyki ............................................................................ 511 Konkluzja ..................................................................................................................... 515 Rozdział 5.4 10 Perełki programowania gier. Vademecum profesjonalisty. Tom 6 Rozdział 5.5 Rendering terenu na poziomie procesora GPU .......................... 517 Prosty algorytm ............................................................................................................ 518 Poziom szczegółowości ............................................................................................... 519 Eliminowanie szczelin ................................................................................................. 521 Odrzucanie obiektów spoza ostrosłupa widoczności ................................................... 523 Wyznaczanie normalnych ............................................................................................ 523 Unikanie kolizji ........................................................................................................... 525 Problemy implementacyjne ......................................................................................... 526 Wyniki ......................................................................................................................... 527 Konkluzja ..................................................................................................................... 528 Literatura ...................................................................................................................... 528 Rozdział 5.6 Rozdział 5.7 Interaktywna dynamika cieczy i rendering na poziomie GPU .. 529 Podstawy matematyczne .............................................................................................. 530 Implementacja na poziomie GPU ................................................................................ 534 Interakcja z cieczą ........................................................................................................ 540 Materiały dodatkowe ................................................................................................... 542 Konkluzja ..................................................................................................................... 542 Literatura ...................................................................................................................... 543 Szybkie oświetlanie poszczególnych pikseli w środowisku z wieloma źródłami światła ................................... 545 Rozwiązanie polegające na odkładaniu efektów oświetlenia na później .................... 546 Implementacja odłożonego cieniowania dla najnowszych kart graficznych ............... 547 Podstawowe techniki optymalizacji składowania danych ........................................... 549 Optymalizacja shaderów i ograniczenia sprzętowe ..................................................... 552 Rozszerzanie efektów przetwarzania końcowego przestrzeni obrazu ......................... 555 Konkluzja ..................................................................................................................... 556 Literatura ...................................................................................................................... 556 Rozdział 5.8 Rendering ostrych znaków drogowych ....................................... 557 Wygładzanie krawędzi tekstur progowanych .............................................................. 559 Optymalne tekstury dla techniki progowania .............................................................. 564 Aplikacja autorska ....................................................................................................... 568 Konkluzja i perspektywa rozwoju ............................................................................... 571 Literatura ...................................................................................................................... 572 Rozdział 5.9 Praktyczny rendering nieba na potrzeby gier komputerowych ......573 Czego chcemy, a co mamy? ........................................................................................ 573 Co właściwie powinno się znaleźć na niebie? ............................................................. 575 Wąskie gardła .............................................................................................................. 576 Wprowadzenie sześciennej mapy nieba ...................................................................... 579 Skalowanie czasu ......................................................................................................... 580 Analiza aplikacji demonstracyjnej ............................................................................... 581 Kierunki rozwoju ......................................................................................................... 582 Konkluzja ..................................................................................................................... 583 Literatura ...................................................................................................................... 584 Rozdział 5.10 Rendering rozszerzonego zakresu jasności (HDR) z wykorzystaniem obiektów bufora klatek biblioteki OpenGL .. 585 Wprowadzenie do obiektów bufora klatek .................................................................. 585 Konstruowanie obiektów bufora klatek ....................................................................... 587 Rendering rozszerzonego zakresu jasności (HDR) za pomocą obiektów bufora klatek ......590 Konkluzja ..................................................................................................................... 592 Informacje dodatkowe ................................................................................................. 593 Literatura dodatkowa ................................................................................................... 593 Spis treści 11 Część VI Audio ................................................................................. 595 Wprowadzenie ................................................................................ 597 Rozdział 6.1 Generowanie dźwięku w czasie rzeczywistym poprzez deformację siatkową brył sztywnych ............................ 599 Retrospekcja ................................................................................................................ 599 Ogólne zasady .............................................................................................................. 600 Podstawy analizy modalnej ......................................................................................... 601 Ograniczenia ................................................................................................................ 603 Od deformacji do dźwięku ........................................................................................... 604 Konkluzja ..................................................................................................................... 605 Literatura zalecana ....................................................................................................... 605 Literatura cytowana ..................................................................................................... 606 Prosty generator efektów dźwiękowych czasu rzeczywistego . 607 Silnik akustyki otoczeniowej ....................................................................................... 607 Synteza dźwięku .......................................................................................................... 608 Przykłady ze świata rzeczywistego .............................................................................. 610 Konkluzja ..................................................................................................................... 612 Demo ............................................................................................................................ 613 Literatura cytowana ..................................................................................................... 613 Rozdział 6.2 Rozdział 6.3 Miksowanie dźwięku w czasie rzeczywistym .............................. 615 Niby nic, a jednak… .................................................................................................... 615 Implementacja łańcucha magistral ............................................................................... 617 Miara głośności — stosunek natężeń albo decybele ................................................... 619 Zapobieganie nieefektywności .................................................................................... 620 Inne usprawnienie ........................................................................................................ 620 Konkluzja ..................................................................................................................... 620 Literatura cytowana ..................................................................................................... 621 Rozdział 6.4 Rozdział 6.5 Rozdział 6.6 Zbiór potencjalnej słyszalności ..................................................... 623 PVS — podstawy ......................................................................................................... 623 PAS — algorytm podstawowy .................................................................................... 625 Bezpośrednie ścieżki dźwiękowe ................................................................................ 625 Rozszerzenie na falę przechodzącą .............................................................................. 630 Rozszerzenie na falę odbitą ......................................................................................... 631 Konkluzja ..................................................................................................................... 632 Literatura cytowana ..................................................................................................... 632 Tani efekt Dopplera ........................................................................ 633 Zjawisko Dopplera ....................................................................................................... 633 Programowanie efektu Dopplera ................................................................................. 636 Zmienna prędkość ........................................................................................................ 639 Aliasowanie ................................................................................................................. 640 Implementacja .............................................................................................................. 641 Konkluzja ..................................................................................................................... 641 Zasoby .......................................................................................................................... 641 Preparowanie efektów specjalnych ............................................ 643 Preparacja .................................................................................................................... 643 Przykład: radio grające w pokoju ................................................................................ 644 Krzywe stałej głośności ............................................................................................... 645 Zaawansowane sterowanie głośnością ......................................................................... 646 12 Perełki programowania gier. Vademecum profesjonalisty. Tom 6 Pliki wielościeżkowe i DirectSound ............................................................................ 646 Koszty i korzyści ......................................................................................................... 647 Konkluzja ..................................................................................................................... 647 Podziękowania ............................................................................................................. 647 Część VII Sieć i gry wielodostępne ................................................ 649 Wprowadzenie ................................................................................ 651 Rozdział 7.1 Dynamicznie adaptowalne strumieniowanie danych 3D dla animowanych postaci ............................................................. 653 Wprowadzenie ............................................................................................................. 653 Podstawy i zagadnienia pokrewne ............................................................................... 654 Przygotowywanie i tworzenie skalowalnych danych 3D ............................................ 655 Sterowana kontekstem adaptacja wysyłanego strumienia ........................................... 662 Konkluzja ..................................................................................................................... 664 Literatura cytowana ..................................................................................................... 665 Rozdział 7.2 Wysokopoziomowa architektura systemowa dla masywnych gier online ........................................................... 667 Systemy złożone i ich zachowanie wzbogacające ....................................................... 668 Architektura wielowarstwowa ..................................................................................... 668 Sprzężenie zwrotne w systemach decyzyjnych ........................................................... 680 Konkluzja ..................................................................................................................... 681 Literatura cytowana ..................................................................................................... 681 Rozdział 7.3 Generowanie unikalnych identyfikatorów globalnych Rozdział 7.4 Rozdział 7.5 dla obiektów gier ........................................................................... 683 Wymagania dla identyfikatorów GUID ....................................................................... 683 Generowanie GUID ..................................................................................................... 685 Sytuacje wyjątkowe i ich obsługa ................................................................................ 687 Konkluzja ..................................................................................................................... 688 Literatura cytowana ..................................................................................................... 688 jako narzędzie prototypowania gier MMOG .......... 689 Second Life Wstęp ........................................................................................................................... 689 Dlaczego Second Life? ................................................................................................ 689 Second Life — zaczynamy! ......................................................................................... 693 Second Life jako narzędzie projektanta ....................................................................... 693 Opracowywanie prototypu ........................................................................................... 695 Tringo — historia sukcesu ........................................................................................... 698 Konkluzja ..................................................................................................................... 698 Literatura cytowana ..................................................................................................... 699 Niezawodne połączenia TCP peer-to-peer w warunkach translacji NAT .......................................................... 701 Problem ........................................................................................................................ 701 Rozwiązania ................................................................................................................. 703 Realizacja ..................................................................................................................... 703 Zastosowania ............................................................................................................... 708 Ograniczenia ................................................................................................................ 709 Konkluzja ..................................................................................................................... 709 Literatura cytowana ..................................................................................................... 710 Skorowidz ........................................................................................ 711 Rozdział 3.1 Zastosowanie modelowanego podejścia do implementacji AI na przykładzie Locust AI Engine w QA3 Armand Prieditis, Lookahead Decisions Inc. prieditis@lookaheaddecisions.com Mukesh Dalal, Lookahead Decisions Inc. mukesh@lookaheaddecisions.com Tworzenie dobrych gier w oparciu o AI jest naprawdę trudną sztuką. Tradycyjna filozo- fia tej sztuki opera się na regułach (ang. rules), które — niestety — są często nieprecy- zyjne, a ich definiowanie, implementowanie, debugowanie i modyfikowanie — dość kosztowne. W dodatku często bywa i tak, iż ostateczny rezultat zastosowania owych re- guł zdaje się mieć z jakąkolwiek inteligencją niewiele wspólnego. W niniejszym arty- kule opisujemy alternatywne podejście do sztucznej inteligencji — podejście oparte na modelowaniu realnego świata, w którym rozgrywa się scenariusz, czyli świata akcji, ich efektów i obserwacji. Jest to podejście bardziej niezawodne, elastyczne i skutkujące in- teligentniejszym zachowaniem aktorów gry; w charakterze przykładu przedstawimy dotychczasowe rezultaty jego zastosowania w postaci silnika Locust AI Engine na po- trzeby gry Quake III. Skoncentrujemy się głównie na korzyściach, jakie użytkownik gry zyskuje dzięki sztucznej inteligencji, i z tej perspektywy przedstawimy wizję przyszłych jej zastosowań. 254 Część III  Sztuczna inteligencja Wprowadzenie Z rysunku 3.1.1 wynika, że współczesne gry komputerowe osiągają swój realizm, czer- piąc z trzech dziedzin wiedzy: grafiki, fizyki i sztucznej inteligencji. Co prawda, samo pojęcie „realizmu” trudno jednoznacznie zdefiniować w sposób formalny, niemniej jed- nak intuicyjnie przekłada się ono w pierwszym rzędzie na zaangażowanie, jakie staje się udziałem gracza, i inteligencję przejawianą w zachowaniu tzw. bohaterów niezależnych (BN, z angielskiego Non-Player Characters — NPC)1: wygląd i zachowanie obiektów zbliżone jest mocno do rzeczywistości, a działania bohaterów niezależnych wydają się racjonalne. Te właśnie względy są nawet ważniejsze niż kreowanie „niezwyciężonych” przeciwników. Rysunek 3.1.1. Gry komputerowe jako kombinacja zastosowań trzech technologii Bo do tworzenia „niepokonanych” wcale nie jest konieczna sztuczna inteligencja — często wystarcza zwyczajne oszustwo czy nieuczciwość. Nietrudno przecież stworzyć BN, który bezbłędnie, natychmiast odnajduje kryjówkę przeciwnika (w którego wciela się gracz); zachowaniem bardziej realistycznym (mimo iż, oczywiście, mniej skutecz- nym) jest jednak przeszukiwanie terenu, budynku itp. przypominające racjonalne postę- powanie. W ten oto sposób interes gracza postawiony zostaje ponad interesem jego przeciwnika; tego właśnie gracze od nas oczekują i to powinno stanowić nasz cel, cel projektantów. W dwóch cytowanych na rysunku 3.1.1 dziedzinach — grafice komputerowej i oblicze- niowych zastosowaniach fizyki —na przestrzeni kilku ostatnich lat poczyniono olbrzy- mi postęp. Oszałamiające możliwości takich narzędzi jak Maya czy 3D Max są obecnie raczej normą niż wyjątkiem, a pakiety fizyczne w rodzaju Havok ułatwiają programo- wanie realistycznych scen. Z tego powodu ani grafika, ani realistyczne symulacje zja- wisk fizycznych nie są już dziś tymi czynnikami, które decydują o powodzeniu gier w kręgach ich użytkowników. Jeśli natomiast chodzi o sztuczną inteligencję, to daje ona większą okazję do twórczej inwencji i nowatorstwa, bo nie był jej udziałem żywiołowy rozwój, jakiego doświadczyli dwaj jej partnerzy. Pozostająca niejako w ich cieniu nie doczekała się też (na razie) żadnego wsparcia sprzętowego, więc siłą rzeczy związane z nią obliczenia obciążają bezpośrednio procesory centralne (CPU), co stawia przed programistami nowe wyzwania, ale też daje im szerokie pole do popisu. Z drugiej jed- Patrz http://pl.wikipedia.org/wiki/Bohater_niezale C5 BCny — przyp. tłum. 1 Rozdział 3.1  Zastosowanie modelowanego podejścia do implementacji AI 255 nak strony, powierzenie wielu skomplikowanych funkcji koprocesorom graficznym zmniejsza obciążenie CPU, których moc przeznaczyć można tym samym w większym stopniu na potrzeby AI. W niniejszym artykule przedstawimy kilka przykładów wyko- rzystania tej sposobności. Stan obecny — zbiory reguł deterministycznych W większości współczesnych gier pierwiastek sztucznej inteligencji manifestuje się po- przez reguły. Każda reguła jest parą o postaci „sytuacja → akcja” — gdy stwierdzone zostanie wystąpienie (zaistnienie) określonej sytuacji, uruchamia się właściwą dla niej akcję, którą może być pojedynczy ruch obiektu, sekwencja takich ruchów określona przez skrypt czy też zachowanie bardziej złożone, reprezentowane przez klip wideo. I tak np. widoczność wroga i słaba kondycja gracza to sytuacja nakazująca odwrót tego ostatniego, podobnie jak stwierdzenie wyraźnej przewagi wroga pod względem uzbro- jenia. Animacja prezentowana w związku z akcją może być wyświetlana przez ustalony odcinek czasu bądź też do momentu kolejnego „dopasowania” aktualnej sytuacji do jednej z reguł. „Sytuacja” (jako składnik reguły) może mieć niekiedy postać skompli- kowanej formuły boole’owskiej — w przedstawionym przykładzie jest to alternatywa niewyłączająca (OR) dwóch okoliczności. Inną popularną regułą, związaną z poszukiwaniem ścieżek, jest wybór przez BN naj- krótszej drogi prowadzącej do określonego celu. Przy braku dynamicznych przeszkód i innych agentów AI reguła ta sprawdza się całkiem dobrze. Sposoby dopasowywania aktualnej sytuacji do konkretnej reguły mogą być zróżnico- wane. Niekiedy proces dopasowywania może być sterowany za pomocą drzewa decy- zyjnego, czego przykład przedstawiliśmy na rysunku 3.1.2: węzły drzewa reprezentują wówczas pewne zdefiniowane a priori okoliczności elementarne, zaś każdy z liści — jedną ze zdefiniowanych akcji. Na wspomnianym rysunku wszystko zaczyna się od sprawdzenia, czy BN ma sprawną broń; jeśli tak, sprawdza się, czy znajduje się on do- statecznie blisko przeciwnika. Spełnienie obu tych reguł wyzwala akcję, którą jest atak; jak łatwo zauważyć, atak może być również podjęty w jeszcze jednej sytuacji — BN nie ma broni, ale stwierdza, że przeciwnik, jako niższy wzrostem, jest słabszy fizycznie i można go pokonać w walce wręcz. Każda ze ścieżek, prowadząca w drzewie decyzyjnym od jego korzenia do jednego z li- ści, reprezentuje więc pojedynczą regułę „sytuacja → akcja”, przy czym „sytuacja” zde- finiowana jest przez ciąg odwiedzanych po drodze węzłów, zaś „akcja” reprezentowana jest przez liść kończący ścieżkę. Mimo iż drzewo decyzyjne stanowi bardzo oszczędną formę kodowania reguł, to pod względem zawartości informacyjnej jest ono równoważne klasycznemu zbiorowi par „sytuacja → akcja”. Innym środkiem kodowania reguł są maszyny skończenie stanowe (ang. Finite State Machines — FSM). Maszyna taka składa się ze zbioru (zdefiniowanych a priori) stanów2, z których każdy odpowiada określonej akcji oraz (reprezentowanych w formie łuków) Z wyróżnionym stanem początkowym — przyp. tłum. 2 256 Część III  Sztuczna inteligencja przejść między stanami, odpowiadających testowaniu sytuacji [Rabin02]. W maszynie FSM widocznej na rysunku 3.1.3 stanem początkowym może być BEZCZYNNOŚĆ, odpo- wiadająca bezczynności BN, aż do momentu ujrzenia wroga, ki
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Perełki programowania gier. Vademecum profesjonalisty. Tom 6
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: