===== Programowanie gier w C++ =====
* Kurs: WFAIS.IF-F208.0
* Koordynator, wykład: [[https://szymon.bobek.re/|dr inż. Szymon Bobek]]
* Laboratorium: [[https://krzysztof.kutt.pl/|dr inż. Krzysztof Kutt]]
Cel laboratorium: //zapoznanie z całym procesem tworzenia gry, od pierwszego pomysłu, przez projektowanie interakcji, implementację, testowanie, po próbę "sprzedaży" gry.//
==== Harmonogram laboratorium ====
^ Blok ^ L.p. ^ Termin ^ Tematyka zajęć ^ Materiały ^
^ PROJEKT | 1. | 09.03.2022 | //Projekt doświadczenia gry// | [[https://docs.google.com/document/d/1p7B5jp-kFn3kHM_O2TZbnj3hfRy8UAl_TqErJwwv1Oo/edit?usp=sharing|Szablon]] + {{ :courses:games:projekt_doswiadczenia_przyklady.pdf |Przykłady}} + **[[https://docs.google.com/drawings/d/1bZyyCATMOuKmEjTH4BVcAgnh2iBah0DO9zYIWM7vgMo/edit?usp=sharing|Szukamy zespołu!]]** |
^ ::: | 2. | 16.03.2022 23.03.2022 | //Papierowy prototyp// | rysunki, wycinanki, tekst, ... -- może być kilka alternatywnych wersji elementów w zależności od różnych wizji w grupie, jednak na koniec trzecich zajęć trzeba będzie wybrać jedną spójną wersję \\ Wyzwanie: **One Page Design**. Przykłady((Koncepcja One Page Design będzie przedstawiona też na wykładzie, ale tutaj dodatkowo przykłady (niekoniecznie wzorcowe, ale można zobaczyć o co chodzi) )): [[https://oligauo.wixsite.com/portfolio/art?lightbox=imageu4r|link_1]], [[https://roydetreek.files.wordpress.com/2012/12/quadruple-qrisis-one-page-design-doc.png|link_2]], [[https://www.gamasutra.com/blogs/DavidOsorio/20161220/287965/How_to_design_your_One_Page.php|link_3]] |
^ ::: | 3. | 30.03.2022 | //Wzajemna ewaluacja// | [[https://docs.google.com/document/d/1-WJRBFcfIkCKOcLnjTK178Qa7xvsrZK8kIXayZHmEsA/edit?usp=sharing|Szablon ewaluacji]] |
^ MECHANIKI | 4. | 06.04.2022 | //Projektowanie mechanik// | 7 grup: (1) Przestrzeń, (2) Czas, (3) Obiekty, atrybuty i stany, (4) Akcje, (5) Reguły, (6) Umiejętności, (7) Przypadek/losowość \\ Dwa przydatne źródła((Szczegółowo opowie o nich również dr Bobek na wykładzie)): [[https://game-studies.fandom.com/wiki/Mechanics|krótkie streszczenie (bez czasu)]], {{ book_of_lenses_ch_12_mechanics.pdf |szczegółowy opis (44 str)}}((Źródło: Jesse Schell - [[https://www.amazon.com/Art-Game-Design-Lenses-Second/dp/1466598646/|The Art of Game Design: A Book of Lenses]] (CRC Press, 2015) )) |
^ ::: | 5. | 13.04.2022 | //Balansowanie mechanik// | W skrócie: chcemy tak połączyć ze sobą mechaniki, żeby gra była cały czas ciekawa i odpowiednio wymagająca, aby utrzymać zainteresowanie gracza. \\ {{ book_of_lenses_ch_13_mechanics_balance.pdf |Szczegółowy opis (37 str)}}((Źródło: Jesse Schell - [[https://www.amazon.com/Art-Game-Design-Lenses-Second/dp/1466598646/|The Art of Game Design: A Book of Lenses]] (CRC Press, 2015) )) - to naprawdę jest **BARDZO** szczegółowy opis. Nie ma potrzeby czytania całości i odnoszenia się do wszystkiego. Najważniejsze pytanie jest na końcu: **Does my game feel right? Why or why not?** Na podstawie odpowiedzi chcemy balansować to, co wydaje się być potrzebne |
^ IMPLEMENTACJA | 6. | 20.04.2022 | //Implementacja 1// | //**Nie ma** spotkania - ten czas proszę poświęcić na grupową pracę nad implementacją!// \\ {{ :courses:games:book_of_lenses_ch_15_interface.pdf |Wskazówki do budowania interfejsu gry}}((Źródło: Jesse Schell - [[https://www.amazon.com/Art-Game-Design-Lenses-Second/dp/1466598646/|The Art of Game Design: A Book of Lenses]] (CRC Press, 2015) )) |
^ ::: | 7. | 20.04.2022 | //Implementacja 2// | Konsultacje - prezentacja aktualnego stanu |
^ ::: | 8. | 27.04.2022 | //Implementacja 3// | //**Nie ma** spotkania - ten czas proszę poświęcić na grupową pracę nad implementacją!// |
^ ::: | 9. | 04.05.2022 | //Implementacja 4// | Konsultacje - prezentacja aktualnego stanu (**checkpoint 1**) |
^ ::: | 10. | 11.05.2022 | //Implementacja 5// | //**Nie ma** spotkania - ten czas proszę poświęcić na grupową pracę nad implementacją!// |
^ ::: | 11. | 18.05.2022 | //Implementacja 6// | Konsultacje - prezentacja aktualnego stanu (**checkpoint 2**) |
^ WZORCE | 12. | 25.05.2022 | //Game Programming Patterns 1// | //**Nie ma** spotkania - ten czas proszę poświęcić na grupową pracę nad implementacją!// \\ [[http://gameprogrammingpatterns.com/contents.html|Game Programming Patterns]] -- dobry podręcznik do wzorców programistycznych w grach; na tym etapie realizacji projektów zapewne wybrane wzorce już Państwo zaimplementowaliście "intuicyjnie" - teraz jest ten moment aby to świadomie ustalić i ewentualnie poprawić implementację zgodnie z wybranymi wzorcami |
^ ::: | 13. | 01.06.2022 | //Game Programming Patterns 2// | Konsultacje - prezentacja **implementacji dwóch game design patterns** |
^ PODSUMOWANIE | 14. | 08.06.2022 | //Wzajemna ewaluacja// | Ewaluacja analogiczna jak na Lab 03 (osobne pokoje, jedna grupa prezentuje - druga komentuje, a później zamiana). Tutaj bez formularza oceny. Cel: przyjacielska pomoc i wychwycenie ostatnich rzeczy do poprawy przed finalną prezentacją |
^ ::: | 15. | 15.06.2022 | //Targi gier// | (1) **10 minut** dla każdego Zespołu. Prezentacja/demonstracja (**próba "sprzedania" gry**) przed całą grupą na ostatnich zajęciach - **styl dowolny** (streaming gry live z komentarzem / slajdy / nagrane filmiki / itd) \\ Obowiązkowy punkt: __jeden element projektu, z którego jesteśmy najbardziej zadowoleni (grafika / kod / algorytm / ...)__ \\ (2) Po zajęciach udostępniamy sobie nawzajem gry i mamy **7 dni** dni na ich przetestowanie \\ (3) Formularz do wzajemnej oceny projektów: **zakładka __OCEŃ GRY!__ w zespole w MS Teams** (aktywny do 15.06 23:59) |
==== Zasady zaliczenia ====
* Przez cały semestr pracujemy w zespołach 3-4 osobowych.
* **50 EXP** stanowi 100% łącznej liczby punktów (MAX). Składają się na to:
* **6 EXP**: wstępny projekt gry przesłany __po laboratorium 3__ (archiwum składające się ze zbioru dokumentów i zdjęć/skanów papierowych prototypów)
* **6 EXP**: opis zbioru mechanik przesłany __po laboratorium 5__
* 2x**3 EXP**: prezentacja aktualnego stanu implementacji (dwa checkpointy: __na laboratorium 8__ i __na laboratorium 11__)
* **6 EXP**: prezentacja implementacji dwóch game design patterns na __laboratorium 13__
* **26 EXP**: prezentacja projektu na "Targach gier" __na ostatnich zajęciach__. Ocena od grupy (13 EXP) i prowadzącego/prowadzących zajęcia (13 EXP)
* Dozwolone są **dwie nieusprawiedliwione** nieobecności.
* Każda kolejna nieobecność skutkuje odjęciem **5 EXP**.
* __Skala ocen:__
* >= 45 EXP -- bdb
* >= 40 EXP -- db+
* >= 35 EXP -- db
* >= 30 EXP -- dst+
* >= 25 EXP -- dst
* < 25 EXP -- ndst