Details zum E-Book

Code with me. Zostań game developerem

Code with me. Zostań game developerem

Krzysztof Pianta

E-book

Projektuj, programuj, promuj! Zostań twórcą gier komputerowych!

Nie zaglądaj tu, nie warto! Stracisz tylko czas, na sto procent nie dowiesz się niczego ciekawego, znudzisz się i będziesz rozczarowany, bo... z pewnością nie chcesz dołączyć do prawdziwej elity programistów, zdobyć poszukiwanych na rynku umiejętności, nauczyć się czegoś naprawdę ekscytującego ani uzyskać wpływu na jedną z najdynamiczniej rozwijających się gałęzi przemysłu komputerowego, prawda?

Jeśli jednak mocno pragniesz zostać twórcą gier komputerowych, dobrze trafiłeś! Ta książka powstała właśnie z myślą o tych, którzy chcą rozpocząć karierę profesjonalnego game developera. Bezboleśnie wprowadzi Cię w zagadnienia związane z tworzeniem gier sieciowych 2D w językach: HTML5, PHP i MySQL. Nauczysz się projektować oprogramowanie, dbać o jakość rozwiązania, opracowywać niezbędne materiały graficzne i dźwiękowe, a nawet promować i sprzedawać swoje dzieło.

  • Niszczenie terenu jak w grach Worms i Soldat
  • Scrollowanie obrazu (kamera 2D)
  • Pseudooświetlenie (2D lighting)
  • Manipulowanie pikselami (getImageData) i proste efekty, na przykład blur (rozmycie)
  • Różne typy kolizji, perfekcyjna kolizja (pixel perfect collision)
  • System cząsteczek (efekty 2D): efekt gwiezdny (starfield effect), deszcz, śnieg, deszcz 3D, mgła lub dym
  • NW.js (node-webkit)
  • Rysowanie prostych kształtów, obrazków i sprite'ów
  • Własny loader plików
  • Grawitacja
  • Menu obsługiwane za pomocą klawiatury lub myszy

Zrób pierwszy krok na drodze do profesjonalnej kariery!


Rozdział 1. Wstęp do gry 2D w HTML5 7

  • 1.1. Zaczynamy 8
    • 1.1.1. Jeden kod na wszystkie platformy 8
    • 1.1.2. Narzędzia oraz konfiguracja (Notepad++), tworzenie kopii 8
  • 1.2. Klocki 8
    • 1.2.1. Świat gry (canvas, inicjalizacja) 9
    • 1.2.2. Pętla 9
    • 1.2.3. Rysujemy kwadrat, kółko, trójkąt, linie 11
    • 1.2.4. Rysujemy gracza 19
    • 1.2.5. Skalowanie obrazków 20
    • 1.2.6. Skalowanie świata gry i obiektów (proporcjonalnie) 21
    • 1.2.7. Rotacja 22
    • 1.2.8. Sterowanie klawiaturą 26
    • 1.2.9. Ulepszone sterowanie klawiaturą 29
    • 1.2.10. Prosta kolizja z innym obiektem, np. apteczką 30
    • 1.2.11. Poruszanie się w kierunku, w którym obrócona jest postać (klawiatura/mysz) 37
    • 1.2.12. Kolizja kółka z kwadratem i kółka z kółkiem 42
    • 1.2.13. Kolizja piksel po pikselu 47
    • 1.2.14. Odległość między obiektami 65
    • 1.2.15. Sterowanie wrogami 65
    • 1.2.16. Proste strzelanie 70
    • 1.2.17. Strzelanie z obrotem (wycentrowane) 77
    • 1.2.18. Strzelanie z obrotem (ustawienia offsetu na obrazku) 79
    • 1.2.19. Pasek zdrowia (dowolny rozmiar) 83
    • 1.2.20. Obsługa myszy 85
    • 1.2.21. Menu i opcje 92
    • 1.2.22. Animacja poklatkowa 112
    • 1.2.23. Pseudooświetlenie 116
    • 1.2.24. Proste efekty - własny blur, blur CSS, glitch 121
    • 1.2.25. Mikrofon 125
    • 1.2.26. Sterowanie kontrolerem (gamepad) 126
    • 1.2.27. Zaznaczanie postaci (ruch RTS) 130
    • 1.2.28. Prosty system cząsteczek 132
    • 1.2.29. Układ Słoneczny (orbity) 150
    • 1.2.30. Grawitacja i jej różne zastosowania 151
    • 1.2.31. Ratio 16×9 176
    • 1.2.32. Loading bar i dźwięki 178
    • 1.2.33. Okrągły pasek postępu 194
    • 1.2.34. Lupa 196
    • 1.2.35. Save game i load game 197
    • 1.2.36. Licznik FPS 204
    • 1.2.37. Ekwipunek 207
    • 1.2.38. Kamera 209
    • 1.2.39. Nie rysujemy tego, czego nie widzi gracz 215
    • 1.2.40. Ściszenie dźwięków i (lub) muzyki 221
    • 1.2.41. Centrowanie tekstu lub obrazka 223
    • 1.2.42. Rozjaśnianie obrazu w JavaScripcie 227
    • 1.2.43. Clip() na przykładzie textboksa a la Final Fantasy 234
    • 1.2.44. Prerenderowanie (bufor) 238
  • 1.3. Budujemy grę z klocków 240
    • 1.3.1. Struktura plików naszej gry 241
    • 1.3.2. Tworzymy grę 241
    • 1.3.3. Tworzymy build dla Windows, Linuksa i macOS 252
  • 1.4. Dodatki JS 253
    • 1.4.1. Konsola dewelopera 253
    • 1.4.2. Lista poszczególnych błędów w JS 254
    • 1.4.3. Sztuczki w JavaScripcie 254
    • 1.4.4. Klonowanie (referencje) 255
    • 1.4.5. Zasięg zmiennych 259
    • 1.4.6. This/self 261
    • 1.4.7. jQuery kontra JavaScript 262
    • 1.4.8. Dobra praktyka (anonimowa funkcja, window, zmienne globalne) 264
    • 1.4.9. Komentarze blokowy i liniowy 265
    • 1.4.10. setTimeout i dlaczego lepiej nie używać go w grach 267
    • 1.4.11. Dlaczego requestAnimationFrame zamiast setInterval? 268
  • 1.5. Dodatki NW.js 269
    • 1.5.1. Edycja package.json 269
    • 1.5.2. Steam overlay (nakładka) 270
    • 1.5.3. Osiągnięcia Steam (greenworks) 270
    • 1.5.4. Lepsza wydajność NW.js 275
    • 1.5.5. Zmiana ikony aplikacji NW.js 275
  • 1.6. Dodatki Notepad++ 278
    • 1.6.1. Wtyczki 278
    • 1.6.2. Polskie znaki lub kodowanie 278
    • 1.6.3. Konfiguracja kopii zapasowej 279

Rozdział 2. Wstęp do gier online 281

  • 2.1. Zaczynamy. Prosta gra tekstowa 282
    • 2.1.1. Konfiguracja serwera XAMPP 282
    • 2.1.2. Świat gry 283
    • 2.1.3. Tworzenie tabeli MySQL 287
    • 2.1.4. Rozbudowa naszego menu 288
    • 2.1.5. Zadania cron 295
  • 2.2. Wstęp do gry kółko i krzyżyk online (PHP/AJAX) 297
    • 2.2.1. Zaczynamy! 297
  • 2.3. Wstęp do kwadracików online (PHP/AJAX) 303
    • 2.3.1. Zaczynamy! 304

Rozdział 3. Zarządzanie jakością oprogramowania 311

  • 3.1. Optymalizacja 312
    • 3.1.1. 300 MB kontra 60 MB 312
    • 3.1.2. Jsperf 313
  • 3.2. Testowanie 313
    • 3.2.1. Jak testować 313
    • 3.2.2. Co zrobić, gdy nie możemy znaleźć błędu? 314
    • 3.2.3. Gamepady mogą mieć inne wartości 314
    • 3.2.4. Najlepiej tworzyć pod low-end 314
  • 3.3. Telemetria - śledzenie gracza 315
    • 3.3.1. Jakie dane są wysyłane? 315
    • 3.3.2. Prosta telemetria 315

Rozdział 4. Projektowanie gry 317

  • 4.1. Początek 318
    • 4.1.1. Trudne czy łatwe gry? 318
    • 4.1.2. Gry 2D czy 3D? 318
    • 4.1.3. Struktura plików 318
    • 4.1.4. Gry to zabawa, nie twórz realnych gier 319
    • 4.1.5. Programować czy korzystać z darmowych programów do tworzenia gier? 319
  • 4.2. Zawartość gry 319
    • 4.2.1. Kubek też ma swoją historię 320
    • 4.2.2. Postacie 320
    • 4.2.3. Dźwięki otoczenia 320
    • 4.2.4. Lockit 320
    • 4.2.5. Przykładowy scenariusz gry 321
    • 4.2.6. Ostatni nabój - manipulowanie graczem 323
    • 4.2.7. Licencje i uznania autorów na przykładzie Game Dev Tycoon oraz ich omówienie 323

Rozdział 5. Promocja gry 325

  • 5.1. Gdzie promować grę 326
  • 5.2. Na własną rękę 326
  • 5.3. Wydawca 326
  • 5.4. Agencje reklamowe 327
  • 5.5. Keymailer 327
  • 5.6. Platformy 327

Rozdział 6. Materiały promocyjne 329

  • 6.1. Tworzenie materiałów 330
  • 6.2. Press-kit 330
  • 6.3. Trailer 330
  • 6.4. Teaser 330
  • 6.5. Strona WWW 330

Rozdział 7. Tworzenie zasobów 331

  • 7.1. Programy do tworzenia grafiki 332
  • 7.2. Programy do tworzenia muzyki i dźwięków 332
  • 7.3. Tworzenie prostych dźwięków, modyfikacja 332
  • 7.4. Usuwanie szumu 336
  • 7.5. Skąd brać darmową muzykę, dźwięki oraz grafikę do wykorzystania komercyjnego? 338

Rozdział 8. Inne 341

  • 8.1. Zakuj, naucz się i zapomnij... Zapomnij! 342
  • 8.2. Kopia, kopia i jeszcze raz kopia! 342
  • 8.3. Lista programów do tworzenia gier 342
  • 8.4. Notepad++, użyteczne wtyczki Compare, ColorPicker 343
  • 8.5. Steam - wgrywanie gry (konsola + skrypty) 345
  • 8.6. GIF, MP4/AVI jako animowany obrazek APNG (opis Steam) 349

Zakończenie 351

  • Titel: Code with me. Zostań game developerem
  • Autor: Krzysztof Pianta
  • ISBN: 978-83-283-7013-5, 9788328370135
  • Veröffentlichungsdatum: 2020-03-17
  • Format: E-book
  • Artikelkennung: codeme
  • Verleger: Helion