Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Książki C++ od podstaw do programowania gier...

14 Gru 2008 15:17 6501 12
  • Poziom 9  
    Chcę się nauczyć programowania gier 3D i nie wiem jakie książki mam kupić. Czy ktoś uczył się z książek od podstaw żeby mi coś polecić? Narazie mam tylko "C++ dla każdego" i jestem w trakcie czytania, ale nie wiem co później. Na helionie są jakieś książki "Perełki programowania..." ale wydaje mi sie ze po samym "C++ dal każdego" nie zrozumiem jej. W perełkach jest też coś opisane jak łączyć C++ z Perlem, więc jeszcze podstawy perla będę musiał znać. I pytanie jeszcze czy te perełki to wystarczy ze kupie "...tom 6" czy musze też miec wcześniejsze tomy?. Troche nie stać mie narazie na wszystkie, ale później się uzbiera.
    Więc wg mnie to książki w takiej kolejności:

    C++ dla każdego
    C++. Księga Eksperta. (Obecnie niedostępna na helionie ale gdzie indziej można kupić)
    C++ dla programistów gier (też niedostępna obecnie)
    Perl. Wprowadzenie. Wydanie IV
    OpenGL. Programowanie gier
    Perełki programowania gier. Vademecum profesjonalisty. Tom 6

    Może coś pominąłem lub jakaś książka jest niepotrzebna? Czy powinienem się bardziej zagłębiać w Perla... Nie wiem. Doradźcie :)
  • Poziom 25  
    Hmmmm... ja bym nie kupował żadnej ;) Kilka kupiłem, i tak szczerze mówiąc nie przydały się na wiele. A ten Perl to po co? C++ księgę eksperta też możesz wywalić z tej listy. A jak koniecznie chcesz coś do niej dodać, to możesz jeszcze wydawnictwa MIKOM, "Programowanie gier w DirectX". Chociaż ja to bym na Twoim miejscu poczytał o np. OGR3D, świetny darmowy silnik graficzny, banalny w obsłudze, na dodatek na wikipedii jest do niego tutorial (po POLSKU!). Bo szczerze mówiąc, w jedną osobę nie da się napisać wydajnego silnika 3d, więc jeżeli szybko chciałbyś zobaczyć efekty swojej pracy w c++ w przestrzeni, to polecam właśnie OGRE'a.

    A książka która mnie osobiście wprowadziła w świat game dev'u to: http://helion.pl/ksiazki/prgkom.htm . Ją mogę z czystym sumieniem polecić ;)
  • VIP Zasłużony dla elektroda
    Perl i gry - możliwe, ale mało prawdopodobne :)

    Z tego co wiem, to język Lua http://lua.org/ jest dość popularnym językiem skryptowym wykorzystywanym w wielu grach: http://en.wikipedia.org/wiki/Lua_(programming_language)#Games

    Co do książek, to zapewne dowiesz się z nich o antycznych metodach w stylu "jak tu namalować bitmapę w pamięci ekranu pod DOSem" itp. Niestety w programowaniu gier trzeba być na bieżąco, a książka (tym bardziej dostępna na polskim rynku :]) nigdy na bieżąco nie jest.

    Proponuję zainteresować się jakąś +/- dopracowaną grą open source i tam zdobywać doświadczenie.

    Pozdrawiam,
    Dr.Vee
  • Poziom 25  
    Zapomniałem o najważniejszym! Prawdziwa kopalnia wiedzy, mnóstwo artykułów i tutoriali ;)

    www.gamedev.pl
  • Poziom 27  
    Od C++ do programowania gier jest bardzo długa droga, a do tego samo C++ jako takie w programowaniu gier się nie wykorzystuje (przynajmniej samych własności języka, np obiektowości, polimorfizmu, etc). Jak chcesz od czegokolwiek zacząć to zacznij od podstaw programowania, C czy PASCAL czy BASIC są równie dobre do nauki programowania.
  • Poziom 25  
    Szymon Tarnowski napisał:
    a do tego samo C++ jako takie w programowaniu gier się nie wykorzystuje (przynajmniej samych własności języka, np obiektowości, polimorfizmu, etc)


    Ooooo... a to nowość. Nie wykorzystuje się? Ja do tej pory spotkałem się z wykorzystywaniem samych własności języka C++, a obiekty? Przecież to jest podstawa podstaw!
  • Poziom 2  
    ujmę to tak: są dwie pigułki, czerwona i niebieska.

    czerwona, to najpierw według mnie: Kernighan, Ritchie: "Język Ansi C". Następnie Thinking in C++ - obie te książki do ściągnięcia z internetu za free - autorzy je udostępniają nieodpłatnie. Może być jeszcze "Podstawy C++" Lippmana(to już chyba tylko do kupienia). Przy czytaniu ze zrozumieniem i przećwiczeniem przykładów ok 6miesięcy czas przy codziennej lekturze, nabranie wprawy pewnie jeszcze drugie 6 mies. Kiedy je skończysz czytać, to pewnie okaże się że na topie jest c#, ai jest robione w lua, javie albo wariacji lispa...

    Jeśli po tym się nie znudzi to np: http://en.wikipedia.org/wiki/Havok_(software), lub jakiś inny silnik do 3d. Dokumentacja dostępna na stronie producenta.(nie ma sensu pisać tego od nowa - dla jednej osoby praca na lata, a i tak tego nie napiszesz.) Polecam to razem http://msdn.microsoft.com/pl-pl/directx To jest ta część łatwa. Trudna część to pomysł na grę, modele 3d, tekstury, dźwięki, animacje itp itd, czyli to co w 95% wypełnia te 4,7GB płyty DVD.

    Jeśli masz charakter i będziesz się przykladał do nauki, to w październiku 2010r. pewnie zobaczysz pierwsze efekty swojej pracy.

    czerwona pigułka: wróć do rzeczywistości. Jeśli koniecznie chcesz stworzyć jakąś grę, zacznij na początek od flasha -> będziesz miał satysfakcję że coś udało się zrobić i to działa, pogoogluj za gotowymi rozwiązaniami do tworzenia gier -> nie rzeźbisz tam w c++ tylko składasz grę z gotowych klocków. Ograniczone bo ograniczone, ale do ogarnięcia dla początkującego.

    Nie nabijam się tu z czyjejś niewiedzy, tylko mam nadzieję że jeśli ujrzysz skalę problemu jaki sobie stawiasz, to może ochłoniesz i unikniesz przykrego rozczarowania.

    powodzenia!
  • Poziom 25  
    Uważam, że zaczynanie od ANSI C i przechodzenie do C++ jest totalnie bez sensu. Sam zacząłem od C++ (i to jeszcze w gim) i nie było z tym dużych problemów. W każdej książce do C++ nie zaczynają od klas abstrakcyjnych czy dziedziczenia wielobazowego, tylko od wypisywania tekstu w oknie konsoli. Nie ma potrzeby cofania się do ANSI C.

    A tak poza tym, to kolega nie napisał że chce stworzyć grę, tylko nauczyć się programowania gier ;) Jeszcze raz polecam poprzeglądanie artykułów i tutoriali na www.gamedev.pl . Jest tam słynny w całej siedzi tutorial (wręcz książka :P ) "Od zera do gier kodera", ma prawie 500 stron w pdf'ie, napisany megaprzystępnie i na "życiowych" przykładach wszystko jest zilustrowane ;)

    Co do silnika graficznego... faktycznie, w pojedynke nie da się napisać czegoś wydajnego. Jeżeli nie dysponujesz zespołem programistów i kolosalnymi funduszami, to pozostaje praktycznie poskładać grę z gotowych cegiełek, co oczywiście nie jest wcale takim złym pomysłem ;) Jest mnóstwo opensource'owych bibliotek, które można wykorzystać nawet w komercyjnych projektach. Ja skrobałem coś w OGRZE, bardzo łatwo i przyjemnie się z tego korzystało (przynajmniej na niezbyt zaawansowanym poziomie), na dodatek gra może chodzić pod linuksem i windowsem (ogre ma możliwość korzystania z directX'a i opengl'a).

    No ale przydałoby się coś poczytać o jakiś podstawach, żeby wiedzieć jak jest wyświetlany obiekt na scenie chociażby. Do tego polecam po raz kolejny Kompedium programowania gier z Heliona. Masz tam liźnięte wszystko po kolei, począwszy od C++, poprzez winApi, algorytmy, matematyke 3d, no i directX'a (tylko przestarzałego, bo 8 i to DirectDraw'a).

    No właśnie. W późniejszych projektach przydałoby się zastosować jakieś wydajne struktury danych, algorytmy. Na Helionie jest również książka "C++ dla programistów gier". Zawiera ona dokładny opis zaawansowanych aspektów języka C++, a każdy rozdział jest zakończony analizą kosztową (pamięci komputera, nie finansową :P ).

    Noooo... to chyba tyle. Jak już pokapujesz się w C++, to potem będzie łatwiej dobrać odpowiednie komponenty. Powodzenia!
  • Poziom 20  
    nie warto kupowac książek , przynajmniej na początku, ksiązki są napisane w większości w taki sposób że raczej nudzą niż uczą,
    na początek najlepiej po prostu pisać programiki polecam do nauki opengl i rewelacyjną stronę nehe tutorials (wpiszesz w googlach), udostępniają od postaw proste lekcje, tutaj masz cześć ich lekcji przetłumaczonych na polski
    http://aklimx.sppieniezno.pl/nehepl/
    no oczywiście rewelacyjna jest również strona gamedev.pl

    zawsze najlepiej, najszybciej i najwygodniej uczyć się praktycznie, ksiązki kupisz sobie jak już będziesz wiedział co nieco , bo wtedy będzie sie lepiej czytało, a natłok informacji nie zanudzi,

    pozdrawiam

    ps. co do gotowych silników to moja opinia jest taka że musisz niestety poznac opengl żeby efektywnie z silników gotowych umieć korzystać
  • Poziom 25  
    A dlaczego akurat opengl? ;) Ja korzystałem z OGRE'a bez takiej wiedzy. Po co uczyć się o sposobie wyświetlania trójkątów na ekranie, o różnych zaawansowanych aspektach związanych z formatami wierzchołków, kuć na pamięć jakieś kosmicznie nazywające się struktury (mowa o DX'ie :P), skoro można najzwyczajniej trzema linijkami kodu dodać obiekt na scene ;) :

    Code:
    ent = mSceneMgr->createEntity( "Ninja", "ninja.mesh" );
    
          ent->setCastShadows( true );
          mSceneMgr->getRootSceneNode()->createChildSceneNode( )->attachObject( ent );


    Mówiąc po co robić to wszystko, mam na myśli osobę która chce nauczyć się programować gry, a nie pisać własne silniki graficzne ;)
  • VIP Zasłużony dla elektroda
    lord_dagoth napisał:
    Uważam, że zaczynanie od ANSI C i przechodzenie do C++ jest totalnie bez sensu. Sam zacząłem od C++ (i to jeszcze w gim) i nie było z tym dużych problemów. W każdej książce do C++ nie zaczynają od klas abstrakcyjnych czy dziedziczenia wielobazowego, tylko od wypisywania tekstu w oknie konsoli. Nie ma potrzeby cofania się do ANSI C.

    Zgodzę się tutaj z kolegą. Jeśli ktoś nie musi, to nie ma żadnego powodu żeby zajmować sobie głowę historycznymi ograniczeniami C.

    Pozdrawiam,
    Dr.Vee
  • Poziom 18  
    Dodam tu jeszcze 2 tytuły J.Grębosza
    -Symfonia C++
    -Pasja C++

    Ja kupiłem te książki i nie żałuję, są bardzo przystępnnie napisane, nie wyobrażam sobie dalszej nauki (aktualnie OpenGL) bez ich przerobienia.