b'\n_START_ARTICLE_\nProgramista gier\n_START_SECTION_\nHistoria\n_START_PARAGRAPH_\nW pocz\xc4\x85tkach gier komputerowych, programista gier by\xc5\x82 jednocze\xc5\x9bnie projektantem oraz artyst\xc4\x85. By\xc5\x82o to spowodowane ma\xc5\x82\xc4\x85 ilo\xc5\x9bci\xc4\x85 specjalist\xc3\xb3w z dziedziny tworzenia gier oraz prost\xc4\x85 konstrukcj\xc4\x85 \xc3\xb3wczesnych komputer\xc3\xb3w dzi\xc4\x99ki czemu gry od samego pocz\xc4\x85tku do ko\xc5\x84ca mog\xc5\x82y by\xc4\x87 tworzone przez pojedyncze osoby. Gry wtedy by\xc5\x82y do\xc5\x9b\xc4\x87 proste, a artystyczne wizualizacje na komputerze by\xc5\x82y ograniczane przez niewielkie mo\xc5\xbcliwo\xc5\x9bci komputer\xc3\xb3w._NEWLINE_P\xc3\xb3\xc5\xbaniej, gdy domowe komputery stawa\xc5\x82y si\xc4\x99 coraz lepsze, tw\xc3\xb3rcy gier mogli pu\xc5\x9bci\xc4\x87 wodze wyobra\xc5\xbani i pozwoli\xc4\x87 sobie na bardziej szczeg\xc3\xb3\xc5\x82ow\xc4\x85 grafik\xc4\x99 (gry 2D zacz\xc4\x99\xc5\x82y przechodzi\xc4\x87 w \xc5\x9bwiat 3D), bardziej skomplikowan\xc4\x85 fabu\xc5\x82\xc4\x99 gier czy u\xc5\xbcycie nowych bardziej skomplikowanych element\xc3\xb3w takich jak symulacji fizyki czy sztucznej inteligencji._NEWLINE_Wraz ze wzrostem z\xc5\x82o\xc5\xbcono\xc5\x9bci gier i ilo\xc5\x9bci wymaganej pracy, pojawi\xc5\x82o si\xc4\x99 zapotrzebowanie na programist\xc3\xb3w kt\xc3\xb3rzy specjalizuj\xc4\x85 si\xc4\x99 w w\xc4\x85skich dziedzinach. St\xc4\x85d, produkcja gier sta\xc5\x82a si\xc4\x99 zespo\xc5\x82owa. Teraz, tylko ma\xc5\x82e gry s\xc4\x85 tworzone przez jednego cz\xc5\x82owieka.\n_START_SECTION_\nSpecjalizacje programist\xc3\xb3w\n_START_PARAGRAPH_\nWe wsp\xc3\xb3\xc5\x82czesnej grze komputerowej mo\xc5\xbcna znale\xc5\xba\xc4\x87 wiele specjalizowanych zagadnie\xc5\x84 takich jak zaawansowana symulacja fizyki, sztuczna inteligencja, grafika tr\xc3\xb3jwymiarowa, tr\xc3\xb3jwymiarowy d\xc5\xbawi\xc4\x99k, obs\xc5\x82uga baz danych itp. Przy tworzeniu bardziej zaawansowanych gier, zatrudnianych jest od kilku do kilkunastu programist\xc3\xb3w zajmuj\xc4\x85cych si\xc4\x99 ka\xc5\xbcd\xc4\x85 z tych dziedzin.\n_START_SECTION_\nProgramista fizyki\n_START_PARAGRAPH_\nTen cz\xc5\x82owiek zajmuje si\xc4\x99 symulacj\xc4\x85 fizyki w szeroko poj\xc4\x99tym znaczeniu. Od jego umiej\xc4\x99tno\xc5\x9bci zale\xc5\xbcy jak bardzo naturalnie obiekty zachowuj\xc4\x85 si\xc4\x99 w grze. Symulacja fizyki odpowiada za to czy obiekty zderzaj\xc4\x85 si\xc4\x99 ze sob\xc4\x85, odbijaj\xc4\x85 si\xc4\x99 od siebie, rozpadaj\xc4\x85 na mniejsze kawa\xc5\x82ki itd. Najwi\xc4\x99cej przyk\xc5\x82ad\xc3\xb3w zastosowa\xc5\x84 symulacji fizyki wida\xc4\x87 w grach wy\xc5\x9bcigowych, strzelaninach itp._NEWLINE_Niekt\xc3\xb3rzy programi\xc5\x9bci fizyki wsp\xc3\xb3\xc5\x82pracuj\xc4\x85 tak\xc5\xbce przy tworzeniu cz\xc4\x99\xc5\x9bci fizycznej silnika gry. W innych przypadkach \xe2\x80\x93 gdy silnik gry nie ma modu\xc5\x82u fizycznego \xe2\x80\x93 programista fizyki oblicza zale\xc5\xbcno\xc5\x9bci fizyczne "r\xc4\x99cznie" lub za\xc5\x82\xc4\x85cza jeden z dost\xc4\x99pnych modu\xc5\x82\xc3\xb3w w internecie (np. Newton)._NEWLINE_Ostatnio \xe2\x80\x93 co raczej ma nie ma\xc5\x82e znaczenie dla programist\xc3\xb3w fizyki \xe2\x80\x93 pojawi\xc5\x82a si\xc4\x99 karta licz\xc4\x85ca wszystkie wyliczenia fizyczne odci\xc4\x85\xc5\xbcaj\xc4\x85c jednocze\xc5\x9bnie procesor i/lub kart\xc4\x99 graficzn\xc4\x85\n_START_SECTION_\nProgramista sztucznej inteligencji\n_START_PARAGRAPH_\nProgramista AI zajmuje si\xc4\x99 programowaniem wszystkich mechanizm\xc3\xb3w sztucznej inteligencji (o ile nie wyr\xc4\x99cza go w tym silnik gry). W poj\xc4\x99ciu mechanizm\xc3\xb3w sztucznej inteligencji w grze s\xc4\x85 wszelkie algorytmy wyszukuj\xc4\x85ce drogi (np. gdy wska\xc5\xbcemy w grze miejsce, do kt\xc3\xb3rego ma dotrze\xc4\x87 jednostka) oraz taktyki przeciwnik\xc3\xb3w w trybie gry jednoosobowej._NEWLINE_G\xc5\x82\xc3\xb3wnym zaj\xc4\x99ciem programist\xc3\xb3w sztucznej inteligencji jest wyposa\xc5\xbcenie komputera w sztuczn\xc4\x85 inteligencj\xc4\x99, a wi\xc4\x99c sprawienie pojawienia si\xc4\x99 z\xc5\x82udzenia grania z przeciwnikiem z "krwi i ko\xc5\x9bci". Cz\xc4\x99sto AI w grach jest oprogramowana za pomoc\xc4\x85 specjalnych skrypt\xc3\xb3w, do kt\xc3\xb3rych ma dost\xc4\x99p ka\xc5\xbcdy gracz i kt\xc3\xb3re mo\xc5\xbce zawsze zmienia\xc4\x87._NEWLINE_\xc5\x9awiatow\xc4\x85 s\xc5\x82aw\xc4\x99 z powodu (tak\xc5\xbce) programist\xc3\xb3w sztucznej inteligencji zdoby\xc5\x82o studio Crytek, kt\xc3\xb3re zadziwi\xc5\x82o wszystkich algorytmami AI w grze Far Cry. R\xc3\xb3wnie\xc5\xbc w serii Civilization po wielu latach programistom uda\xc5\x82o si\xc4\x99 stworzy\xc4\x87 dobry skrypt AI komputera.\n_START_SECTION_\nProgramista grafiki\n_START_PARAGRAPH_\nDawniej tak tytu\xc5\x82owa\xc5\x82 si\xc4\x99 cz\xc5\x82owiek specjalizuj\xc4\x85cy si\xc4\x99 w algorytmach wy\xc5\x9bwietlania grafiki i ich optymalizacjach. Gdy komputery si\xc4\x99 rozwin\xc4\x99\xc5\x82y, pojawi\xc5\x82a si\xc4\x99 grafika 3D i wi\xc4\x99kszo\xc5\x9b\xc4\x87 programist\xc3\xb3w grafiki sta\xc5\x82o si\xc4\x99 w\xc5\x82a\xc5\x9bnie programistami grafiki 3D obs\xc5\x82uguj\xc4\x85cymi r\xc3\xb3\xc5\xbcne renderery i inne tego typu rzeczy._NEWLINE_Programista grafiki 3D musi zna\xc4\x87 w zaawansowanym stopniu matematyk\xc4\x99, a wi\xc4\x99c wektory, macierze, kwaterniony, wyra\xc5\xbcenia algebraiczne potrzebne do grafiki, itp.\n_START_SECTION_\nProgramista d\xc5\xbawi\xc4\x99ku\n_START_PARAGRAPH_\nProgrami\xc5\x9bci d\xc5\xbawi\xc4\x99ku s\xc4\x85 obecni w zespo\xc5\x82ach deweloperskich ju\xc5\xbc od czas\xc3\xb3w pierwszych gier np. Ponga. Prawie wszystkie gry posiadaj\xc4\x85 muzyk\xc4\x99 i/lub d\xc5\xbawi\xc4\x99ki._NEWLINE_Niekt\xc3\xb3re gry u\xc5\xbcywaj\xc4\x85 zaawansowanej mechaniki (np. d\xc5\xbawi\xc4\x99k 3D), lub inne, proste d\xc5\xbawi\xc4\x99ki Ciekawymi mechanizmami jest tak\xc5\xbce w\xc5\x82\xc4\x85czanie muzyki grozy, gdy bohater b\xc4\x99dzie w niebezpiecze\xc5\x84stwie, lub weso\xc5\x82ej muzyczki, gdy b\xc4\x99dzie z kim\xc5\x9b rozmawia\xc5\x82 \xe2\x80\x93 lecz to wymaga ju\xc5\xbc wsp\xc3\xb3\xc5\x82pracy programist\xc3\xb3w gry oraz programist\xc3\xb3w d\xc5\xbawi\xc4\x99ku._NEWLINE_Programi\xc5\x9bci d\xc5\xbawi\xc4\x99ku maj\xc4\x85 szeroki wyb\xc3\xb3r, bo wybieraj\xc4\x85 mi\xc4\x99dzy a\xc5\xbc czterema bibliotekami: OpenAL, FMOD, BASS i DirectSound. Ka\xc5\xbcda z nich ma inn\xc4\x85 struktur\xc4\x99, jedna lepiej si\xc4\x99 nadaje do pewnych zastosowa\xc5\x84 lecz do innych ju\xc5\xbc nie. Po prostu wyb\xc3\xb3r zale\xc5\xbcy od og\xc3\xb3lnego charakteru gry.\n_START_SECTION_\nProgramista mechaniki gry\n_START_PARAGRAPH_\nProgramista ten zajmuje si\xc4\x99 mechanik\xc4\x85 gry odpowiadaj\xc4\x85c\xc4\x85 za przyjemn\xc4\x85 zabaw\xc4\x99 graczy. Implementuje ca\xc5\x82\xc4\x85 gr\xc4\x99 od strony jej mechaniki oraz dopasowuje wszelkie parametry odpowiedzialne za przebieg rozgrywki. Programista mechaniki gry cz\xc4\x99sto mechanik\xc4\x99 umieszcza w skryptach stworzonych przez programist\xc4\x99 skrypt\xc3\xb3w.\n_START_SECTION_\nProgramista skryptu\n_START_PARAGRAPH_\nW pierwszych grach komputerowych ca\xc5\x82\xc4\x85 mechanik\xc4\x99 gry, dialogi, itp. pisano wprost w kodzie \xc5\xbar\xc3\xb3d\xc5\x82owym. Sprzeczne to by\xc5\x82o z prawid\xc5\x82ami programowania, kt\xc3\xb3re m\xc3\xb3wi\xc5\x82y, \xc5\xbce "dane od logiki oddzielone winny by\xc4\x87". W\xc5\x82a\xc5\x9bnie dlatego powsta\xc5\x82a taka specjalizacja jak programista skryptu. Poza tym w skryptach zazwyczaj si\xc4\x99 szybciej i czytelniej pisze ni\xc5\xbc w d\xc5\x82uga\xc5\x9bnym kodzie skompilowanej gry pe\xc5\x82nej r\xc3\xb3\xc5\xbcnych mechanizm\xc3\xb3w._NEWLINE_Najpierw zajmuje si\xc4\x99 on stworzeniem ca\xc5\x82ej sk\xc5\x82adni skryptu u\xc5\xbcywanej przez gr\xc4\x99, nast\xc4\x99pnie konstruuje interpretator (program, kt\xc3\xb3ry t\xc5\x82umaczy skrypt na j\xc4\x99zyk programowania) po czym "uczy" programist\xc4\x99 gry co i jak w tym dzia\xc5\x82a.\n_START_SECTION_\nProgramista interfejsu\n_START_PARAGRAPH_\nTen cz\xc5\x82owiek zajmuje si\xc4\x99 interfejsem u\xc5\xbcytkownika, czyli projektem menu, reakcjami na wci\xc5\x9bni\xc4\x99te klawisze, ruch myszki w danym kierunku i inne. Najwi\xc4\x99cej programist\xc3\xb3w interfejs\xc3\xb3w zajmuje si\xc4\x99 grafik\xc4\x85 2D. Do\xc5\x9b\xc4\x87 cz\xc4\x99sto interfejs u\xc5\xbcytkownika jest oprogramowany w\xc5\x82a\xc5\x9bnie za pomoc\xc4\x85 j\xc4\x99zyka skryptowego.\n_START_SECTION_\nProgramista sieci\n_START_PARAGRAPH_\nProgramista sieci coraz cz\xc4\x99\xc5\x9bciej go\xc5\x9bci w zespo\xc5\x82ach z powodu coraz wi\xc4\x99kszej liczby gier z trybem gry wieloosobowej. Taki programista pisze ca\xc5\x82y kod wysy\xc5\x82ania i odbierania danych przez serwer za pomoc\xc4\x85 sieci LAN lub internetu. Jego zadaniem jest tak\xc5\xbce zoptymalizowanie algorytm\xc3\xb3w, tak aby nie wyst\xc4\x85pi\xc5\x82y przerwania w po\xc5\x82\xc4\x85czeniach (lagi) czy zbytnie spowolnienie gry.\n_START_SECTION_\nProgramista narz\xc4\x99dzi\n_START_PARAGRAPH_\nJednym z mniej rozpoznawalnych cz\xc5\x82onk\xc3\xb3w zespo\xc5\x82u tw\xc3\xb3rc\xc3\xb3w jest programista narz\xc4\x99dzi. Narz\xc4\x99dzia to programy, kt\xc3\xb3re u\xc5\xbcywane s\xc4\x85 do takich zada\xc5\x84 jak pisanie skrypt\xc3\xb3w, import/konwersja zasob\xc3\xb3w graficznych, tworzenie efekt\xc3\xb3w specjalnych czy budowanie ca\xc5\x82ych poziom\xc3\xb3w._NEWLINE_Niekt\xc3\xb3re narz\xc4\x99dzia dodawane s\xc4\x85 do pe\xc5\x82nej wersji gry, ale wi\xc4\x99kszo\xc5\x9b\xc4\x87 pozostaje jedynie w wewn\xc4\x99trznym u\xc5\xbcytku firmy. Od ich jako\xc5\x9bci zale\xc5\xbcy komfort pracy pozosta\xc5\x82ych cz\xc5\x82onk\xc3\xb3w zespo\xc5\x82u.'