Zawód: programista gier. Jak zacząć pracę w branży?
-
Upload
ganymede-ltd -
Category
Technology
-
view
229 -
download
1
description
Transcript of Zawód: programista gier. Jak zacząć pracę w branży?
![Page 1: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/1.jpg)
Maciej MrózCTO
Zawód: programista gier Jak zacząć pracę w branży?
![Page 2: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/2.jpg)
Największy developer gier społecznościowych
w Polsce
Ponad 60 pracowników
Od 10 lat na rynku globalnym
Ponad 30 wydanych gier na całym świecie
Zaawansowanyproces technologiczny
Doskonała jakość produktów
![Page 3: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/3.jpg)
39 mlnZarejestrowanych
użytkowników
3.1 mlnAktywnych użytkowników
w miesiącu
70 tys.Rejestracji dziennie
![Page 4: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/4.jpg)
Gry muszą zarabiać
![Page 5: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/5.jpg)
Gry muszą zarabiać
• Branża gier to jest biznes• „Indie" to tylko metoda marketingu• Czas spędzony "po godzinach" też kosztuje• Zysk z gry nie zawsze musi być finansowy– nauka– tworzenie technologii– budowa portfolio
![Page 6: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/6.jpg)
Praca w branży
• Czasy pisania gier samemu się skończyły
• Duże, długotrwałe, złożone projekty, tworzone przez zespoły ludzi
• Wymaga to odpowiedniego podejścia i narzędzi
• Programowanie to tylko część układanki!
![Page 7: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/7.jpg)
Specjalizacja jest konieczna
Tym bardziej im większy jest projekt
Różne problemy, podejścia do ich rozwiązywania, technologie
Więcej możliwości rozwoju :)
Nauka nie ma końca!
![Page 8: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/8.jpg)
Rozgrywka
AI
Analityka danych
Serwery sieciowe
Rendering
Web development, backendy
Możliwe ścieżki rozwoju
![Page 9: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/9.jpg)
Algorytmy i struktury danychZłożoność pamięciowa i czasowa
Matematyka(w szczególności: algebra liniowa, statystyka, kombinatoryka)
Dobre praktyki i narzędzia inżynierskie
Co zawsze warto znać?
![Page 10: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/10.jpg)
Systemy operacyjne
Architekturykomputerów
Programowanie współbieżneSieci
komputerowe
Systemy rozproszone
O czym jeszcze warto wiedzieć
![Page 11: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/11.jpg)
Jak nauczyć się programować
Nie ma drogi na skróty!!!
![Page 12: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/12.jpg)
Języki programowania
"A language that doesn't affect the way you think about programming, is not worth knowing„
Absolutne minimum to po jednym z każdej grupy:• Niskopoziomowy (ręczne zarządzanie pamięcią,
kompilowany do kodu natywnego) - C, C++, asembler• Wysokopoziomowy (garbage collector, refleksja i emisja
kodu, dynamiczne typowanie lub duck typing) - Python, Ruby, Java, C#
• Funkcyjny (Haskell, Scala, Clojure, Erlang ...)
Kilka różnych języków programowania
![Page 13: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/13.jpg)
Dobre praktyki inżynierskie
• Wzorce projektowe• Standardy kodowania• Kontrola wersji• Continuous integration• Unit testing/TDD/BDD
DOKUMENTACJA!!!
![Page 14: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/14.jpg)
Jeśli programowanie nie jest Twoją pasją, zajmij się czymś innym
![Page 15: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/15.jpg)
Nic nie zastąpi praktyki
Przygotuj się na „10 000 godzin”
Pisz jak najwięcej kodu
Czytaj kod innych!
![Page 16: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/16.jpg)
Wprawki programistyczne
• Różne algorytmy i struktury danych– Szukaj tego co jest dla Ciebie trudne, wyjdź poza
strefę komfortu! – Project Euler (https://projecteuler.net/), TopCoder
(http://www.topcoder.com/), wiele innych!– SICP (Structure and Interpretation of Computer
Programs) - przy okazji można poznać Scheme :)• Game jamy - online i w realu
![Page 17: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/17.jpg)
Tworzenie oprogramowania to aktywność zespołowa
Wymiana doświadczeń jest bezcenna
Komunikacja
![Page 18: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/18.jpg)
Załóż konto na GitHub albo podobnym
serwisie
Znajdź jakiś projekt open
source w którym chcesz działać
Albo zrób własny
Komunikacja
Nie pisz kodu do szuflady
![Page 19: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/19.jpg)
Próbuj różnych rzeczy
• Różne rodzaje gier– Arcade 2D, Logiczne,
Przygodowe, Ekonomiczne, 3D
• Różne platformy– mobilne, desktop, web, VR -
całkiem inne problemy
• Zadania "wokół gier"– System do budowy zasobów
graficznych– Własny kompilator języka
skryptowego
2d
+3d
?
%
![Page 20: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/20.jpg)
Kończ to, co zaczynasz
• Twoim celem jest doprowadzenie projektu do końcai dostarczenie go graczowi
• Naucz się kontrolować zakres projektówGry, jak każde oprogramowanie, są podatne na "feature creep"
• Programowanie to w dużym stopniu rutyna• Nie można być ekspertem od wszystkiego, ale warto mieć
przynajmniej pojęcie jak wszystko działa
![Page 21: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/21.jpg)
Technologia użyta w projekcie wynika z tego,
gdzie jest i jaki jest nasz gracz.
Technologie się zmieniają
Technologie rodzą sięi umierają każdego dnia.
Dyktuje to sprzęt, oprogramowanie,
zmiany rynku
Nie należy wiązać swojego życia z jednym narzędziem czy też ich ekosystemem.
Wszystko umiera.
Języki programowania mają długi cykl życia,
ale to też tylko narzędzie.
![Page 22: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/22.jpg)
Technologie klienckie
• Gra "AAA" na konsole/PC: z reguły C++ (ale narzędzia mogą być pisane np. w C#, Javie, Pythonie ...)
• Gra webowa: HTML5 albo Flash• Gra mobilna: Java, Objective-C, Unity, ...
![Page 23: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/23.jpg)
• Dzisiaj prawie każda gra zawiera mniejszy lub większy element online
• Proste usługi HTTP to Python, Ruby, node.js, Java• Serwery TCP/UDP, usługi backendowe to Java, C++, Go, Scala,
node.js ...• Analiza danych: SQL, Hive/Pig, Python, R ...• Technologie towarzyszące: Ansible, Nagios, Docker, Amazon
Web Services
Technologie serwerowe
![Page 24: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/24.jpg)
Każdy może robić gry!
24
![Page 25: Zawód: programista gier. Jak zacząć pracę w branży?](https://reader033.fdocuments.net/reader033/viewer/2022061203/547d9c4eb379593a2b8b5277/html5/thumbnails/25.jpg)
25
Każdy może robić gry
Jak znajdziesz już swoje powołanie, po prostu podążaj za nimPasja jest w którymś momencie konieczna do dalszej nauki
Niezależnie od tego, co zdecydujesz się robić, możesz pracować w branży gier
Może kiedyś u nas :)
Skoncentruj się na tym żeby być dobrym programistą/programistką!
Nieważne, do której firmy trafisz (czy założysz własną) – będziesz się uczyć przez całe życie :)