E-book details

Unity i C#. Praktyka programowania gier

Unity i C#. Praktyka programowania gier

Jacek Ross

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!


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 z obiektami utworzonymi na podstawie konfiguracji oraz ogólna część ł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 w serwisie 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ów generuje identyczne obiekty, szczególnie przy ponownej generacji 264
    • 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

  • Title: Unity i C#. Praktyka programowania gier
  • Author: Jacek Ross
  • ISBN: 978-83-283-7045-6, 9788328370456
  • Date of issue: 2020-06-29
  • Format: Ebook
  • Item ID: uncppg
  • Publisher: Helion