Trädvy Permalänk
Medlem
Plats
Borlänge
Registrerad
Jan 2003

Spelprogrammerings Böcker?

Ja, som titeln säger, jag är på jakt efter böcker om spelprogrammering.

Det jag har som krav är:
- Det ska vara inom C++
- Bibliotek gör detsamma, men helst DirectX då det verkar smidigast när man väl kan det
- Billig men BRA bok

Anledningen att jag frågar är att jag har kollat runt på massa sidor, amazon.com etc och hittat massa böcker som är intressanta men vet inte om dom är värda det. Jag ligger på en tajt budget så vill inte köpa en bok som visar sig vara skit rent ut sagt

Jag har vana i viss spelprogrammering inom C++ i SDL men vill utvidga mina vyer
Böckerna får vara allt från nybörjare (då det kan vara bra att gå tillbaka och kolla eller om man har glömt nåt helt enkelt) till mer avancerat
Har programmerat i över 10 år nu i blandade språk men har nu på sistonde fastnat för C++ och spelprogrammering är mycket intressant så dags att ta tag i det på allvar anser jag

Så om ni har tips på bra böcker inom spelprogrammering (spel design kan också vara bra ) så länka gärna.

EDIT: Vore även bra om ni själva har läst/luskat runt i boken ni rekommenderar.

//AJL

C#/MonoGame Fanatiker.
Pixel Artist & Game Developer

Trädvy Permalänk
Medlem
Registrerad
Jul 2005

Jag vill ställa frågan om du vill bli en grym programmerare på att göra spel och sen arbeta med detta, eller om du vill göra spel på fritiden för att det är kul? Hade du velat arbeta som programmerare hade du nog inte frågat om nybörjarböcker, så jag antar att du vill programmera för det är skoj att göra spel vilket det verkligen kan vara!

Jag har läst spelprogrammering i fyra år, och har kandidatexamen i det, och håller på med min masterexamen just nu. Vill du verkligen bli en grym spelprogrammerare måste du börja så hårt från början och lära dig så mycket annan skit att det är inte kul på något sätt. Så håll det på en rolig nivå istället! Då vet jag helt rätt sak för dig... C# och XNA! Du kan ladda ner C# Express gratis och XNA lika så, väldigt fördelaktigt.

Jag är väldigt bra i C++ eftersom jag läst och arbetat med spel en längre tid i det språket. Det finns dock ingen som helst anledning att göra spel i C++ samt OpenGL/DirectX där du får kämpa för att ens få en fyrkant på skärmen (för att inte tala om att få en modell renderad). Med två rader kod får du fram en modell med XNA, när jag skrev en egen modellrenderare för tre år sen tog den runt 150kB. Frågan är om du vill få resultat eller om du bara gillar att programmera? Jag tyckte inte det var tråkigt att göra en modellrenderare, men efter flera veckors slit är man ju inte det minsta närmare ett spel.

I ett projektarbete det tredje året bestämde vi oss för att göra ett spel helt från grunden. Vi var åtta programmerare och spenderade tio veckor på det. Med facit i hand självklart idiotiskt, vi borde i alla fall använt Orge eller någon tredjehandsrenderare. Vi lyckades få ett snyggt techdemo och det är ett ganska imponerande resultat om man vet arbetet som ligger bakom det hela, men det är inte mycket till ett spel. Man tvingas spendera tid på delar i ett projekt du kan få gratis i XNA. Visst nu lärde vi oss något på vägen, men med 2100kB ren kod hade man kunnat förvänta sig mer.

http://www.youtube.com/watch?v=ITmjNdE-EFo

Med XNA behöver du ingen dyr bok, du kan läsa det mesta du behöver veta på XNA's hemsida och det finns ett forum där folk gärna svarar på frågor. Det är lätt att komma igång och du håller din spelprogrammering på den nivån där du fortfarande lyckas få resultat på skärmen.

Detta har varit helt off topic, men jag ville bara göra ett försök att få dig på rätt spår. Nu on topic, och förhoppningsvis är detta inte längre något intressant för jag rekommenderar verkligen XNA helhjärtat.

Personligen började jag med OpenGL Game Grogramming, vilket är en bra bok för att starta från början och nå hela vägen fram till ett litet litet spel. Du kan komplettera den boken med t.ex. Focus on 3D Models och Focus on 3D Terrain Programming (sistnämnda är för övrigt en grym bok, oavsett om du planerar att programmera i XNA eller skriva allt från grunden). Beginning Direct3D Game Programming från samma serie om du vill köra DX, men jag har bara bläddrat i den boken. Personligen tycker jag OpenGL är att föredra om du planerat att koda allt på så låg nivå. Böckerna är gamla, men fortfarande relevanta som nybörjare, medelbra programmerare, och även de som är bättre än så (du kommer aldrig växa ifrån dem - om du gör det är du på en helt annan nivå och har således massa pengar att spendera på massa böcker). Game Programming Gems är en mycket bra serie böcker som jag rekommenderar allihop (finns många böcker i serien, GPG 1, 2 osv), men nu börjar vi snacka massa pengar här tyvärr för de är dyra. Vill du verkligen programmera spel måste du ha en bok om linjär algebra också om du inte redan är grym i det. OpenGL Game Grogramming är så snäll att den går igenom det viktigaste i av linjär algebra i början, och jag kommer inte ihåg men antar att Direct3D Game Programming borde göra det också (dock skadar det inte med en separat bok om linjär algebra).

Du kommer märka vilken fördel det är att vara grym i C++ när du går över till C#, som jag personligen tycker du ska göra. Har du fler frågor så ställ dem gärna.

Oh by the way, ju mer man programmerar spel ju mindre spelar man. Det är ett underbart sätt att totalt sluta spela spel på - att gå en spelprogrammeringslinje. Jag känner inte en enda människa som spelar WoW. Imaging that!

Trädvy Permalänk
Medlem
Plats
Borlänge
Registrerad
Jan 2003

För tillfället är det väl mest hobby-programmering osv, men har haft stort intresse för just spelutveckling, jag vet även mina begränsningar så Advanced 3D är inget för mig just nu då, men just därför jag vill börja med spelprogrammering så jag får en titt över så mycket som möjligt inom det så jag vet om det är något jag bör forstätta med (eventuellt gå en utbildning) eller om jag ska fortsätta vara hobbyprogrammerare och söka annat jobb

Ang XNA så har jag inte kikat så mycket på det, men har det några begränsningar inom prestanda så att säga? eller hur långt kan man gå med det kanske är en bättre fråga?

Har som sagt bara pillat runt med 2D spel lite (små små versioner av Tetris, Mario klon etc), var ett tag sen nu och WoW börjar bli tråkigt, så jag började pilla lite på spelprogrammering igen för ca 2 veckor sen och har börjat inse att spelprogrammeringen har nästan tagit över WoW så det är ju bra

Helst så ser jag mig programmera spel på riktigt vid ett företag, men som sagt, fortfarande lite osäker och har hört från massa folk att det bästa man kan göra om man söker spelprogrammerings jobb är ju att visa dom ett Demo eller något man har gjort, som ligger vid deras nivå också, känns lite dumt om man söker jobb vid ett företag och skickar med ett 2D spel gjort i SDL

Men om jag nu börjar med XNA, hur är det att gå vidare därifrån senare om man nu skulle bli väldigt intresserad utav detta i fortsättningen?
Ska man gå från XNA till OpenGL eller till DirectX?

Då jag vet mina nuvarande begränsningar så vill jag ju helst lära mig mera inom min egna nivå och sen öka utöver där så, men ska kika på böckerna du länka se hur dom verkar

(Kan låta flummigt men klockan är sent så )

PS. Nice Demo

//AJL

C#/MonoGame Fanatiker.
Pixel Artist & Game Developer

Trädvy Permalänk
Avstängd
Plats
Sthlm
Registrerad
Nov 2008

Det finns ju mycket att läsa på spelsajterna som gamasutra och sånt? Men det kanske du redan gjort?

Trädvy Permalänk
Medlem
Plats
Borlänge
Registrerad
Jan 2003
Citat:

Ursprungligen inskrivet av saddam
Det finns ju mycket att läsa på spelsajterna som gamasutra och sånt? Men det kanske du redan gjort?

hmm har aldrig varit in på gamasutra förrut faktiskt värt en koll

C#/MonoGame Fanatiker.
Pixel Artist & Game Developer

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Nov 2001

FlipCode (http://www.flipcode.com/archives/) lärde mig mycket på den tiden det var aktivt, nu är det tyvärr nedlagt men arkivet finns kvar. Koden är väl lite gammal nu, har inte med de nyaste flashigaste teknikerna men där finns ohyggligt mycket välskriven och effektiv C och C++ (och asm =).

Det är mest lågnivåkod för 3D-motorer och liknade saker där, så är man ute efter mer högnivåprogrammering (att göra spellogiken och få spelet kul) bör man kanske kolla på andra ställen. Det är dessutom saker som är väldigt svåra att lära ut.

void@qnet
teeworlds, stålverk80, evil schemer, c, c++
Languages shape the way we think, or don't.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Okt 2001

Mitt tips är boken Real-Time Rendering av Tomas Akenine-Moller. Det är nog den boken som varit mest matnyttig för mig.

Det finns/fanns en kurs på chalmers som använder sig av ovanstående bok, och föreläsningsanteckningar finns att läsa: http://www.ce.chalmers.se/edu/year/2005/course/EDA425/index.s...

Men för att lära sig nya saker är nog ändå siggraphs publiceringar den bästa källan ( http://www.siggraph.org )

Freman

Trädvy Permalänk
Medlem
Registrerad
Jul 2005
Citat:

Ang XNA så har jag inte kikat så mycket på det, men har det några begränsningar inom prestanda så att säga? eller hur långt kan man gå med det kanske är en bättre fråga?

Läs på om XNA så fattar du Nej den har inga uppenbara begränsningar. Den är gjort som en cross utvecklingsplattform mellan Win och XBox360. När du tror du kan programmera bättre spel än de som görs till XBox360 för tillfället så ligger du på en helt annan nivå. Så nej, det är ingen liten "Bosses personliga lilla spelmotor" utan en fullfjädrad spelmotor med allt du någonsin kommer behöva. Prestandamässigt är det ungefär så bra som det kan bli. Min dator trycker ut 35MTris/sek med XNA, det kanske är möjligt att trycka ut några MTris till om du är ruggigt bra på C++, DX och Assembler, men nej, i stort sett kan du inte få det att gå snabbare. Om du istället väljer att skriva en egen modellrenderar ska du vara glad om du trycker över 10MTris i sekunden, du kommer aldrig i närheten av XNA.

Citat:

Har som sagt bara pillat runt med 2D spel lite (små små versioner av Tetris, Mario klon etc), var ett tag sen nu och WoW börjar bli tråkigt, så jag började pilla lite på spelprogrammering igen för ca 2 veckor sen och har börjat inse att spelprogrammeringen har nästan tagit över WoW så det är ju bra

Här finns en fördel till med XNA, du fastnar inte på 2D-spel utan kan snabbt börja göra 3D-spel. Med maya/3dstudio kan du lätt exportera FBX-modeller som du importerar till ditt XNA-projekt på några sekunder. Någon rad kod senare och du ser modellen precis som i Maya, med shaders, normalmaps osv, om du nu lyckas göra en så bra modell då.

Citat:

Helst så ser jag mig programmera spel på riktigt vid ett företag, men som sagt, fortfarande lite osäker och har hört från massa folk att det bästa man kan göra om man söker spelprogrammerings jobb är ju att visa dom ett Demo eller något man har gjort, som ligger vid deras nivå också, känns lite dumt om man söker jobb vid ett företag och skickar med ett 2D spel gjort i SDL

Hate to break it to you, men svenska spelbranschen går åt skogen. Din dröm om att bli spelprogrammerare kan du egentligen nästan ge upp direkt, och inte för att det går åt skogen för spelbranschen (eftersom det kan vända) utan för att det faktiskt inte på något sätt är kul att programmera spel i ett större projekt. Du får en uppgift och sen sitter du med den månad ut och månad in. Att jobba på ett litet indieföretag med att göra spel är ganska roligt då du har kontroll på vad du själv sysslar med, och jag tror det är alla gamers dröm att "göra sitt eget spel". De flesta börjar utbildningen för att "de älskar att spela spel" vilket ofta leder till fel fokus. När du sen kommer till ett företag så får du en skitskoj uppgift... "gör en så bra A* som möjligt, vi vill helst se att 1000 soldater ska klara pathfinda samtidigt utan att det laggar" och så sitter du med det i 6 månader innan du får nästa roliga uppgift. Ja, jag är ironisk, det är inte så kul faktiskt. Det är min åsikt dock, alla delar säkert inte den.

Jag spenderade 12 veckor på att göra ett vektor- och matris-bib till vårt spel. Sen spenderade jag resterande tid på att skriva frustum culling och octree-kod. Ren matematik - inget annat. Jag inte ens rörde vid själva spelkoden.

Vill du fortfarande bli spelprogrammerare efter allt negativt jag sagt är du inne på rätt spår. Att du ska klara att få jobb på ett företag kräver bara en utbildning. Jag kan rekommendera utbildningen i Skövde som jag läst, men det finns många andra i Sverige också. Sen finns det nog de som säger "du behöver ingen utbildningen" men jag snackar om dagsläget alltså, inte 10 år tillbaka i tiden, det finns säkert den som säger "jag programmerade bara hemma och jobbar på ett stort företag nu" men det var för längesen... och sen finns det undantag. Tror du att du utan någon utbildning kan sitta hemma och blir tillräckligt bra för att få jobb, så, who am I to judge you? Men en utbildning är att rekommendera.

Citat:

Men om jag nu börjar med XNA, hur är det att gå vidare därifrån senare om man nu skulle bli väldigt intresserad utav detta i fortsättningen?
Ska man gå från XNA till OpenGL eller till DirectX?

Ingetdera. Förr i tiden satte sig företagen och skrev sina egna spelmotorer. Vissa företag gör det fortfarande men majoriteten av företagen använder motorer de köpt, och de flesta indieutvecklarna använder XNA eller Orge3D. Vad som är intressant nu är att du är bra på att utveckla spel i en spelmotor, inte att du är bra på att göra en spelmotor. Du behöver aldrig lära dig en enda rad kod i OpenGL eller DirectX, du hamnar helt enkelt inte på den nivån. Sååååålänge du inte tycker det är roligare att göra spelmotorer, då ska du överhuvudtaget inte
använda XNA. Men du frågade inte "jag vill göra spelmotorer, vad för bok ska jag köpa?" utan "jag vill göra spel, vilken bok ska jag köpa?". Då ska du använda XNA och behöver aldrig bry dig om OpenGL och DirectX, så enkelt är det!

Kan du bara grunden i C++ så ska det inte vara något problem att komma igång och programmera spel i XNA. Vill du komma lite närmare marken men ändå använda en spelmotor är Orge3D ett bra förslag, men jag anser att XNA sköter allt bättre då jag skrivit mycket kod i båda.

Trädvy Permalänk
Medlem
Plats
Borlänge
Registrerad
Jan 2003

Massa information från alla, så får tacka för det!
Får nog bli att läsa på om XNA då det verkar spara tid också

Se om man fastnar för detta eller om man ska söka sig annat jobb

C#/MonoGame Fanatiker.
Pixel Artist & Game Developer

Trädvy Permalänk
Medlem
Plats
Exil i huvudstaden
Registrerad
Jul 2004

Crap.