Wprowadzenie
Nauczymy się Unity i C#. Zaprojektujemy gry 2D i 3D. Stworzymy mechaniki gier podobne do League of Legends i Counter Strike. Poznamy fizykę w grach. Z ChatGPT, Gemini i GitHub Copilot nauczymy się szukania rozwiązań krok po kroku. Wykorzystamy AI do grafiki (Canva AI, DALL·E) i muzyki (Suno, ElevenLabs).
Program kursu
1Lekcja 1. Przypomnienie wiadomości C#
Pierwsze zajęcia poświęcone zostaną powtórzeniu wiadomości. Po dłuższej przerwie warto przypomnieć podstawy, które przerabiane były na poprzednich semestrach.
2Lekcja 2. UFO cz. I
Na drugich zajęciach rozpoczęta zostanie praca z silnikiem Unity 3D. Uczniowie zapoznają się z interfejsem programu, poznają podstawowe elementy z jakich składa się gra. Rozpoczną prosty projekt gry UFO gdzie napiszą skrypt, dzięki któremu poruszą statkiem kosmicznym po planszy.
3Lekcja 3. UFO cz. II
Trzecie zajęcia będą kontynuacją poprzednich. Zastosują nowe elementy związane z fizyką 2D, by statek nie uciekł poza planszę ale także mógł zdobywać punkty i je wyświetlać.
4Lekcja 4. Rozpoczęcie prac nad Infinite Runnerem cz. I
Czas na projekt na pozostałą część semestru. Ta lekcja poświęcona zostanie Game Design Documentowi, by pokazać jak ważną częścią tworzenia gier jest ich dokładne zaprojektowanie na samym początku.
5Lekcja 5. Rozpoczęcie prac nad Infinite Runnerem cz. II
Kolejne zajęcia zostaną poświęcone na przygotowanie prototypu gry. Stworzą obiekt gracza i podłoża. Stworzą również skrypt, który pozwoli postać wyskakiwać w powietrze a także zrobić tzw. double jump.
6Lekcja 6. Przewijanie świata, zliczanie wyniku
Czas przygotować poziom pod poruszanie się po nim a właściwie poruszanie nim. Skrypt napisany na tych zajęciach pozwoli na małe oszustwo - to świat będzie się poruszał względem gracza tworząc iluzję, że to jednak on po nim biegnie. Zaczniemy też zliczać nasze punkty.
7Lekcja 7. Przeszkody, losowe tworzenie bloków świata
Co to za gra w której się nic nie robi tylko biegnie? Dodamy więc przeszkody, które będziemy musieli omijać oraz losowe wybieranie ustawienia przeszkód. Gra nie może być przecież nudna!
8Lekcja 8. Koniec gry, restart
W grze zdarza się, że coś się nie uda. Dlatego na tych zajęciach uczniowie zapoznają się z przeładowywaniem scen by w przypadku skuchy zrestartować poziom.
9Lekcja 9. Animacja gracza, grafiki świata
Nadajemy charakteru. Te zajęcia poświęcone zostaną wyglądowi poziomów, bohatera czy pułapek. Dodane zostaną grafiki oraz animacje przygotowane wcześniej, by móc je łatwo zaimplementować.
10Lekcja 10. Coin, platformy i najlepszy wynik
Pieniądze rządzą światem. Dodane zostaną więc do gry by móc zdobywać kasę oraz dodamy zapis najlepszego wyniku, by wraz z kolejnymi próbami starać się pobić swój rekord. Dodamy też platformy, by gra nie działa się tylko na jednym poziomie.
11Lekcja 11. Nieśmiertelność, magnes
PowerUP… Dziś zaprogramowana zostanie nieśmiertelność. Przynajmniej taka chwilowa. Przygotujemy też inne znajdźki, których zdobycie w trakcie gry wywołało dodatkowe efekty.
12Lekcja 12. Zaawansowany UI cz. 1, menu główne.
Te zajęcia spędzimy nam na tworzeniu interfejsu i menu. Nasza gra musi się jakoś rozpocząć, menu główne jest swojego rodzaju fasadą, która wita gracza zaraz po uruchomieniu gry. Dodana zostanie również obiekt sterujący dźwiękami, które dodamy do gry w jednej z kolejnych lekcji.
13Lekcja 13. Zaawansowany UI. cz. 2, sklep z ulepszeniami
Gromadzenie pieniędzy bez możliwości ich wydania mija się z celem, dlatego dodamy dzisiaj możliwość wykorzystania zbieranych monet do ulepszania naszych powerupów. Ponadto poznamy sposoby na automatyczne ustawianie elementów interfejsu.
14Lekcja 14. Dźwięki w grze i Unity Ads
Pora na ostatnie szlify. Poprawki błędów, niedoróbek no i wisienka na torcie w postaci dźwięków w grze. Następnie czas na eksport na komputer i na Androida. Omówione zostaną najważniejsze kwestie ważne przy podsumowaniu projektu, który w końcu wyeksportujemy, by pochwalić się innym naszą grą.
15Lekcja 15. Space Invaders
Na tej lekcji przygotujemy grę Space Invaders, tworząc mapę, sterowanie postacią oraz przeciwników. Określimy warunki wygranej i przegranej.
16Lekcja 16. Space Invaders. Kontynuacja
Rozszerzamy nasz projekt o dodatkowego przeciwnika oraz tarcze.
17Lekcja 17. Pacman
Na dwóch kolejnych zajęciach stworzymy klasyczną grę retro Pacman. Pierwsza lekcja skupi się tworzeniu podstaw poruszania się Pacmana, zjadania kropek i wygranej.
18Lekcja 18. Pacman. Kontynuacja
Na lekcji dokończymy projekt Pacmana rozpoczęty na lekcji poprzedniej. Lekcja będzie skupiała się na stworzeniu AI i restarcie gry.
19Lekcja 19. Game Design Doc oraz Kontrola Wersji
Pierwsze zajęcia poświęcone zostaną obmyślaniu działania gry. Omówione zostaną różnice między grami 2D i 3D. Przygotowany zostanie Game Design Doc a także uczniowie dowiedzą się czym jest kontrola wersji projektu na podstawie GitHuba i Plastic SCM.
20Lekcja 20. Kontroler gracza
Na tych zajęciach uczniowie przygotują kontroler gracza stosując wewnętrzny komponent Unity CharacterController. Oprócz poruszania gracza przygotują skrypt pracy kamery, przez którą będą oglądać świat gry.
21Lekcja 21. Czas, pauza i punkty
Teraz uczniowie przygotują kilka specjalnych mechanik. Zaprogramują stoper, który będzie odmierzał ile czasu zostało do znalezienia mety. Stworzą też mechanikę pauzowania gry oraz zakończenie jej, czyli wygraną i przegraną.
22Lekcja 22. PickUpy
Teraz uczniowie przygotują kilka specjalnych mechanik. Zaprogramują stoper, który będzie odmierzał ile czasu zostało do znalezienia mety. Stworzą też mechanikę pauzowania gry oraz zakończenie jej, czyli wygraną i przegraną.
23Lekcja 23. Portal cz. I
Rozpoczęte zostaną pracę nad portalami, dzięki którym gracze będą mogli się przenieść do innej części labiryntu. Te zajęcia poświęcone zostaną zbudowaniu obiektu portalu.
24Lekcja 24. Portal cz. II
Kolejne zajęcia będą kontynuacją portali. Stworzone zostaną skrypty, które pozwolą na płynne przejście między portalami a także stworzone zostanie kilka zabezpieczeń, by portal działał poprawnie.
25Lekcja 25. Podstawy grafiki 3D
Czas na grafikę 3D. I to dosłownie. Na tych zajęciach uczniowie zapoznają się z podstawami programu Blender 3D. Poznają jak się modeluje i jakie są elementy składowe modelu. Przygotują też pierwszą grafikę do gry.
26Lekcja 26. Tworzenie Pickupów i Export cz.1
Uczniowie z pomocą nauczyciela stworzą swoje własne grafiki 3D, które zastosują w tworzonej grze. Poznają kilka sztuczek związanych z modelowaniem, by uatrakcyjnić swoje projekty.
27Lekcja 27. Tworzenie Pickupów i Export cz.2
Po stworzeniu modeli i doszlifowaniu czas na export do Unity. Uczniowie dodadzą stworzone przez siebie modele do projektu a następnie dodadzą do nich skrypty związane z ich mechanikami.
28Lekcja 28. Podstawy animacji i zagadka
Jeśli są PickUpy można dodawać animacje. Uczniowie wprawią w ruch swoje modele. Przy okazji stworzą mechanizm pułapki a także mechanizm otwierania drzwi za pomocą klucza.
29Lekcja 29. Tworzenie Labiryntów i level design
Czas w końcu przygotować swój labirynt. Na tych zajęciach przygotowane zostaną skrypty, które pozwolą uczniom na generowanie labiryntów według ich pomysłów. Przygotują metę gry a także dodadzą niebo do projektu.
30Lekcja 30. Tworzenie Labiryntów i level design cz.2
Gdy mamy gotowy labirynt warto go uatrakcyjnić poprzez dodanie pułapek, drzwi czy pickupów. Każdy uczeń stworzy w ten sposób własny, niepowtarzalny poziom gry.
31Lekcja 31. Materiały i postprocessy
Gotowy poziom można jeszcze uatrakcyjnić. Te zajęcia poświęcone zostaną materiałom by nadać koloryt obiektom. Następnie omówione zostaną postprocessy, dzięki którym uczniowie będą w stanie zupełnie zmienić tzw. Flow swojej gry. Na koniec wprowadzona zostanie muzyka i dźwięki.
32Lekcja 32. UI i wykończenie gry
Ostatnie zajęcia poświęcone zostaną interfejsowi gry. Wprowadzone zostaną dwuwymiarowe grafiki informujące gracza o czasie jaki mu pozostał, czy jest pod wpływem pickupu lub czy dobiegł w końcu do mety. Utworzone zostanie też proste Menu główne. No i w końcu eksportujemy naszą grę by móc pochwalić się znajomym.
33Lekcja 33. Arkanoid
Przygotujemy podstawy gry Arkanoid. Oprogramujemy arenę, poruszanie kładki oraz ruch kulki. Przygotujemy również pierwsze cegiełki do zbijania.
34Lekcja 34. Arkanoid. Kontynuacja
Kontynuujemy prace nad grą Arkanoid. Dodamy generowanie bloków oraz różne poziomy.
35Lekcja 35. Bomberman
Na dwóch kolejnych zajęciach stworzymy klasyczną grę Bomberman w formie gry 3D na 2 osoby w lokalnym multiplayerze (na jednym komputerze). Pierwsza lekcja skupi się tworzeniu podstawowych mechanik jak poruszanie, stawianie bomb i niszczenie ścian jak i decydowanie o wygranej, na drugiej dodamy Powerupy i dodamy więcej szlifów do gry.
36Lekcja 36. Bomberman. Kontynuacja.
Na lekcji będziemy dokańczać projekt Bomberman - dodamy pickupy które mogą zwiększyć statystyki postaci takie jak ilość stawianych bomb, zasięg rażenia czy prędkość poruszania. Ponadto dodamy możliwość wyświetlania tych statystyk.

