Permalänk

C++ och spelprogrammering!

Hej!
Jag är famijär sedan tidigare med språk som Lingo, java, html mfl.

Nu vill jag föra mina spel till nya nivåer, vill kunna använda min fulla kapacitet inom 3D framför allt.
Men alla språk jag kan är så långsamma och klarar klappt fler än 50'000 polygoner.

Så jäg tänkte tag tag i det hela och lära mig C++!
Eller finns det bättre alternativ ?
Finns det någon bra guide (bok) för spelprogrammering i C++ eller ska man börja med funden a la C++ BIbeln ?

Tack på förhand!

Permalänk
Hedersmedlem

Jag föredrar C framför C++ men här är iaf en guide som inriktar sig på C++ och spelprogrammering:
http://blinkenlights.se/articles/c++nyborjarguide/

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

OpenGL och C borde vara en bra start för att snabbt och enkelt komma igång med lite polygonpul... om det sen är rätt för att göra ett komplett spel... well... det går jag inte in på.

gamedev.net är en annan bra startpunkt!

Permalänk
Hedersmedlem

C och SDL kör jag med, men däri kan man ju skriva OpenGL så...
(jag spelar inte själv men skriver faktiskt småspel då det är roligt. )

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Jag har skrivit en introduktion till SDL med C++ som du kan läsa på www.cplusplus.nu . Jag tycker du ska välja C++ framför C eftersom C++ är objektorienterat och det blir lättare att strukturera upp koden.

Permalänk
Hedersmedlem

bjerre: Isf så kan han lära sig C först och sedan gå till C++. C++ är lite jobbigt att lära sig iom strömmar osv...
(har provat, lärde mig C++ först och började sedan leka C och tyckte att det var mysigare. )

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk

Tack för svaren!
Några frågor;

Vilket språk har bäst prestanda? Vilket är snabbast alltså ?

Hur svårt är det, hur långt tid tar det att lära sig skapa 3D miljöer i C++. jag kan ju det redan i t.ex. Lingo. Så jag vet ju själva fysiken och så.
Men hur fungerar det? Kan man göra modeller i exempelvis 3Ds max och sedan använda dom i ett program (eller något) man skapar i C++ och sedan göra den interaktiv ?

Dum fråga kanske, jag förutsätter att det går. Men egentliga fråga är väl bara om det är krångligt ?

Permalänk
Medlem

Eftersom du säger dig kunna java sen tidigare så är det självklart c++ och inte C som gäller iom att du ju bör kunna objektorientering bra sen tidigare då.

edit: och ja, det du beskriver är krångligt och inget du bör ge dig på innan du fått en relativt djup förståelse för c++

Permalänk
Hedersmedlem

Vet inte om C eller C++ är snabbast men min instinkt säger C. Kan dock ha fel.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

För att kunna använda 3D-grafik så måste du lära dig använda något API, som OpenGL eller Direct3D. Före det så bör du som sagt lära dig språket. Men eftersom du kan Java så bör det inte vara så svårt. Ska du kunna det ganska bra så kan det nog ändå ta några dagar/veckor.

Och som mOREc skrev så brukar C vara snabbare. Det är dock ingen stor skillnad så länge man inte utnyttjar objekt-orienteringen och använder klasser och sånt.

Ta mitt inlägg med en nypa salt. Jag är inte säker på allt jag har skrivit, utan det är mest som jag tror det är.

Visa signatur

Vill du ha svar? Citera mig gärna.

Permalänk

Tack för svaren!

Buffi:
Okej, jag satsar på att lära mig grunderna först och riktar mig sedan in på mer spelprogrammering.
Jag kommer nog hajja mer under tidens gång.

Tack!

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Enzo
OpenGL och C borde vara en bra start för att snabbt och enkelt komma igång med lite polygonpul... om det sen är rätt för att göra ett komplett spel... well... det går jag inte in på.

gamedev.net är en annan bra startpunkt!

Underskatta inte enkelheten i Directx9 nu för tiden. Att rekommendera någon ett API som kräver så mycket utav användaren för att göra saker "rätt" (läs: använda Extensions) tycker jag är lite snedvriden. OpenGL var stort och alla trodde och hoppades att stora förändringar skulle ske i och med lanseringen av OpenGL 1.4 och 2.0

Om du bara ska koda i Win32-miljö rekommenderar jag dig starkt att lära dig Direct3D istf. OpenGL. Det finns inte en enda anledning till att *inte* göra det.

kolla även in
www.gamedev.net
www.ultimategameprogramming.com

Visa signatur

{|XSX|PS3|PS4|}

Permalänk
Hedersmedlem

Man vill inte lära sig DirectX då det inte är plattformsoberoende!

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av m0REc
Vet inte om C eller C++ är snabbast men min instinkt säger C. Kan dock ha fel.

Går egentligen inte att ge något rakt svar på eftersom C är en del av C++. Vissa saker är segare i C++, exempelvis RTTI och dynamisk bindning, men å andra sidan kan man ju inte göra det i C. Templates är något många tror är segt i C++, men det påverkar inte exekveringshastigheten över huvud taget eftersom det översätts compile-time till "vanliga" funktioner osv.

Som ett generellt svar, C är lite snabbare än C++ men det är ytterst marginellt.

Visa signatur

5D MkII

Permalänk
Medlem

Nej, det är lätt att underskatta DirectX, så du har rätt i det. Men min tanke med OpenGL och C är att det ger möjlighet att fokusera på 3D koncept och de är som sagt plattformsoberoende och det finns mycket exempelkod. Enkelhet är bra, och säga vad ni vill men C är enklare än C++ till en början.

Skall det sedan börjas koda spel på allvar så rekommenderar jag nog C++ med men först när du vet lite mer vad du ger dig in på. Men smaken är ju som bekant som baken

Gå in på gamedev.net och kika lite på de tutorials som finns där och känn efter - ett enkelt och bra sätt att komma igång.

Permalänk

Tack för alla svar!

Permalänk
Medlem

http://www.smart2help.com/e-books/ticpp-2nd-ed-vol-one/Frames...
"Thinking in C++"

Om du vill, kan du ta en titt i denna bok. Den fokuserar sig på C++, men ger också inblickar i vad som skiljer sig mellan C och C++. Är själv på elfte kapitlet och hittills har boken varit väldigt bra, enligt mig. Tyvärr är den inte inriktad på spelprogrammering.