Unity i C#. Praktyka programowania gier - ebook
Unity i C#. Praktyka programowania gier - ebook
Osiągnij wyższy poziom z Unity i C#!
- Poznaj zaawansowane techniki programowania
- Dowiedz się, jak realizować projekt informatyczny
- Naucz się tworzyć grę od strony praktycznej
Połączenie platformy Unity i języka C# zapewnia doskonałe środowisko do tworzenia i rozwijania różnego rodzaju gier komputerowych. To sprawia, że tandem ten jest niezwykle popularny wśród game developerów pragnących szybko i wydajnie osiągać profesjonalne efekty. Jednak sama znajomość narzędzi nie wystarczy, aby sprostać niełatwemu zadaniu zaprojektowania i zaprogramowania prawdziwej gry - by przekuć pomysł i umiejętności w prawdziwy produkt, trzeba czegoś więcej.
Niezbędne doświadczenie możesz zdobyć tylko w praktyce i na realnych przykładach. Takie warunki zapewni Ci właśnie ta książka! Pozbawiona zbędnej teorii, oparta na prawdziwym przypadku i do bólu praktyczna, pozwoli Ci szybko poznać zaawansowane techniki tworzenia gier komputerowych oraz wdrożyć się w proces opracowywania projektu przy użyciu metodyki zwinnej. Krok po kroku, iteracja za iteracją będziesz towarzyszyć autorowi w pracy nad komercyjnym produktem - przejdziesz wszystkie fazy jego rozwoju: od programowania, poprzez usuwanie błędów, po publikację gotowej gry.
W książce:
- Tworzenie obiektów scen środowiska Unity oraz ich komponentów
- Zaawansowane techniki w języku C# przydatne twórcom gier
- Praktyczne zastosowanie różnych wzorców projektowych
- Zarządzanie obiektami, wirtualnym czasem gry i jej stanem
- Realizacja rozgrywki w widoku pierwszoosobowym
- Usuwanie błędów i testowanie balansu gry
- Dostosowanie gry do platform mobilnych oraz VR
- Publikacja gry w popularnych sklepach cyfrowych
- Zastosowanie metodyki zwinnej w projekcie gry
Programuj gry jak profesjonalista!
Spis treści
Wstęp 9
- O czym jest książka? 9
- Co to jest metodyka zwinna oraz Scrum i jak prowadzony jest projekt gry w tej książce 11
- Struktura książki 12
- Zawartość książki 15
- Założenia projektu Symulator Zielarza 16
- Format kodu źródłowego 16
Rozdział 1. Pierwszy sprint. Struktury danych i losowanie choroby 19
- Planowanie 19
- Historyjki użytkownika 19
- Komentarz do planowania 20
- Zadania do wykonania 20
- Prace nad sprintem 21
- Utworzenie projektu w Unity 21
- Przygotowanie struktury folderów w projekcie 22
- Teren, słońce i kontroler pierwszoosobowy 24
- Prototyp domku zielarza na scenie 27
- Przygotowanie struktur danych - dokumentacja 27
- Przygotowanie struktur danych - teoria dotycząca typu enum oraz wyliczenie CzesciCiala 30
- Przygotowanie struktur danych - zdarzenia medyczne 34
- Przygotowanie struktur danych - szansa na zdarzenie medyczne 35
- Przygotowanie struktur danych - substancja i przedmiot leczniczy 36
- Przygotowanie struktur danych - pacjent i postać 37
- Ładowanie danych z konfiguracji XML - ładowanie zawartości pliku XML z zasobów 38
- Utworzenie zarządców - singleton i globalny komponent 41
- Rozszerzenie zarządcy gry i zarządcy zielarstwa - listy zobiektami utworzonymi na podstawie konfiguracji oraz ogólnaczęść ładowania z konfiguracji 43
- Ładowanie danych z konfiguracji XML: zdarzenia medyczne, szanse na zdarzenia, substancje i przedmioty lecznicze 46
- Implementacja systemu dnia, nocy i czasu 49
- Prototyp pacjenta na scenie, komponent pacjenta i jego powiązanie ze strukturą danych 53
- Generacja pacjentów na scenie i przydzielanie im chorób (zdarzeń pierwotnych) 54
- Podsumowanie pierwszego sprintu 60
Rozdział 2. Drugi sprint. Przebieg chorób i przedmioty na scenie 63
- Planowanie 63
- Historyjki użytkownika 64
- Komentarz do planowania 64
- Zadania do wykonania 65
- Prace nad sprintem 65
- Rozbudowa klasy Postac o możliwość dodania parametrów ogólnych 65
- Przetwarzanie wewnętrznych parametrów zdarzenia medycznego 67
- Refaktoring klasy MenedzerZielarstwa w celu sprawniejszego przetwarzania i tworzenia zdarzeń medycznych 68
- Rozbudowa klasy Pacjent o identyfikator oraz stan życia i śmierci 71
- Implementacja obsługi zdarzeń medycznych pacjenta 72
- Implementacja prostego systemu tłumaczenia tekstów 74
- Tworzenie ładnych nazw zdarzeń medycznych 77
- Podawanie informacji tekstowej o zdarzeniach 77
- Dodanie dymka objaśniającego stan zdarzeń pacjenta 78
- Wprowadzenie wsparcia do testowej symulacji dużej liczby chorób u pacjentów 83
- Dodanie mnożnika części ciała 86
- Obsługa całkowicie uszkodzonych części ciała 87
- Wprowadzenie koncepcji aktywnego obiektu na scenie 89
- Wskaźnik środka ekranu, który zmienia wygląd po najechaniu na aktywny obiekt na scenie 90
- Obsługa pokazywania nazwy przedmiotu po najechaniu na niego wskaźnikiem kamery 95
- Podsumowanie drugiego sprintu 98
Rozdział 3. Trzeci sprint. Plecak, podnoszenie przedmiotów, zapis stanu gry, leczenie chorób 99
- Planowanie 99
- Historyjki użytkownika 100
- Komentarz do planowania 100
- Zadania do wykonania 101
- Prace nad sprintem 101
- Implementacja bazowej klasy zapisu stanu gry MenedzerStanuGry 101
- Użycie klasy MenedzerStanuGry do zapisu pozycji gracza 108
- Plecak i przedmioty w plecaku 110
- Ułożenie przedmiotów na ekranie w panelach plecaka i zarządzanie wybranym panelem 113
- Dodanie podpisu aktywnego przedmiotu 117
- Obsługa efektów podnoszenia przedmiotu 119
- Obsługa wyrzucania przedmiotu na scenę 121
- Tworzenie instancji przedmiotu leczniczego w przedmiocie 122
- Przekazywanie przedmiotów pacjentom 124
- Leczenie pacjentów przedmiotami leczniczymi 126
- Implementacja wyświetlania krótkiej wiadomości do gracza 127
- Klasa KontrolerGracza oraz zawracanie gracza, gdy podejdzie zbyt blisko skraju mapy 129
- Podsumowanie trzeciego sprintu 131
Rozdział 4. Czwarty sprint. Generowanie przedmiotów oraz rozwój UI 133
- Planowanie 133
- Historyjki użytkownika 133
- Komentarz do planowania 134
- Zadania do wykonania 134
- Prace nad sprintem 134
- Stworzenie klasy GeneratorObiektow tworzącej aktywne obiekty na scenę 134
- Menedżer aktywnych przedmiotów 139
- Refaktoring generacji aktywnych obiektów - pula obiektów 145
- Startowanie generacji obiektów tylko w pobliżu gracza 149
- Zapamiętywanie przedmiotów w plecaku 151
- Kategorie zagrożeń zdarzeń medycznych - poprawa opisu zdarzeń 153
- Refaktoring - wprowadzenie minimalnej i maksymalnej siły zdarzenia medycznego 154
- UI pacjenta z mapką przedstawiającą zdarzenia medyczne na ludzkim ciele 156
- Podsumowanie czwartego sprintu 162
Rozdział 5. Piąty sprint. Receptury, rzemiosło, opłaty za leczenie, reputacja gracza 163
- Planowanie 163
- Historyjki użytkownika 163
- Komentarz do planowania 164
- Zadania do wykonania 165
- Prace nad sprintem 165
- Dodanie receptur do plików danych 165
- Klasa Gracz 167
- Okno UI rzemieślnictwa 170
- Okno rzemieślnictwa 172
- Refaktoring systemu przedmiotów 181
- Dodanie informacji o ilości złota na ekran 185
- Handel - postać kupca 186
- Okno handlu 189
- Podział na pacjentów leżących i stojących 193
- Docelowy sposób obsługi pacjentów oraz opłaty za leczenie 196
- Obsługa reputacji 200
- Podsumowanie piątego sprintu 202
Rozdział 6. Szósty sprint. Ekran startowy,regeneracja obiektów, poprawki błędów. Publikacja wserwisie Steam 203
- Planowanie 203
- Historyjki użytkownika 203
- Zgłoszone błędy 204
- Komentarz do planowania 205
- Prace nad sprintem 205
- Unikalne imiona i nazwiska pacjentów 205
- Okno pomocy i przewodnik 206
- Ekran tytułowy z możliwością kontynuacji i rozpoczęcia gry od początku 209
- Możliwość przegrania gry 212
- Wprowadzenie poziomu trudności gry 213
- Okienko statystyk gry 215
- Poprawa błędu: Po przegraniu gry i jej wznowieniu następuje próba kolejnego załadowania danych zielarstwa 216
- Poprawa błędu: Źle wyglądająca pogoda 217
- Poprawa błędu: Nieprawidłowe odświeżanie opisu przedmiotu w plecaku po usunięciu go 220
- Poprawa błędu: Przedmioty medyczne nie działają zapobiegawczo 221
- Poprawa błędu: Powinien pojawiać się opis przedmiotu z plecaka 222
- Poprawa błędu: Przedmioty powinny tworzyć się na scenie wielokrotnie 224
- Poprawa błędu: Aktualny czas dnia powinien być zapamiętywany w stanie gry 227
- Przyśpieszanie i zwalnianie upływu czasu 228
- Poprawa błędu: Siła pacjenta nie jest używana, a Witalność nie zmienia się 231
- Poprawa błędu: Nie są uwzględniane działania niepożądane przedmiotów medycznych 231
- Poprawa błędu: Wyświetlanie tylko jednego komunikatu w polu małej informacji 234
- Poprawa błędu: Przedmioty w plecaku reagują na światło, a część z nich źle wygląda 235
- Poprawa błędu: Wprowadzić możliwość wyrzucenia aktywnego przedmiotu z plecaka 237
- Poprawa błędu: Każde uruchomienie gry przynosi takie same decyzje losowe 238
- Testy balansu 238
- Przygotowanie do publikacji: wersja Windows PC 251
- Publikacja w sklepie Steam 253
- Podsumowanie szóstego sprintu 260
Rozdział 7. Siódmy sprint. Poprawki popublikacyjne. Wersje VR, Android 261
- Planowanie 261
- Historyjki użytkownika 262
- Zgłoszone błędy 262
- Komentarz do planowania 262
- Prace nad sprintem 263
- Poprawa optymalizacji wyświetlania obiektów na scenie 263
- Poprawa błędu: Część generatorów obiektówgeneruje identyczne obiekty, szczególnie przy ponownej generacji264
- Poprawa błędu: Handlarz posiada zbyt schematyczne przedmioty 266
- Analiza wejścia od użytkownika w kontekście przygotowań do wdrożenia platform: VR oraz Android 267
- Refaktoring kodu testowego klasy MenedzerGry 269
- Dostosowanie architektury do wieloplatformowości 269
- Wersja gry dla wirtualnej rzeczywistości SteamVR. Konfiguracja wstępna 280
- Poprawa błędu wyświetlania plecaka 288
- Wersja gry dla wirtualnej rzeczywistości SteamVR. Obsługa wejścia 289
- Wersja gry dla wirtualnej rzeczywistości SteamVR. Podpięcie sceny startowej 295
- Wersja gry dla wirtualnej rzeczywistości SteamVR. Odmiana tekstów 296
- Wersja gry dla wirtualnej rzeczywistości SteamVR. Możliwośćsterowania platformą za pomocą argumentów wiersza poleceń 297
- Wersja gry dla wirtualnej rzeczywistości SteamVR. Optymalizacja 298
- Wersja gry dla wirtualnej rzeczywistości SteamVR. Poprawki błędów, obsługa skoku 303
- Rozwój gry o sugestie użytkowników: rozbudowa plecaka 304
- Poprawka błędu: Można sprzedać bądź użyć w rzemieślnictwie wyrzucony przedmiot 309
- Rozwój gry o sugestie użytkowników: Dodanie głównego poziomu trudności 311
- Wersja gry dla platformy Android. Przygotowanie oraz zapis stanu gry 316
- Wersja gry dla platformy Android. Obsługa wejścia 319
- Wersja gry dla platformy Android. Optymalizacja szybkości działania oraz możliwość zmiany poziomu jakości 323
- Wersja gry dla platformy Android. Poprawa wskazywania przedmiotów 326
- Wersja gry dla platformy Android. Optymalizacja wielkości kompilacji gry 327
- Wersja Android Gry. Publikacja w sklepie Google Play 336
- Podsumowanie siódmego sprintu 338
Dodatek A. Przewodnik po książce 341
Skorowidz 353
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-7045-6 |
Rozmiar pliku: | 6,2 MB |