Jestem normalnym programistą z około 3-letnim doświadczeniem, który interesuje się tworzeniem gier. Problem, z którym się zmagam, polega na tym, że kiedy patrzę na te „początkujące” książki, większość z nich uczy podstawowych umiejętności programowania i nie mam cierpliwości, aby się nimi zająć lub uznać je za wartościowe. Ale kiedy patrzę na bardziej zaawansowane książki, są one nad moją głową i po raz kolejny są dla mnie bezowocne. To, czego szukam, to książki, które wyjaśniają drobiazgowe wnętrze gier, ale na bardziej rozsądnym poziomie.
Na przykład, jestem bardzo zaznajomiony z wszelkiego rodzaju strukturami danych (skróty, drzewa, listy połączone) i wieloma popularnymi algorytmami (sortowanie, wyszukiwanie), ale nie wiedziałbym, jak, powiedzmy, skutecznie wdrożyć wykrywanie kolizji. Mam również doświadczenie w korzystaniu z zagranicznych bibliotek, więc wiem, jak korzystać z dokumentacji, aby nauczyć się interfejsu API, więc nie potrzebuję też książki „Naucz się korzystać z X”.
Osobiście nie dbam o to, jakie platformy / języki / biblioteki są używane w książkach, ponieważ czuję się swobodnie w wielu językach, ale gra, w którą zamierzam stworzyć, używa Javascript i płótna HTML5.
Jakieś sugestie? Czy ktoś jest wolny?
PS Powinienem zauważyć, że mój poziom matematyki i fizyki jest stosunkowo niski, a książka, która delikatnie zintegrowałaby te rzeczy, byłaby plusem.
EDYCJA: Powinienem wspomnieć, że interesuję się programowaniem 2D i na tym etapie tak naprawdę nie dbam o 3D.
Odpowiedzi:
Czy oglądałeś serię Gem Programming Game ? Może dać ci szczegóły, o które wydajesz się prosić. Nie ma zbyt wielu książek na temat HTML5 / canvas, ponieważ jest on całkiem nowy, szczególnie te o programowaniu gier.
źródło
Jaki aspekt programowania gier Cię interesuje? Istnieje wiele książek omawiających konkretne aspekty programowania gier. Uruchomienie gry nie jest trudne, a każda logika gry przypomina zarządzanie danymi w innych aplikacjach, być może bardziej związane z szybkością wykonywania. Jednak zajmowanie się programowaniem graficznym może być czymś zupełnie innym. Zacznij od podstawowej struktury gry, a następnie skup się na jednym obszarze, który Cię interesuje, takim jak zaprojektowanie solidnego systemu walki, synchronizacja animacji lub shaderów.
Książki o typie informacji ogólnych, które uznałem za przydatne:
Prawdopodobnie jesteś na etapie, w którym uzyskasz najwięcej informacji, przeglądając różne posty z samouczków dla konkretnych silników w Internecie. Jest też wystarczająco przyzwoita liczba gier typu open source, które możesz sprawdzić.
Jedną ciekawą rzeczą do zbadania może być silnik Monocle .
Edytuj :
Jeśli chodzi o matematykę, trochę się trzęsę na fundamentach. Dobrym źródłem informacji o tych ogólnych obszarach tematycznych jest Khan Academy .
Aby uzyskać inne darmowe rzeczy, po prostu przejrzyj GameDev.net i ewentualnie artykuły MSDN dotyczące XNA.
źródło
Jeśli jesteś pewny programowania obiektowego, powinieneś upewnić się, że wybierasz coś, co obejmuje projektowanie zorientowane na komponenty. Jest to podejście programistyczne w ramach OOP, które jest bardzo skuteczne w tworzeniu gier i stało się standardowym podejściem w ciągu ostatniej dekady.
Dwa zasoby, które znacznie przyczyniły się do mojego zrozumienia ChZT:
Odpowiedź na przepełnienie stosu zawiera niesamowitą listę zasobów: Inżynieria oprogramowania oparta na komponentach w literaturze gry .
Uwaga: ChZT nie jest wykorzystywany wyłącznie przy tworzeniu gier. Możesz znaleźć zasoby, które wyjaśniają ChZT w zupełnie innych kontekstach, co niekoniecznie będzie pomocne w zrozumieniu roli, jaką odgrywa w grach (YMMV).
źródło
Dodam do potopu tytułów tutaj:
Architektura silnika gry autorstwa Jasona Gregory'ego (Naughty Dog) dla ogólnego przeglądu silnika gry na dość szczegółowym poziomie.
Wykrywanie kolizji w czasie rzeczywistym przez Christera Ericsona (God of War) dla szczegółowego i kompleksowego przeglądu systemów detekcji kolizji.
Renderowanie w czasie rzeczywistym przez Tomasa Mollera i Erica Hainesa dla podobnie dogłębnej obróbki renderingu.
źródło
Polecam wprowadzenie do programowania gier za pomocą DirectX 9.0c: podejście Shadera autorstwa Franka Luny. Jest również dostępny dla D3D10, jeśli jesteś ciekawy. Książka zakłada podstawową znajomość języka C ++, ale nie jest specyficzna dla gry i nie ma COM, i zaczyna się od różnych podstaw matematycznych, takich jak wektory i macierze, i dość delikatnie prowadzi użytkownika przez konfigurację gier od podstawowej do pośredniej. Godne uwagi jest oczywiście to, że z biegiem czasu rzeczy się zmieniają - na przykład nie uczy instancji sprzętowych ani innych optymalizacji, które są stosunkowo nowe.
źródło
Właśnie znalazłem wydawcę, który wydaje się być świetną listą możliwych książek: http://www.courseptr.com/Courses.aspx?MenuId=8&MenuSubId=0 - to wydawcy serii Gem Programming Gems.
źródło