Facebook - konwersja
Czytaj fragment
Pobierz fragment

Box2D. Fizyczny świat w pudełku - ebook

Data wydania:
16 października 2015
Format ebooka:
EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(2w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
Czytaj fragment
Pobierz fragment
59,00

Box2D. Fizyczny świat w pudełku - ebook

Czy wiesz, co wpłynęło na sukces Angry Birds? Realistyczna fizyka, za którą stoi Box2D – silnik fizyczny wykorzystywany dzisiaj w setkach gier.

Autorom, posiłkującym się silnikiem Box przez ostatnie kilka lat działalności w branży, nie udało się co prawda napisać gry na porównywalnym poziomie, niemniej jednak są oni współtwórcami kilku projektów, które odniosły wymierny sukces komercyjny.

Publikacja ta, dzięki odsłonięciu technik implementacyjnych, ma na celu zachęcić czytelników do tworzenia ciekawych i oryginalnych gier, co z pewnością przyczyni się do podniesienia rangi polskiego GameDevu na świecie i dalszego pomyślnego rozwoju tej sfery polskiej wytwórczości.

Z książki dowiesz się, jak:

- napisać dobrą, zgodną z obecnymi standardami grę na swojego smartfona,
- zaimplementować funkcjonalność podobną do zastosowanej w sztandarowych tytułach,
- tworzyć własne rozwiązania z uwzględnieniem fizyki,
- wzbogacić swój program o fizykę.

Czytając tę książkę powinieneś znać:

- C++ w stopniu podstawowym,
- zintegrowane środowiska programistyczne, w tym Microsoft Visual Studio,
- podstawy mechaniki Newtona.

Spis treści

Rozdział 1. Wprowadzenie

1.1. Dla kogo jest ta książka?
1.2. Dlaczego Box2D?
1.3. Platformy docelowe
1.4. Materiały uzupełniające

Rozdział 2. Principia physica, czyli podstawy fizyki gier

2.1. Teoria
2.1.1. Podstawowe wielkości fizyczne
2.1.2. Rachunek wektorowy
2.2. Rigid body physics, czyli fizyka ciała sztywnego
2.2.1. Struktura silnika fizycznego
2.3. Soft body physics, czyli fizyka ciała deformowalnego?

Rozdział 3. Przygotowujemy środowisko, czyli decyzje projektowe

3.1. Zintegrowane środowisko programistyczne
3.1.1. Konfiguracja
3.1.2. Portowalność
3.2. Wizualizacja obiektów fizycznych
3.3. Debug framework – szablon roboczy

Rozdział 4. Otwieramy pudełko!

4.1. Faza zerowa: inicjalizacja i parametryzacja świata Box2D 45 4.2. Faza pierwsza: tłusta oliwa
4.2.1. Prymitywny start
4.2.2. Obiekty „wielkie i ciężkie”
4.2.3. Podłoże
4.2.4. Lokomotywa
4.3. Faza druga: para buch
4.3.1. Siły
4.3.2. Kolizje
4.4. Faza trzecia: koła w ruch
4.4.1. Liny
4.4.2. Mosty
4.4.3. Ciała złożone
4.4.4. Cięcie obiektów
4.4.5. Ciała miękkie
4.4.6. Obiekt ragdoll
4.4.7. Profiler

Rozdział 5. Piszemy „prawdziwą” grę!

5.1. Nowy, lepszy szablon aplikacji
5.1.1. Klasa gry
5.1.2. Dodajemy Box!
5.1.3. Mini Birds
5.2. Port na Android OS
5.3. Port na iOS
5.4. Port dokądkolwiek

Rozdział 6. Podsumowanie

Bibliografia
Dodatek 1. C++. Materiał referencyjny
Dodatek 2. OpenGL ES 1.1. Materiał referencyjny
Skorowidz

Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-01-18142-0
Rozmiar pliku: 3,6 MB

FRAGMENT KSIĄŻKI

1 Wprowadzenie

Lubię fizykę, lecz kocham kreskówki.

Stephen Hawking

Przed podawaniem ścisłych konkretów, pozwolimy sobie wprowadzić zdrową równowagę, budując zasadność powstania tejże książki; książki o fizycznym świecie w pudełku zwanym Box2D.

Z pewnego punktu widzenia jej powstanie jest bowiem średnio zasadne: po co komu blisko 200 stron rozwinięcia ogólnodostępnej, najeżonej przykładami dokumentacji do silnika fizycznego¹. Doświadczony programista przystąpi do właściwej implementacji w kilkanaście minut od pobrania i uruchomienia hello world².

Aby odeprzeć powyższe, musimy posłużyć się dość długim (i niepotrzebnym) wywodem na temat faktycznego stanu naszej ulubionej branży (jaką jest oczywiście gamedev³).

Gry komputerowe kreślą pewien bardzo specyficzny obszar, leżący gdzieś na styku nauk ścisłych i humanistycznych. Z jednej strony pogardzane przez poważne środowiska ściśle naukowe, z drugiej przez nieco mniej poważne środowiska antropocentryczne; ci pierwsi uważają, że „jakieś tam gry” to żart z ich dorobku, ci drudzy – odwrotnie, że ludzi obserwujących całymi dniami rzędy uciekających cyferek nie stać na głębsze myśli.

Tymczasem, aby od zera zrealizować grę AAA⁴, potrzeba chyba wszelkiej możliwej wiedzy z zakresu informatyki, w doskonałej części matematyki i w niezbywalnej części fizyki. Algorytmika, programowanie niskopoziomowe procesorów, rozmaite struktury danych, reprezentacja świata w trójwymiarze, symulacja zjawisk naturalnych, komunikacja z urządzeniami zewnętrznymi, implementacja we wszelakich językach programowania, komunikacja sieciowa… tyle nam przychodzi do głowy w trakcie pisania tego zdania, ale obeznany w nauce i technologiach informacyjnych Czytelnik z całą pewnością przywoła co najmniej drugie tyle.

Jednak nawet najlepiej rozwinięty silnik, na którym jest oparta gra, będzie zupełnie bezużyteczny bez wyobraźni projektantów i artystów – to oni bowiem nadają grom klimat, który albo na lata zapada w pamięci, albo pozostaje nieistotnym dodatkiem do barwnego wszechświata gier komputerowych. Umysły ścisłe mogą bowiem fabrykować pewne rzeczy, ale do stworzenia doskonałej gry potrzeba dużej dawki specyficznych emocji i tych właśnie dostarczają głowy z bardziej rozwiniętą prawą półkulą mózgu.

Powyższe wydaje się zgadzać, ale nie nakręcajmy się – tworzenie gier to ani nie rozszczepianie atomów, ani budowanie windy kosmicznej, ani też inny rocket science; jest to sposób na dobrą zabawę w relatywnie poważnym biznesie. Zupełnym szczęściem, nikt poza nami, twórcami gier, i garścią uświadomionych inwestorów, nie ma w naszym kraju pojęcia, na czym ów biznes polega; jesteśmy w stu procentach pewni, że między innymi dlatego tak wspaniale sie rozwijamy. Polscy programiści należą do światowej czołówki i są rozchwytywani przez zagraniczne studia deweloperskie, z których ofert skwapliwie korzystają.

O co nam zatem chodzi, tym, którzy dzielą się wiedzą o grach?

Chcemy przyczynić się do wyłonienia jak najbardziej liczebnej grupy programistów gier i zarazić ją niezbywalnym entuzjazmem do ich tworzenia, do czego, w co chcemy wierzyć, przyczyni się niniejsza książka. Książka, która nauczy, jak w elegancki i twórczy sposób wykorzystać Box2D!

1.1. Dla kogo jest ta książka?

Warunkiem sine qua non do przystąpienia do niniejszej publikacji jest zgłębienie ze zrozumieniem Philosophiæ Naturalis Principia Mathematica⁵ Sir Issaca Newtona.

Powyższe zdanie należy potraktować jako hiperboliczny żart, ponieważ autorom (jak i, na pocieszenie, wielu przed nimi) się to nie udało. Tak, czy inaczej – ciekawa, klasyczna pozycja na samotne, mroźne wieczory. A zatem warunkiem sine qua non do przystąpienia do niniejszej publikacji jest szczera chęć czytelnika, który zetknął się wcześniej z językami programowania i zna podstawy fizyki.

Zależało nam, aby niniejszy podręcznik nie został jałowym materiałem referencyjnym, dlatego zdecydowaliśmy się na konwencję niemalże interaktywną z Czytelnikiem: wychodząc od podstawowej funkcjonalności silnika Box2D, poprowadzimy Cię do stworzenia solidnego prototypu pełnokrwistej gry mobilnej⁶. Zanim jednak wyciągniemy rękę, potrzebujemy, abyś uznał, że znasz język C++ w stopniu podstawowym. Przez stopień podstawowy rozumiemy: znajomość klas, funkcji, zmiennych, tablic i pętli. Wskaźniki Ci darujemy. Jeżeli któraś z wymienionych kwestii z jakiegoś powodu pozostaje nieostra, albo chwilowo wypadła Ci z pamięci, to zawsze możesz sięgnąć do internetu bądź Dodatku 1. na końcu książki.

1.2. Dlaczego Box2D?

Odpowiedź na to pytanie jest prosta: bo jest łatwy, lekki i działa. Łatwy, czyli i Ty, Czytelniku, dasz sobie z nim radę. Lekki, czyli z powodzeniem udźwignie go przeciętny smartfon dostępny za 1 PLN w abonamencie. No i wreszcie świetnie działa, biorąc odpowiedzialność za całą fizykę w naszej grze.

Box2D jest silnikiem implementującym fizykę ciała sztywnego, z którą zapoznamy się bliżej w rozdziale 2.2; przy obranej przez nas klasie gier można zaryzykować twierdzenie, że Box2D wyznacza tzw. industry standard. Jaką klasę mamy na myśli? Odpowiedzią będzie fragment dialogu, który odbył się między panami: Erinem Catto i Peterem Vesterbacką:

Erin: Cześć Peter, mógłbyś mi powiedzieć jakiego silnika fizycznego używa Angry Birds?

Peter: Box2D.

Erin: Świetnie. Rozważyłbyś umieszczenie „Box2D” w sekcji credits waszej gry?

Peter. Pewnie.

Erin: Dzięki! Przy okazji, nazywam się Erin Catto i jestem twórcą Box2D.

Biorąc pod uwagę, że ok. 50% ziemskiej populacji wie, co to jest Angry Birds, lepszego punktu odniesienia nie było sensu szukać.

Box2D, jak sam sugeruje, nadaje się do gier 2D, czyli dwuwymiarowych (od „2-dimensional”). Gry 2D przeżywają obecnie mały renesans za sprawą rozmaitych urządzeń przenośnych, których moc obliczeniowa i wykorzystanie baterii do niedawna jeszcze nie pozwalały na wyrenderowanie przyzwoitej sceny trójwymiarowej. Dodatkowym czynnikiem jest obecność smartfona w co drugiej polskiej kieszeni, co spowodowało mimowolne zainteresowanie się grami przez ludzi preferujących innego rodzaju rozrywki (tzw. gracze każualowi⁷).

Box2D nie jest jedynym rozwiązaniem w dziedzinie fizyki wspomagającym tworzenie gier – w tab. 1.1 są podane inne silniki fizyczne, definiujące standardy techniczne w naszej branży; warto rzucić na nią okiem chociażby po to, aby porównać, jakiej rangi gry ze sobą niosą.

Tabela 1.1. Najpopularniejsze silniki fizyczne stosowane w grach

+---------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+
| Engine | Developer | Opis | Odpowiedzialny za (m.in): |
+---------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+
| Chipmunk2D | Scott Lembcke i in. | dwuwymiarowy silnik wobec ciał sztywnych; napisany w języku C, przez co charakteryzuje się arytmetyką proceduralną | Dungeon Defense |
| | | | |
| | | | Waking Mars |
| | | | |
| | | | Feed Me Oil |
+---------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+
| Box2D | Erin Catto | o nim jest ta książka | Angry Birds |
| | | | |
| | | | Limbo |
| | | | |
| | | | Cat on a Diet |
+---------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+
| Bullet | Erwin Coumans i in. | silnik trójwymiarowy, implementujący fizykę ciała sztywnego jak i deformowalnego⁸; używany również w filmach | Sonic the Hedgehog |
| | | | |
| | | | Deus Ex |
| | | | |
| | | | Grand Theft Auto IV/V |
+---------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+
| Open Dynamic Engine (ODE) | Russell Smith | silnik trójwymiarowy, składa się z dwóch głównych modułów; pierwszy implementuje fizykę ciała stałego, drugi jest odpowiedzialny za wykrywanie kolizji; chętnie stosowany w robotyce | World of Goo |
| | | | |
| | | | Mario Strikers Charged |
| | | | |
| | | | Dead Island |
| | | | |
| | | | |
+---------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+
| Havok | Havok | wieloplatformowy, złożony middleware⁹, zawierający prócz rigid body i soft body moduły sztucznej inteligencji, animacji i inne | Alan Wake |
| | | | |
| | | | Skyrim |
| | | | |
| | | | Wiedźmin 2 |
+---------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+
| PhysX | NVIDIA Corporation (obecnie) | wieloplatformowy, podobnie jak Havok o szerokim zakresie funkcjonalności, wszak liczony przez procesor graficzny, a nie główny | Mirror’s Edge |
| | | | |
| | | | Batman: Arkham Asylum |
| | | | |
| | | | Wiedźmin 3 |
+---------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+

Większość z wymienionych stała się integralną częścią syntetycznych systemów wspomagających tworzenie gier, tzw. game engines (rys. 1.1).

Jak widać, silnik gry to całkiem złożona sprawa; w obecnych czasach korzysta się raczej z istniejących rozwiązań niż tworzy nowe od zera. Przypuszczalnie, gdybyśmy zabrali się za napisanie samego tylko odpowiednika Box2D, to po ukończonym zadaniu zastałaby nas nowa generacja konsol gier wideo, czyli spóźnilibyśmy się na pociąg. Na szczęście nie musimy tego robić.

Rysunek 1.1. Przykładowa struktura silnika gry

1.3. Platformy docelowe

Box2D można obecnie podpiąć w zasadzie pod wszystko, począwszy od aplikacji Windows/Mac/Linux, przez iOS i Android, aż do Flasha i WWW (rys. 1.2). Wspomniana wcześniej gra Angry Birds słusznie sugeruje wszak, że naszą platformą docelową będzie urządzenie mobilne.

Rysunek 1.2. Możliwości zastosowania silnika Box2D

Jeżeli jako deployment target obierzesz, Czytelniku, smartfon, masz potencjalnie największą szansę na propagację swojej gry w obowiązującej obecnie sytuacji rynkowej najbliższej nam branży. Jako że spędziliśmy z urządzeniami tego typu bodaj najwięcej czasu zawodowego, stojąca u Twego progu wiedza będzie z pierwszej ręki. Zanim jednak obierzemy właściwy target w rozdziale 5, skonfigurujemy tzw. generic environment, w którym odbędziemy uniwersalne manewry w zakresie Box2D. Owe training grounds będą optymalnym punktem wyjścia w kierunku dowolnie obranej platformy; my udamy się w stronę platform mobilnych.

1.4. Materiały uzupełniające

W rozszerzeniu kontekstu zagadnień, o które ociera się nasza książka (rys. 1.3), pomoże indywidualne zgłębienie pozycji z poniższej listy:

• Dowolna książka do nauki języka C++. My zaczęliśmy kiedyś od C++ w 48 godzin Adama Majczaka.

• Dowolna książka do nauki OpenGL. Polecamy aktualne wydanieOpenGL Programming Guide: The Official Guide to Learning OpenGL.

• “iOS App Programming Guide” – dokument z oficjalnego programu deweloperskiego Apple.

• Android NDK: Beginners Guide Sylvaina Ratabuila. Książka porusza programowanie aplikacji natywnych (C++) na platformę Android, w odróżnieniu od aplikacji opartych na warstwie Java.

• Tricks of the Windows Game Programming Gurus André LaMothe’a. Mimo tendencyjnego tytułu i obranej platformy, zawarta tam wiedza o pisaniu gier jest uniwersalna.

Rysunek 1.3. Zagadnienia powiązane z Box2D w naszej książce
mniej..

BESTSELLERY

Kategorie: