Permalänk
Medlem

Programera spel (nybörjare)

Tjena

Jag har sedan länge varit intresserad utav att lära mig lite baser inom något språk för utveckling utav spel. Jag har väldigt svårt välja vilket språk jag skall lära mig, jag vill skriva för Windows. Jag har kollat på C# och C++ men vet inte riktigt vilket jag skall använda mig utav.
Som jag har uppfattat det är C# en smula lättare att lära sig och arbeta med men desto mer begränsat?
Är det någon med mer erfarenhet utav ämnet som kan ge mig lite mer kunskap och tips för hur jag skall börja?

Vad är fördelarna med de olika språken och vilka grafiska bibliotek kan de olika nyttja? Finns det likvärdiga nätverksegenskaper i båda två?

Tack på förhand!

edit

Jag glömde nämna att jag inte är helt o öppen för att använda mig utav färdiga motorer såsom UDK eller Unity men vill lära mig programmering på lite mer grundlig nivå innan så jag har lite förståelse.

Permalänk
Skrivet av Kuriden:

Jag har sedan länge varit intresserad utav att lära mig lite baser inom något språk för utveckling utav spel. Jag har väldigt svårt välja vilket språk jag skall lära mig, jag vill skriva för Windows. Jag har kollat på C# och C++ men vet inte riktigt vilket jag skall använda mig utav.
Som jag har uppfattat det är C# en smula lättare att lära sig och arbeta med men desto mer begränsat?
Är det någon med mer erfarenhet utav ämnet som kan ge mig lite mer kunskap och tips för hur jag skall börja?

Jag skulle säga att börja med C#. Båda funkar men C++ är ett mera komplicerat språk så det borde vara lättare att komma igång med C#, och du kan göra samma saker i båda språken.

Det borde finnas en hel del information på nätet om du googlar på t.ex. learning C#. Efter en sökning fick jag t.ex. upp den här sidan, http://msdn.microsoft.com/sv-se/beginner/dd435692%28en-us%29...., men det finns säkert massor.

Skrivet av Kuriden:

Vad är fördelarna med de olika språken och vilka grafiska bibliotek kan de olika nyttja? Finns det likvärdiga nätverksegenskaper i båda två?

Fördelen med C# är att det är ett modernare språk med en mera uniform syntax och ett bra framework (.NET). Det har automatisk skräpsamling (garbage collection) så man behöver inte manuellt hantera och frigöra minne vilket underlättar. Det innebär en liten prestandaförlust men det är en marginell skillnad i de flesta fallen. C++ är lite enklare att använda med native kod (sånt som inte är .NET utan rent Windows (Win32)).

OpenGL stödjs i C# av t.ex. Tao, http://sourceforge.net/projects/taoframework/, och för Direct3D kan man använda SlimDX, http://slimdx.org/.

Nätverk stöds lika bra i både Win32 (C++) och i .NET (C#), det är mest en smaksak vad man föredrar.

För båda grafikprogrammering och nätverksprogrammering så borde du kunna hitta bra information på nätet.

Över lag så tycker jag det brukar vara enklast att komma igång med ett språk eller en plattform om man har något enkelt projekt som man ska klara av. För dig skulle det kunna vara att få upp en roterande kub i ett fönster. Jag har för mig att det finns färdiga exempel som kommer med Tao som gör det, så att få igång det borde vara ett rimligt första steg.

Permalänk
Medlem

Som sagt, C# är nog lättare att komma igång med, men kan inte rekommendera att sätta igång med spel på en gång, det kan ta ett bra tag att lära sig grunderna i programmering samt språket först...

Permalänk
Medlem

#2&3 tack för era svar!
#3 Precis som jag sa skall jag försöka lära mig grunderna innan jag ger mig in på att göra små spel, kommer väll förmodligen börja med "Hello World"

Permalänk
Medlem

Du kommer inte ångra dig när du väl satt igång. Som en liten brasklapp så är både UDK och Unity väl anpassade för personer som aldrig kodat tidigare. Har man skrivit några rader JavaScript för webben tidigare har man en god start i Unity. Det är förstås bra att komma in i tänket innan, främst vad gäller optimeringar som är galet viktiga så fort man gör något som ska kunna köras på en mängd olika hårdvara.

Unity växer helatiden men är fortfarande en ung plattform, så vissa saker får man ha lite mer tålamod med, UDK är å andra sidan bättre optimerad och har fler funktioner och effekter. En intressant kommande möjlighet för Unity är att den kommer kunna bakas in i en Flash-spelare. PhysX + Flash, underbart!
Är man ensam utvecklare så bör man ha ganska bra koll på den grafiska biten om man väljer en färdig plattform att utgå från, eftersom det inte är fokus på programmeringen överlag.

Go for it, C# eller färdig plattform, beror mycket på vad du har för framtidsplaner. Lycka till med starten, de första veckorna är alltid jobbiga med nya språk men det lönar sig.

Visa signatur

i7 920 | 12GB DDR3 | GTX 480 | GA-X58A-UD7 | 160GB SSD X25-M G2 | 1TB F3 HD103SJ | W7 64-bit | Mac Mini
Webb: bluekitestudios.com

Permalänk
Medlem

#5 Tack för ditt svar! Är det inte bättre att skriva det i C# från början?

Permalänk
Medlem
Skrivet av Kuriden:

#5 Tack för ditt svar! Är det inte bättre att skriva det i C# från början?

Det beror väldigt mycket på vad du vill med din programmering i framtiden och hur du själv känner inför att bara knacka kod. Testa några kvällar att bygga hello world-grejer, kolla in if-satser, variabler, arrayer, for-loopar och till slut funktioner. De är oftast lätta att applicera på nya språk. Därefter skulle jag nog gått över till en färdig plattform för att slippa uppfinna hjulet igen om det är spel man vill utveckla.

Visa signatur

i7 920 | 12GB DDR3 | GTX 480 | GA-X58A-UD7 | 160GB SSD X25-M G2 | 1TB F3 HD103SJ | W7 64-bit | Mac Mini
Webb: bluekitestudios.com

Permalänk
Medlem

Du kan ju alltid ta en titt på XNA när du ändå är inne på C#.
JWalsh(Gamedev.net) har en workshop igång om du är intresserad.

http://www.gamedev.net/forum/145-xna-40-2011-workshop/

Krävs dock att du har förkunskaper i C# för att du ska komma någon vart.

Permalänk
Medlem

Nu skummade jag bara igenom lite, men om du är lite mer av en nybörjare och vill få en mjukstart på själva utvecklingsbiten och inte hantera pekare och andra roliga saker så finns det alternativa språk..

Java är ganska brett (men personligen hatar jag det), brukar fungera ganska bra.
Annars är Python suveränt för att lära sig och utvecklingen av applikationer går 100 gånger snabbare gent emot C++ så det kan bli roligare att lära sig programera spel via Python tack vare att du får en visuell feedback snabbt, notera att C# fortfarande är bättre och snabbare men om du är en person som lätt tröttnar om du inte får resultat realtivt snabbt så kör: Python + Pyglet (eller Pygame) alternativt Python + Panda3D för en färdig grafikmotor

Som sagt vet jag inte hur grym du är men,
IMO.. Python + Panda3D om du vill ha snabba resultat (inte nödvändigtvis dom bästa)

Permalänk
Medlem

Tog mig inte många lektionstillfällen i skolan innan jag hade programmerat ihop mitt första egna snake(dock i cmdfönstret, så såg ju ut som skit, men fungerade kanon).
Så är du hyfsat lättlärd så läs lite tutorials på c++ på nätet så ska du se att du kan börja med enklare spel in no time. när du känner att du har hyfsad koll på det så börja använda något som typ SDL eller liknande API. http://lazyfoo.net/SDL_tutorials/index.php skitbra tutorial för sdl(kan du göra grafiska 2D spel med)

lycka till och välkommen till spelmakeridjungeln

Visa signatur

Outtröttlig, löpartokig besserwisser!

Bli vegan! För djuren, planeten, hälsan och våra barns skull!

Permalänk
Medlem

När liknande frågor kommer upp brukar jag tipsa om gratis-boken Invent with python: http://inventwithpython.com/ Den börjar från grunden och är inriktad på spel-programmering så den bör passa utmärkt för dig. Med den lär du dig grunderna i programmeringsspråket python och spelprogrammering på samma gång (mot slutet kommer du ha kodat ett gäng olika enkla spel).

Python är ett skojigt språk att koda i, och passar utmärkt för nybörjare. (givetvis kan man köra resultatet även på windows)

Därmed inte sagt att varken C++ eller C# är dåliga val..

Permalänk
Hjälpsam

Eller för skoj skull, ta det ett steg längre i språkkunskaperna
http://lolcode.com/

HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE

Visa signatur

Allt jag säger/skriver här är mina egna åsikter och är inte relaterade till någon organisation eller arbetsgivare.

Jag är en Professionell Nörd - Mina unboxing och produkttester (Youtube)
Om du mot förmodan vill lyssna på mig - Galleri min 800D med 570 Phantom SLI

Permalänk
Medlem

Vad du bör göra är att lära dig grunderna i C#, sen bör du köra XNA för att programmera spel, enklast tycker jag.
Det är ingen stor skillnad mellan dom båda men XNA är ett kodbibliotek för C# som låter dig koda spel istället för applikationer.
Men grunderna för C# krävs eftersom båda blir enklast då eftersom båda kan använda C# som programmeringsspråk.

Googla runt lite och hitta den här sidan: www.youtube.com/user/pvjneji. Han grejar med både C# och XNA.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40