2

Źródła informacji

 

Prawo dokumentacji:
- Nikt jej nigdy dokładnie nie czyta.

ze zbioru prawd o oprogramowaniu

 

Od samego początku musisz zdawać sobie sprawę, że informacje zawarte w tym tutorialu nie mają na celu zapoznanie cię z absolutnie wszystkimi aspektami programowania gier. Przeciwnie, będzie to tylko podstawa, dlatego jak najszybciej powinieneś nauczyć się korzystać z innych źródeł przydatnych informacji. Jest ich całkiem sporo – w tym rozdziale przyjrzymy się dokładnie niektórym ich rodzajom.

Do you speak English?

Ogromna większość owych źródeł jest dostępna wyłącznie w języku angielskim. Dlatego też znajomość tego języka, przynajmniej na średnim poziomie, jest po prostu niezbędna. Jeżeli nie znasz go w takim stopniu, to musisz czym prędzej nadrobić zaległości :)

Na szczęście większość terminów, którymi będziemy się posługiwać (i którymi ogólnie posługują się programiści) to zapożyczenia właśnie z angielskiego. Nie zwalnia to jednak ze znajomości podstawowego słownictwa i konstrukcji gramatycznych.

Jeśli chcesz sprawdzić, czy twoja znajomość angielskiego jest wystarczająca, to spróbuj określić, co znaczą następujące słowa:

loop, button, light, keyboard, device, property, replace, array, run[1]

Rozwiązanie na dole strony (ale nie podglądaj!). Jeżeli znałeś mniej niż sześć, to niestety musisz się trochę podszkolić :)

Nie bój się dokumentacji

Bardzo ważnym źródłem informacji, z którego będziesz zmuszony często korzystać, są oficjalne dokumentacje. Mam tu na myśli pliki Pomocy dołączone do kompilatorów i zawarte w tzw. pakietach SDK (software development kit – zestaw dla twórcy oprogramowania) oraz takie materiały jak MSDN czy RFC. Spokojnie, rozszyfrujemy każdy z tych skrótów :)

 

Dokumentacja najczęściej koncentruje się na sprawach konkretnych – a więc opisach poleceń, funkcji, klas. Dlatego też jest szczególnie przydatna w codziennej pracy, gdyż uwalnia od konieczności pamiętania trudnych do przyswojenia, a koniecznych wiadomości, jak na przykład parametry funkcji.

Oczywiście w wielu dokumentacjach można natknąć się na prawdziwe wykłady dotyczące (o)programowania, ale są one zazwyczaj tylko dodatkiem do wspomnianych już konkretnych treści.

 

Niektóre z dokumentacji, z których będziesz korzystał, to:

Ø       MSDN (Microsoft Developer’s Network) – jest to gigantyczna skarbnica informacji dla wszystkich koderów wykorzystujących produkty Microsoftu. Możesz nie lubić giganta z Redmond, ale korzystanie z tych zasobów jest prawie że niezbędne, szczególnie jeżeli chcesz pisać programy pod Windows, wykorzystujące DirectX. Baza ta ma też tą niewątpliwą zaletę, iż jej internetowa wersja jest dostępna całkowicie za darmo pod adresem http://msdn.microsoft.com.

 

Screen 2. Przykładowy opis funkcji w MSDN Library

 

Ø       Dokumentacja w pakietach SDK – pakiety to zestawy niezbędnych narzędzi dla twórców oprogramowania, które umożliwiają korzystanie z rozwiązań stworzonych przez innych. Najważniejszym pakietem tego rodzaju, jaki będziesz używał to DirectX SDK, które jest niezbędny do pisania gier (i nie tylko) wykorzystujących DirectX.
Do pakietów tych zawsze dołączone są obszerne dokumentacje, z których również warto korzystać.

Ø       RFC (Requests For Comments) – to seria technicznych artykułów na tematy internetowe. Opisują one protokoły sieciowe, formaty danych i inne aspekty działania Internetu. Będziesz ich używał, jeżeli zamierzasz pisać oprogramowania wykorzystuje Internet (a więc na przykład gry sieciowe). Więcej informacji znajdziesz pod adresem http://www.rfc-editor.org.

Ø       Rekomendacje W3C (World Wide Web Consortium) – dotyczą one bardziej „wysokopoziomowego” Internetu – na przykład HTML czy XML. Ich przydatność dla przeciętnego programisty gier może nie jest zbyt duża, ale przytaczam je gwoli przykładu :) Znajdziesz je pod adresem http://www.w3.org.

Zapamiętaj sobie szczególnie MSDN, gdyż będziesz z niej korzystał przez prawie cały czas.

 

Należy wyraźnie podkreślić różnicę między oficjalną dokumentacją (której przykłady przytoczyłem wyżej) oraz nieoficjalnymi materiałami, jakie można znaleźć w Sieci – jest nim choćby niniejszy tutorial :) Materiały te pozwalają szybko i w miarę łatwo poznać nowe zagadnienie, jednakże korzystanie z oficjalnych źródeł jest niezbędne, w codziennej pracy znacznie wygodniejsze.

 

Uspokoję cię też, że owe dokumentacje, tak szumnie nazwane przeze mnie „oficjalnymi”, nie są jakimś ciężkostrawnym, technicznym grafomaństwem dla jajogłowych, ale klarownymi i zrozumiałymi opisami, z których można się wiele nauczyć w prosty sposób.

Trzeba wiedzieć, jak szukać

Kolejnym ważnym źródłem informacji jest sam Internet. Posiada on jednak spory mankament w postaci niewiarygodnego wręcz nieuporządkowania informacji. Z czasem zbierzesz listę przydatnych dla siebie linków, jednak z początku może być trudno znaleźć cokolwiek – chyba że umiejętnie posłużyć się wyszukiwarką internetową.

W zasadzie nie ma znaczenia, jakiej wyszukiwarki używasz. Ostatnio dużą popularność zdobyła Google (http://www.google.com). Dlaczego? Nie mam pojęcia, tym bardziej, że Yahoo (http://www.yahoo.com) czy AltaVista (http://www.altavista.com) radzą sobie równie dobrze, jak nie lepiej. Mówiłem już jednak, że wybór wyszukiwarki nie jest tak ważny – bardziej istotne jest odpowiednie formułowanie swoich zapytań. Po prostu należy wiedzieć, jak szukać :)

 

Nie jest to na szczęście trudne. Najważniejsza zasada to koncentrowanie się na najważniejszych słowach-kluczach. Dlatego nie pisz „Jak nauczyć się modelować w 3ds max?” (przykładowo), tylko „modelowanie 3ds max kurs”. Korzystaj też z opcji wyszukiwania w określonym języku, w tym wypadku w polskim. Co oczywiście nie zwalnia cię ze wspomnianej w poprzednim rozdziale nauki angielskiego :P

 

Alternatywna metoda to poszukanie największych serwisów traktujących o danym zagadnieniu. Stosując ją do powyższego przykładu można wpisać po prostu „3ds max” i wtedy sposób uzyskać listę serwisów opisujących ten program (ewentualnie można napisać „3ds max – discreet”, aby pominąć stronę producenta).

Może ktoś miał już ten problem?

Gdy szukamy odpowiedzi na konkretne pytania, w szczególności – rozwiązania określonych problemów, to powinniśmy kierować swoje kroki bardziej w kierunku grup i for dyskusyjnych.

Zasada działania obu jest podobna – uczestnicy dyskusji zakładają wątki na wybrane przez siebie tematy (dotyczące na przykład nurtującego ich problemu) i komentują te założone przez innych.

Zanim jednak sam zaczniesz tam pisać, wiedz, że większość problemów, na które natrafisz w przyszłości nie będą tylko twoimi problemami. Dlatego z ogromnym prawdopodobieństwem można orzec, że odpowiedź na twoje pytanie została już kiedyś udzielona – chociaż nie ty je zadałeś. Musisz tylko do niej dotrzeć.

 

Tutaj znowu z pomocą przychodzą nam wyszukiwarki internetowe. Niestety, nie wszystkie posiadają interesującą nas opcję przeszukiwania grup dyskusyjnych. Najbardziej znaną jest Google (http://groups.google.com) – może tu tkwi przyczyna jej popularności? :) Wygląda ona mniej więcej w ten sposób:

 

Screen 3. Wyszukiwarka grup dyskusyjnych Google

 

Jak widać, jest podobna do wyszukiwarki stron WWW. Nasze poszukiwania odbywają się jednak wśród archiwum listów z kilkudziesięciu tysięcy grup dyskusyjnych, obejmującego ponad 20 lat! W sumie jest to kilka miliardów wiadomości, z czego te dotyczące programowania zostały napisane przez takich samych programistów jak ja czy (wkrótce :D) ty i zawierają odpowiedzi na prawie wszystkie pytania, które mogą ci kiedykolwiek przyjść do głowy.

Korzystanie z tej dobroci jest bardzo proste i przypomina opisane w poprzednim akapicie wyszukiwanie stron WWW. Przypuśćmy, że masz kłopot z koordynatami tekstur w DirectX (cóż to takiego, dowiesz się w swoim czasie, na razie potraktuj to jako przykład :)) Co więc robisz? Wpisujesz zapytanie „C++ DirectX textures coordinates problem” (po angielsku, gdyż dyskusje na grupach są w ogromnej większości prowadzone w tym języku) i otrzymujesz wszystkie wątki na temat problemów ze współrzędnymi tekstur w DirectX, jakie kiedykolwiek założono na jakiejkolwiek grupie dyskusyjnej. Czyż to nie piękne? :)

 

Oczywiście grupy i fora dyskusyjne są nie tylko do przeglądania, lecz o pisaniu do nich własnych wiadomości i związaną z tym netykietą powiemy w następnym rozdziale.

Słowo drukowane

Pewnie dziwisz się, że w epoce komputerów i szalejącego Internetu programiści czytają jeszcze książki? To wcale nie przypadek i ma to swoje uzasadnienie.

Książki są źródłem fachowej, systematycznej i sprawdzonej wiedzy. Większość z nich jest pisana przez doświadczonych i szanowanych autorów.

Poza tym istnieją też bardziej prozaiczne przyczyny: książkę możesz zabrać ze sobą i wygodnie czytać wszędzie, czego nie da się powiedzieć o kursach internetowych czy dokumentacji elektronicznej. Przyznasz też chyba, że o wiele lepiej czyta się z papieru niż z ekranu – wierz mi, że wygoda ta jest warta wydania kilkudziesięciu złotych.

 

To jednak może się zmienić. Cały czas w wielu firmach prowadzone są prace nad elektronicznymi książkami, do których możnaby wgrywać publikacje zapisane w postaci cyfrowej i czytać je jak zwykłe książki.
Na razie jednak zdają się one być melodią przyszłości.

 

Przez długi czas nie było na polskim rynku wielu pozycji o programowaniu gier. Na szczęście stan ten powoli się zmienia i można już nabyć w naszym pięknym kraju wiele wartościowych pozycji. Po szczegóły odsyłam do Bibliografii.

Podsumowanie

W tym rozdziale przedstawiłem ci źródła informacji, z jakich na pewno nie raz będziesz korzystał. Aby nie uleciały ci z pamięci równie szybko, jak do niej wleciały, wyliczę je tutaj jeszcze raz. Otóż są to:

Ø       Oficjalne dokumentacje

Ø       Różnorodne witryny internetowe

Ø       Grupy i fora dyskusyjne

Ø       Książki

W zasadzie nie musisz korzystać z nich wszystkich, lecz pamiętaj że wiedzy nigdy dość ;)

 

Kolejny rozdział opisuje podstawowy bon-ton, który obowiązuje w Internecie, w szczególności na grupach i forach dyskusyjnych – czyli coś o tym, jak nie zostać lamerem :)



[1] pętla, przycisk, światło, klawiatura, urządzenie, właściwość, zastępować, tablica, uruchamiać