Dobre praktyki dla kształcenia uniwersyteckiego w obszarze tworzenia gier

Dokument ten zawiera ciągle rozwijany i uzupełniany zbiór dobrych praktyk, jakimi innymi powinno się kierować przy projektowaniu i planowaniu programów kształcenia  kierunków studiów mających dostarczać pracowników dla sektora producentów gier.

Podstawowe zalecenia

 

Nauczanie przez praktyków

Jednym z kluczowych i najczęściej podnoszonych zagadnień w nauczaniu dla gamedevu jest nauczanie przez praktyków. Choć jest to paradygmat szeroko sugerowany dla edukacji, to w edukacji dla  branży gier ma szczególne znaczenie. O ile można nauczyć się programowania w stopniu wystarczającym by uczyć go dalej, to nie jest to już możliwe na przykład dla pipelineów produkcyjnych. W szczególności zaś  nie jest możliwe nauczenie się teoretyczne projektowania gier (ang. game design). W tych obszarach edukacji niezbędni są wykładowcy, prowadzący laboratoria, edukatorzy posiadający praktyczne doświadczenie w branży.

 

Dyskusją cały czas toczącą się w branży gier jest natomiast kogo należy uznać praktykiem z wystarczającym doświadczeniem. Najczęściej uznawaną cezurą jest posiadanie w portfolio przynajmniej jednej wydanej komercyjnie gry. Ma to niejednokrotnie swoje odzwierciedlenie nawet w ogłoszeniach o pracę.

 

W krajach z bogatszymi doświadczeniem edukacji dla gamedevu, często podkreśla się, że obecność praktyków na uczelniach nie powinna ograniczać się tylko do stałej listy wykładowców. Bardzo dużą wartość niosą ze sobą także gościnne wykłady, zwłaszcza odbywające się z dużą regularnością, dostęp dla studentów do konsultacji z praktykami, mentoring, we wszelkich postaciach, opieka nad realizowanymi projektami czy wreszcie udział praktyków z branży w ocenie projektów i feedback jaki mogą oni zaoferować studentom.

 

Nauczanie przez projekty

Może najcenniejszą rzeczą jaką student może wynieść z uczelni są zrealizowane projekty. W praktyce rekrutacji do branży dużo rzadziej pyta się o zdobyte wykształcenie czy skończoną uczelnię niż o portfolio zrealizowanych projektów i doświadczenie zdobyte na nich. Powoduje to kilka kolejnych zaleceń.

  • Większość kształcenia powinno się odbywać przez realizowanie praktycznych projektów.
  • W branży nie ceni się projektów rozpoczętych, a jedynie te zakończone. Projekt rozpoczęty i niezakończony jest wręcz świadectwem braku kwalifikacji.  oczekiwanie od kandydata do pracy zakończonych projektów bywa bardzo dosadnie podkreślane w wymaganiach rekrutacyjnych.
  • Dużo większą wartość mają projekty gier, które mogą być w jakiś sposób upublicznione nawet jeżeli tylko poprzez bezpłatnie udostępnienie w internecie. Doświadczenia obcowania graczy z grą stworzoną przez studentów, ich reakcji, feedbacku, nie da się niczym zastąpić. Studenci powinni być tak prowadzeni, by tworzyli właśnie tego rodzaju projekty.
  • Studenci powinni być edukowani, zachęcani, a następnie dopilnowywani, aby wybierali projekty w skali, która jest realizowana w zakresie czasowym, jaki mają na ten projekt. Problemem  obserwowanym w sposób powtarzalny od lat, jest porywanie się na zbyt duże projekty właściwie na każdym etapie edukacji, przy czym im wcześniej tym bardziej. Choć do kategorii klasycznego żartu branżowego, urośli studenci pragnący stworzyć epicką grę MMORPG z otwartym światem, to i mniejsze projekty obierane przez nich zazwyczaj są zbyt duże.
  • Można też wskazać, że właściwie student nie powinien uzyskać dyplomu ukończenia studiów, jeżeli nie stworzył kompletnej, działającej i w pełni funkcjonalnej gry, zgodnej z pierwotnym projektem. W praktyce projekty dyplomowe powinny być nastawione na wytworzenie gry nadającej się do opublikowania, jeżeli nie komercyjnego, to przynajmniej bezpłatnego.

 

Dodatkowe dobre praktyki

 

Nauczanie, a w szczególności projekty, winny kłaść nacisk na naukę pracy w zespole. Choć istnieją jednoosobowe zespoły indie, które odniosły sukces i są z tego bardzo znane, to opieranie się na tym jest jednak właśnie bardzo zwodnicze. Do jednoosobowego tworzenia gier trzeba bardzo dużo doświadczenia i jest to raczej dla rzadkich przypadków osób z wieloma talentami. Statystyczny absolwent uczelni powinien trafić do mniejszego lub większego zespołu tworzącego gry i potrafić sobie w nim poradzić.
Idealnym rozwiązaniem, praktykowanym już w takiej edukacji w krajach zachodnich, byłoby łączenie w zespołach studentów zupełnie różnych specjalności na przykład programistów i grafików. W polskich realiach wymaga to prawdopodobnie projektów międzyuczelnianych, z natury trudnych w realizacji i dlatego nasze kształcenie dla branży gier jeszcze długo będzie odstawało od zachodniego.

 

Game jamy, hackatony czy maratony programowania  niosą ze sobą bardzo dużą wartość. Game jamy to intensywna praca w zespole, poznawanie innych stylów pracy, nowych technologii, metodologii czy pipelineów produkcyjnych. Typowy format game jamu, 48 godzin, odpowiada niemalże dwóm punktom ECTS. Jednocześnie można zaobserwować, że projekty realizowane na game jamach, wyglądają lepiej niż niejeden projekt zaliczeniowy, nawet w skali 4 czy 5 punktów ECTS. Domknięte projekty game jamowe często z pewnym powodzeniem wpisywane są do portfolio. Należy więc wskazać, że uczelnie powinny organizować game jamy i hackatony oraz zachęcać studentów do udziału w zewnętrznych i ułatwiać im to.

 

Uczelnia powinna możliwie szeroko wspierać działalność studenckich kół naukowych. Obserwacje ostatnich kilku lat na rynku pracy uczą, że często to właśnie koła naukowe są wylęgarniami najbardziej wartościowych młodych twórców gier. Koła zazwyczaj organizują seminaria i zapraszają gości, wypełniając w ten sposób bardzo skutecznie część zadań jakie inaczej spoczywałyby na uczelni. Koła sprzyjają wewnętrznej dyskusji, tworzeniu projektów po godzinach, wreszcie organizują studentów do udziału game jamach, hackatonach, konferencjach. Co należy podkreślić, sprawnie działające koło,  jest widoczne społeczności dookoła uczelni i ma bardzo pozytywny wpływ zarówno na filmy szukające przyszłych pracowników jak i na decyzje maturzystów wybierających uczelnię.

 

Warto, by absolwent poszukujący pracy w gamedevie był już zaznajomiony z zwinnymi (agile) metodologiami wytwarzania oprogramowania. Scrum i Kanban są najczęściej stosowanymi w branży gier.

 

W toku nauczania w student powinien zapoznać się z wzorcami projektowymi charakterystycznymi dla gamedevu, np.: Singleton, Factory, Prototype, Observer, etc.

 

Technologie w nauczaniu uniwersyteckim

 

Przeszukane zostały ogłoszenia na skillshot.pl z czterech różnych miesięcy. Łącznie przeszło 400 ogłoszeń. Wybrane zostały ogłoszenia nadające się dla absolwentów, na pierwsze zatrudnienie w branży, a więc wolne od zapisów wymagających od kandydata doświadczenia. Tylko niecałe 25% kwalifikuje się w ten sposób. Niecałe 30% jeżeli wliczone zostaną oferty typu: office manager, social media manager, player support.

Jeżeli pracodawcy oczekują takich technologii na stanowiskach mogących stanowić pierwsze zatrudnienie w branży, to należałoby wskazać, że powinny ich uczyć właśnie uczelnie. Zajęcia i projekty studentów powinny być wykonywane z wykorzystaniem właśnie tych technologii. Inne technologie, rzadsze, bardziej edukacyjne, a przede wszystkim starsze, należy wycofywać i zastępować tymi.

 

Na liście uwzględnione zostały tylko technologie, nie ma np. umiejętności.

Usunięto wiedzę bardzo standardową i od dawna występującą w edukacji: bazy SQL, TCP/IP, etc..

 

Część wyników wymaga dodatkowego komentarza, z czego być może najbardziej te dotyczące języków programowania i silników u programistów. Na udział C# i C++ składały się zarówno ogłoszenia, które wymagały jednego lub drugiego – na przykład duże firmy poszukujące programistów jednocześnie do Unity jak i Unreala, jak i te wymagały obu języków, nawet jeżeli w trybie  C++ wymagany, a C# mile widziany. Należy też się spodziewać że programiści unreala są bardziej poszukiwani i lepiej wynagradzani. Nie można również wywnioskować, że znając C# kandydat kwalifikuje się do każdej pracy programisty w branży.

 

Developer    

Technologie najczęściej występujące w ogłoszeniach:

C#    60%

Unity    50%

GitLab    30%

.NET Core    20%

API Facebook    20%

AWS    20%

Firebase    20%

Java    20%

Linux    20%

Występowały także: Ansible, Bitbucket Server/Stash, Docker, REST, Unreal Engine

 

Programista    

C#    100%

C++    71%

Unity    71%

Unreal Engine    57%

C    29%

GIT    29%

Występowały także: .NET Core, Ansible, Blueprint, DirectX, OpenGL lub Vulkan, Docker, Game Maker Studio, Haskell, REST, Rust

 

Game Designer    

Technologie najczęściej występujące w ogłoszeniach:

Unity    67%

Unreal Engine    33%

Występowały także: języki skryptowe (Python, Lua)

 

Level Designer    

Technologie najczęściej występujące w ogłoszeniach:

Unity    50%

Występowały także: Jira, Kanban, Unreal Engine

 

Animator 2D    

Technologie najczęściej występujące w ogłoszeniach:

Spine    100%

Występowały także: Dragon Bones, pakiet Adobe CS (Photoshop, Illustrator, After Effects)

 

Ilustrator / Grafik 2D

Technologie najczęściej występujące w ogłoszeniach:

pakiet Adobe (Photoshop, Illustrator)    75%

Unity    38%

Występowały także: GIT, Substance Painter, SVN

 

UI/UX artist    

Technologie najczęściej występujące w ogłoszeniach:

Adobe After Effects    67%

Adobe Illustrator    67%

Występowały także: Adobe Photoshop, InDesign/ QuarkXPress, Unity

 

Grafik 3D

Technologie najczęściej występujące w ogłoszeniach:

Blender    56%

3ds Max    44%

Photoshop    33%

Substance Painter    33%

Unreal Engine    33%

Maya    22%

Unity    22%

ZBrush    22%

Występowały także: Jira

 

Environment Artist    

Technologie najczęściej występujące w ogłoszeniach:

Unity     100%

After Effects    67%

Występowały także: Blender/3d Max, Maya, Substance Painter, Unreal Engine, Zbrush

 

Technical Artist    

Technologie najczęściej występujące w ogłoszeniach:

Maya    75%

Photoshop    75%

C++    50%

Houdini    50%

Max Scripting and HLS    50%

Python    50%

Substance Designer    50%

Zbrush/Mudbox    50%

Występowały także: C#, GIT, Moba language, Unreal Engine

 

Tester    

Technologie najczęściej występujące w ogłoszeniach:

Unity    36%

Jira, MantisBT, Redmine    27%

Występowały także: GIT