Programowanie gier 3D 390-FG1-2PGR3D
Profil studiów ogólnoakademicki
Forma studiów: stacjonarne
Rodzaj przedmiotu:obowiązkowy, moduł 4 Kształcenie praktyczne i specjalistyczne
Dziedzina i dyscyplina nauki: Dziedzina nauk ścisłych i przyrodniczych, Dyscyplina nauki fizyczne
Rok studiów/semestr: 2 rok, 1 semestr, studia I-go stopnia
Wymagania wstępne: wymagane zaliczenie następujących przedmiotów: Systemy operacyjne, Programowanie obiektowe, Modelowanie 3D
Liczba godzin dydaktycznych: laboratoria 45h
Metody dydaktyczne: praca laboratoryjna, dyskusja, konsultacje, praca własna studenta w domu
Punkty ECTS: 3.00
Bilans nakładu pracy studenta: udział w laboratoriach: 1,8 ECTS, praca własna w domu: 1,2 ECTS
Wskaźniki ilościowe: nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela: 1,8 ECTS, nakład pracy studenta związany z zajęciami o charakterze praktycznym: 1,8 ECTS
TEMATYKA ZAJĘĆ
1. Środowisko GODOTa w trzech wymiarach przestrzennych - na podstawie projektu 3D. Edytor: panel Project, Hierarchy, Inspector, Scene. Układy okien w środowisku - własne oraz predefiniowane. Poruszanie się po scenie (widok perspektywy, ortogonalny, widoki z różnych stron - obsługa pomocnika sceny. Układ współrzędnych - lokalne i globalne. Podstawowe obiekty sceny, modyfikacje (translacja, rotacja, skalowanie), obiekty zagnieżdżone (relacja ojca, zrywanie relacji). Zmiana cech obiektu i prefabrykanta. Obiekt Transform - parametry i metody. Dodawanie silnika fizycznego do obiektów - obiekt Rygitbody. Omówienie parametrów obiektu. Programowanie poruszania się bohatera na scenie - obsługa klawiatury, pierwsze skypty. Dodawanie obiektu wykrywania kolizji obiektów - Box Collider, Capsule Collider etc. Interakcja zderzeń bohatera ze sceny z elementami sceny. Detekcja obiektów przez Raycast. Pomocnicza wizualizacja raycastingu w GODOT (włączenie gizmosów dla Sceny).
3) Tworzenie obiektu zarządzającego całym projektem. Tworzenie interejsu użytkownika. Plansza kończąca poziomy gry. Dodawanie grafik, przycisków na ekranie gracza - obsługa zdarzenia wciśnięcia przycisku. Ekran powitalny i końcowy gry. Skalowanie interfejsu do proporcji ekranu. Efekty dźwiękowe w GODOT - muzyka 2D i 3D. Darmowe portale z gotowymi efektami dźwiękowymi. Parametry muzyki. System cząsteczek i tworzenie efektów wizualnych - ogień, dym, kula ognia. Tworzenie sztucznej inteligencji przeciwnika - poruszanie się po scenie, omijanie przeszkód.
4) Projekt gry 3D - FPS/TPS. Poruszanie bohaterem przy pomocy myszy i klawiszy WSAD. Animacje obiektów 3D w GODOT. Tworzenie planszy z poziomu edytora GODOT. Wczytywanie modeli z Blendera (w tym także animacji). Wykorzystanie MixAmo do animowania postaci i integracja ze środowieskiem GODOT.
5) Tworzenie terenu - parametry terenu (wielkość planszy, wysokość). Rzeźbienie mapy wysokości - narzędzia oferowane przez GODOT. Teksturowanie terenu - tworzenie świata z wysokimi górami, górkami, dolinami oraz równinami - teksturowanie dzięki dostępnym darmowym repozytoriom z grafikami.
6) Programowanie sztucznej inteligencji przeciwnika - tryby patrolu, rozglądania się, ataku. Detekcja gracza przez przeciwnika. Strzelanie do obiektów w trybie FPS i TPS. Określanie położenia myszy na ekranie i w wirtualnej grze. Strzelanie ognistymi kulami przez bohatera oraz przez przeciwników. Dodanie efektów losowych z systemu cząsteczek.
Rodzaj przedmiotu
Tryb prowadzenia przedmiotu
Wymagania (lista przedmiotów)
Założenia (opisowo)
Koordynatorzy przedmiotu
Efekty kształcenia
[K W25] zna podstawy programowania w wybranym języku wyższego poziomu
[K U22] umie pracować w środowisku różnych systemów operacyjnych oraz korzystać z wybranych programów aplikacyjnych
[K U23] umie napisać prosty program komputerowy w wybranym języku
programowania, skompilować go i uruchomić
[K U25] umie wyszukiwać i wykorzystywać specjalistyczne oprogramowanie komputerowe w zasobach Internelu z poszanowaniem własności Intelektualnej oraz zasad użytkowania
[K KO1] zna ograniczenia swojej wiedzy i rozumie potrzebę dalszego
kształcenia, podnoszenia kompetencji zawodowych, osobistych i społecznych
[K KO3] rozumie znaczenie uczciwości intelektualnej w działaniach własnych i innych osób
[K KOs] potrafi samodzielnie wyszukiwać informacje w literaturze i zasobach Inlernetu, także w językach obcych
Kryteria oceniania
Studenci pracują na zajęciach i zdobywają punkty - 10 punktów za aktywność na zajęciach (mogą być także punkty ujemne), ale nie każda aktywność jest punktowana (prowadzący określa zakres punktowanych zadań). Można zwiększyć swoją punktację samodzielnie rozbudowując projekty z zajęć w domu według wskazań prowadzącego (dodatkowe 10 punktów). Na zakończenie zajęć należy przedstawić końcowy projekt (10 punktów). Projekt może być wykonany indywidualnie lub w grupie dwu / trzyosobowej (wielkość grupy ustala prowadzący w zależności od liczebności roku). Zaliczenia nie otrzymuje student z trzema i więcej nieobecnościami.
Zaliczenie uzyskuje się na podstawie tabeli:
0..14 ocena ndst
15..18 ocena dst
19..21 ocena dst+
22..23 ocena db
24..26 ocena db+
27..30 ocena bdb
Literatura
[1] Godot Engine Game Development in 24 Hours, Sams Teach Yourself, Ariel Manzur, George Marques
[2] Godot Engine Game Development Projects: Build five cross-platform 2D and 3D games with Godot 3.0, Chris Bradfield, Packt Publishing Ltd, 29 cze 2018
[3] https://docs.godotengine.org/en/3.1/ -- oficjalna strona dokumentacji, tutoriali
[4] http://kidscancode.org/blog/2017/06/godot_101_13/ strona Chrisa Bradfielda, wersja tekstora oraz filmy YT
[5] https://www.youtube.com/watch?v=6G3NP5O9VsQ filmy YT dotyczące tworzenia interfejsu UI
Uzupełniająca:
[1] Unity w akcji / Joseph Hocking ; wydawnictwo Helion
[2] Unity i C# : podstawy programowania gier / Ewa Ross, Jacek Ross, wydawnictwo Helion
[3] Unity : przewodnik projektanta gier : 24h do własnej gry! / Mike Geig, wydawnictwo Helion
[4] Praktyczne tworzenie gier Unity i Blender / Alan Thorn, wydawnictwo Helion
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: