Zawód: programista gier. Jak zacząć pracę w branży?

26
Maciej Mróz CTO Zawód: programista gier Jak zacząć pracę w branży?

description

Jak zacząć przygodę z tworzeniem dużych produkcji? Co zrobić, żeby stać się częścią branży gier? Prezentacja pokazuje możliwe ścieżki rozwoju dla programistów, pokazując przy tym, że gry mają znacznie więcej wspólnego z "poważnym" oprogramowaniem niż się może wydawać.

Transcript of Zawód: programista gier. Jak zacząć pracę w branży?

Page 1: Zawód: programista gier. Jak zacząć pracę w branży?

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?

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?

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?

Gry muszą zarabiać

Page 5: Zawód: programista gier. Jak zacząć pracę w branży?

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?

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?

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?

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?

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?

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?

Jak nauczyć się programować

Nie ma drogi na skróty!!!

Page 12: Zawód: programista gier. Jak zacząć pracę w branży?

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?

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?

Jeśli programowanie nie jest Twoją pasją, zajmij się czymś innym

Page 15: Zawód: programista gier. Jak zacząć pracę w branży?

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?

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?

Tworzenie oprogramowania to aktywność zespołowa

Wymiana doświadczeń jest bezcenna

Komunikacja

Page 18: Zawód: programista gier. Jak zacząć pracę w branży?

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?

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?

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?

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?

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?

• 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?

Każdy może robić gry!

24

Page 25: Zawód: programista gier. Jak zacząć pracę w branży?

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 :)

Page 26: Zawód: programista gier. Jak zacząć pracę w branży?

DZIĘKUJĘZA UWAGĘ

[email protected]/GanymedeLtd