You are on page 1of 5

Spora cz ludzi nie ma w zwyczaju czytania wszelkich wstpw, gdy szkoda im na to czasu i fatygi.

W tym przypadku jednak radzibym nie ignorowa tej czci, gdy moe to uchroni ci od niewaciwego postpowania, ktre przy odrobinie pecha stanie si przyczyn mniejszych lub wikszych kopotw. Bez zbdnych sw przejdmy zatem do meritum.

1
WPROWADZENIE
Nawet tysicmilowa podr zaczyna si od jednego kroku.
Lao Tse

Witam serdecznie wszystkich razem i kadego z osobna. Niniejszy megatutorial ma za zadanie przybliy zwykemu uytkownikowi komputera arkana programowania gier. Jeeli czytasz te sowa, to najprawdopodobniej chcesz wiedzie, w jaki sposb tworzone s gry, ktrymi pewnie nie raz bawie si przez wiele godzin. I nie tylko chcesz wiedzie, ale te umie samemu stworzy podobne produkcje. Jeeli tak, to dobrze trafie.

Dla kogo jest ten tutorial?


Nie twierdz, e potrafi nauczy programowania gier kadego, kto chciaby tak umiejtno posi. Na pewno jednak bd stara si przekazywa swoj (i nie tylko swoj) wiedz w sposb jak najbardziej jasny i klarowny. Wybaczcie mi, jeeli nie zawsze bdzie mi si to udawa. Od czytelnika oczekuj jednak przynajmniej umiarkowanej znajomoci obsugi komputera. Jeli samodzielnie cigne i odczytae plik z tym tutorialem, to twoje umiejtnoci s chyba wystarczajce :) Generalnie nie chciabym, aby osoba czytajca ten tutorial robia wielkie oczy na widok takich poj jak okno, menu, przycisk itp. Skoro speniasz te warunki (a speniasz? :D), moemy kontynuowa. Oprcz kompletnie zielonych w kwestii programowania gier czy programowania w ogle, licz e tutorial ten trafi rwnie do programistw z pewnym, niekoniecznie duym, dowiadczeniem. Aby uatwi im nieco ycie i nie zmusza do przegldania caego tekstu w poszukiwaniu zagadnie, ktrych nie znaj, postaram si da im pewne wskazwki, pozwalajce szybko zorientowa w swoim poziomie zaawansowania i przej od razu do odpowiadajcym im rozdziaw. Wszyscy jednak powinni doczyta t cz tutoriala do koca (zaczynajc co najwyej od nastpnego rozdziau). Absolutni pocztkujcy mog pomin ten fragment i i do nastpnego podrozdziau. Tak wic jeli: Uywae ju kiedy OpenGL, przejd do Materiau Pomocniczego Przejcie z OpenGL na DirectX

18
Umiesz ju programowa w C++ i znasz Windows API, lecz nigdy nie kodzie gier i nie znasz adnego graficznego API, przejd do czci IV, DirectX Umiesz w miar dobrze programowa w C++, lecz nigdy jeszcze nie tworzye programw dla Windows, przejd do czci III, Wprowadzenie do Windows API Znasz podstawy C++ i chciaby kontynuowa nauk, przejd do czci II, Zaawansowane C++ i STL lub do rozdziaw wczeniejszych, w zalenoci od swojego stanu wiedzy Nie znasz C++, ale znasz Pascala lub (lepiej) Object Pascala (Delphi), to zajrzyj do Materiau Pomocniczego Przejcie z Object Pascala na C++ Nie znasz adnego jzyka programowania, przejd do nastpnego podrozdziau :) Wszyscy jednak powinni przeczyta do koca t cz tutoriala. Wyjdzie wam to na zdrowie :))

Kto moe zosta koderem?


Chcesz wic opanowa pikn acz nieatw sztuk programowania? Chocia prawie kady moe tego dokona, niektre cechy osobowoci i pokrewne zainteresowania mog by bardzo pomocne. Niektre za oka si pewn przeszkod. Zacznijmy od tego, e programista nie tylko pisze kod. Programista take, czy nawet przede wszystkim, rozwizuje problemy. Uywa on do tego narzdzi, jakimi s wanie jzyki programowania. Specyfika programowania polega na odpowiednim podejciu do rozwizywania problemw, mianowicie na podziale ich na mniejsze fragmenty, wykonywane w okrelony sposb w okrelonym porzdku to jest wanie kod. Dlatego te trzeba umie rozbija due zagadnienia na mniejsze, wielki problemy na mae czci. Trzeba mie umys analityczny. Programista prawie cay czas poznaje nowe zagadnienia i techniki. Dlatego musi by ciekawy wiata i autentycznie lubi to, co robi. Pamitajmy te, e koder programuje komputery, ktre w dziaaniu s przeraliwie jednoznaczne, logiczne i przewidywalne. Naley wic umie myle logicznie i formuowa swoje koderskie pomysy w sposb jasny i jednoznaczny. Wreszcie, naley posiada dobr pami syntaktyczn i semantyczn. C znacz te straszne sowa? :) Pami syntaktyczna to zdolno do jak najlepszego zapamitywania regu skadniowych chodzi tu oczywicie o jzyki programowania. Pami semantyczna to umiejtno przyswajania sobie znaczenia poj nie mona na przykad myli procedury z klas albo zmiennej z makrem. Te dwa warunki s zazwyczaj najtrudniejsze do spenienia :D Dobry koder powinien mie typ osobowoci okrelany jako teoretyczny, a wic docenia wartoci intelektualne. Take typ polityczny bywa przydatny, szczeglnie jako szef zespou programistw. OK. to tyle tytuem socjologicznej psychoanalizy :) Dodatkowo, programista gier musi w znacznie wikszym stopniu ni inni koderzy zna si na matematyce i fizyce. Bez nich nie ma przecie mowy o grafice trjwymiarowej czy realistycznym symulowaniu rzeczywistoci. Zastanawiasz si teraz, czy speniasz te warunki? Jeeli naprawd si zastanawiasz, to istnieje due prawdopodobiestwo, e je speniasz! :) Wcale nie artuj wikszo ludzi od razu odrzuciaby je jako nieprzystajce do ich osoby i powiedziaa To nie dla mnie. Jeli ty tak nie robisz, to jeste usilnie proszony o dalsz lektur :D

19

Natomiast jeeli wydaje ci si, i nie podpadasz pod jeden tylko warunek, to twoja decyzja powinna zalee od tego, jakiego warunku nie speniasz. W przypadku gdy chodzi o logiczne (racjonalne) mylenie, to nie martw si znam kilku koderw, ktrzy doskonale obywaj si bez niego :) Bez umysu analitycznego te da si y, ale z pocztku moe by ci trudno samodzielnie wymyla algorytmy. Mwi si, e wszystkiego mona si nauczy nie wiem, czy zasada ta dziaa i w tym przypadku, ale zawsze moesz sprbowa Niestety, brak dobrej pamici syntaktycznej i semantycznej w zasadzie dyskwalifikuje kandydata na programist. Jeli mimo wszystko chcesz sprbowa, pamitaj e robisz to na wasne ryzyko i e ostrzegaem :) C, czas na msk decyzj czerwona czy niebieska piguka? :) Daj sobie chwil przerwy, zastanw, przemyl wszystkie za i przeciw Kiedy bdziesz gotowy, to albo wciniesz Alt+F4 i zapomnisz, e kiedykolwiek to czytae, albo przejdziesz dalej *** A wic wybrae czerwon piguk Zatem witaj na pustyni rzeczywistoci ;)) Ale dosy ju tych artw niedugo zaczniemy cakiem powan nauk i bdziesz mg zweryfikowa swoj decyzj :) Zanim jednak to nastpi, musisz otrzyma gar wskazwek, ktre pomog ci przej przez obran drog. (Huh, jak to wszystko patetycznie brzmi ;D)

Clicki a sprawa polska


Swego czasu du popularno zyskay programy do atwego tworzenia gier, jak Klik & Play, The Games Factory, Game Maker czy Multimedia Fusion. W zaoeniu maj one umoliwi kompletnym laikom tworzenie prostych gier bez koniecznoci programowania. Moliwe, e uywae kiedy tego rodzaju programw. Jeeli tak, to jednoczenie dobrze i le. Dobrze gdy przy okazji nauczye si zapewne uywania prostych funkcji (np. matematycznych) czy uywania ukadu wsprzdnych. le bo programowanie moe ci si na pocztku wydawa zbyt trudne i pracochonne.

Screen 1. Okno programu The Games Factory - edytor animacji. Czy nie wyglda aonie? :) (screen pochodzi z serwisu Strefa Twrcw Gier)

20

Zgadzam si jednak, e uywanie programu Game Maker mogo ci przynie wicej poytku ni szkody. Zawarty w nim jzyk skryptowy mg pomc nauczy si podstaw programowania; zreszt, nawet nie uywajc go mona si tam nauczy tworzenia prostych algorytmw. No i nie ma tam takich uatwie jak wbudowany ruch odbijany czy platformowy. Jeeli jednak chcesz na powanie zaj si programowaniem gier, to powiniene czym prdzej porzuci wszelkie tego rodzaju programy. Wierz mi, i o wiele wiksze moliwoci daje kodowanie. No i przynosi znacznie wiksz satysfakcj :)

Tre tutoriala
Zobaczmy wic, jak wyglda droga, ktry prowadzi nas do upragnionego celu, czyli nauczenia si programowania gier.

Zawarto kursu
Najpierw musisz pozna programowanie w ogle. Nauczysz si kodowa w jzyku C++, zaczynajc od najbardziej elementarnych programw po coraz trudniejsze, poznasz wikszo moliwoci tego jzyka. Po takiej solidnej porcji wiedzy bdziesz mg przej do pisania programw dla rodowiska Windows. Nie bdziemy si dokadnie wgbia we wszystkie aspekty tego niezwykle obszernego zagadnienia poznasz to, co bdzie ci niezbdne do przejcia do nastpnej fazy, czyli nauki DirectX. Wtedy wreszcie zacznie si prawdziwe programowanie gier. Poznasz sposb tworzenia trjwymiarowych i dwuwymiarowych scen, stosowania owietlenia, tekstur i wielu innych technik. Niektrzy mog si kci z zaproponowanym tu zestawem narzdzi (C++, Windows i DirectX). Odpowiem im, e tak naprawd jest to sprawa drugorzdna o wiele waniejsze ni znajomo samego jzyka czy graficznego API jest orientowanie si w koncepcjach: programowania w ogle i grafiki w szczeglnoci.

Ukad graficzny i zapis skadniowy


To jest wanie droga, ktr bdziemy poda. Zanim jednak w ni wyruszysz, poznaj niektre z drogowskazw, ktre dla ciebie zostawiem. Mwic wprost, chodzi o ukad graficzny tekstu - niektre elementy s w nim bowiem specjalnie wyrnione: Tak bd oznaczane fragmenty kodw rdowych (tzw. listingi). To bd wane uwagi oraz pojcia i definicje, ktre powiniene sobie przyswoi. Tak bd zwraca na potencjalne niebezpieczestwa (gwnie chodzi o popenianie trudnych do wykrycia bdw). Te ramki to dodatkowe informacje dla zainteresowanych, opisujce dokadniej omawiane sprawy. Pocztkujcy mog je pomin, szczeglnie przy pierwszym czytaniu. A to bd mniej lub bardziej zwizane z tematem dygresje lub inne, lune uwagi.

21
Niekiedy bd te przedstawia skadni jakich konstrukcji w jzyku programowania. W takich fragmentach wyrazy pisane kursyw maj by zastpione przez konkretne nazwy, za te napisane normalnie powinny pozosta bez zmian. Pogrubione nawiasy kwadratowe [ ] zawieraj natomiast nieobowizkowe skadniki danej konstrukcji, a symbol wielokropka ... oznacza dalszy cig listy podobnych elementw.

Podsumowania, pytania i zadania


Na kocu wikszoci rozdziaw zamieszcza bd krtkie podsumowanie oraz (niestety :D) wiczenia do wykonania dla ciebie. C, prace domowe s nieuniknione :)

Podsumowanie
To dopiero pierwszy rozdzia pierwszej (czy raczej zerowej) czci, wic si rzeczy nie przedstawiem tu jeszcze adnych konkretnych informacji. Przypomnijmy jednak, co ciekawego udao si nam razem dokona. Przede wszystkim dowiedziae si, e ten tutorial przeznaczony jest dla osb pragncych nauczy si programowania gier. Podje brzemienn w skutkach decyzj o podjciu tego wyzwania brawo :) Przeczytae te kilka uwag na temat programw do tworzenia gier i wreszcie poznae pokrtce tre i form tutoriala. Z nastpnego rozdziau dowiesz si natomiast, z jakich innych rde informacji powiniene koniecznie korzysta podczas tego kursu, jak i w czasie codziennego kodowania. Zapraszam wic wgb krliczej nory

You might also like