Spelprogrammering

Allt om hård- och mjukvara samt övriga it-relaterade diskussioner.

 Moderatorer: Alien, atoms

Spelprogrammering

Inläggav passanger » 2012-07-10 8:14:41

Tänkte det skulle behövas en spelprogrammeringstråd.
Lite tips och tricks. Era erfarenheter. Vilka programmeringsspråk?
Vilka fysikmotorer, egna?
Allt inom ramen för ämnet.
Själv är jag ganska grön även om jag programmerat en hel del så har jag mycket att utforska inom spel..
passanger
 
Inlägg: 31
Anslöt: 2011-12-10

Re: Spelprogrammering

Inläggav DIProgan » 2012-07-16 20:52:43

Jag har fått mest gjort med Unity 3D. Ämnet är ju så humongous så man vet knappt vart man ska börja o snacka om det.
DIProgan
 
Inlägg: 4558
Anslöt: 2008-10-14

Re: Spelprogrammering

Inläggav Deadly_Nightshade » 2012-08-04 0:19:43

Vill först och främst säga att jag är ingen programmerare - men jag är spelutvecklare (3D-grafiker) och har bekanta som jobbar med 3D-motor -programmering. Har också gått i skola med dessa typer av människor.

För det andra: Programmering är ett ENORMT stort område - och spelprogrammering likaså. Att bygga ihop ett spel som t.ex. Crysis 2 kan nästan jämställas med att bygga en rymdfärja: det krävs grymt mycket expertis och lead programmerare inom flera olika programmeringsområden: fysik, nätverk, rendering, multiplayer, m.m. Inledningsvis så är det bra att du försöker bekanta dig med grunderna i alla dessa koncept (krävs om du ska utveckla indiespel t.ex.) men senare så måste du välja en inriktning: det finns för mycket att lära helt enkelt.

Språk: C++ lägger jag min röst på. Java kan visserligen vara ett bra språk om du är en fullständig nybörjare eller om du vill jobba med uteslutande web-programmering. Men C++ är så pass mångsidigt och eftertraktat av arbetsmarknaden att jag tycker språket lätt "är bäst".

Fysikmotorer: Du kodar varken en fysikmotor eller en grafikmotor utan att ha jävligt mycket erfarenhet. Här snackar vi 3 till 5+ års erfarenhet som 3D-motorprogrammerare eller liknande. Du SKA ha erfarenhet eller vara ett geni - helst bäggedera. När jag jobbade på Avalanche Studios så lade jag märke till att alla i engine-gruppen (dvs de som jobbar med att utveckla grafikmotorn - och det var ett par 8-10 stycken, kanske fler) var alla jävligt smarta, duktiga och med många års erfarenhet. Det var dom som alla andra programmerare vände sig till när de hade problem med annat (nätverk, fysik, programmera split-screen m.m.) - även de med 5+ års erfarenhet sökte hjälp hos dom. Mitt intryck av dem var att de alla var fanatiska när det gällde programmering: riktigt duktiga människor allihop. Men inte ens Avalanche har sin egen fysikmotor utan de kör med HAVOK. Spelen Just Cause och Just Cause 2 har HAVOK som fysikmotor.

What else? Gå en utbildning. Spelar ingen roll hur duktig och självlärd du är - du kommer ha svårt att få jobb om du inte är en ingenjör eller ha gått en högskole eller yrkesinriktad högskoleutbildning (KY/YH) med fokus på just 3D-motor -programmering.

Och sist men inte minst: Räkna med att du måste lära dig en hel del matte om du inte redan kan en massa: Linjär algebra (vektorer, matriser), geometri, trigonometri, kombinatorik, topologi, differentialekvationer. Speciellt linjär algebra är superviktigt: du kommer ingenstans utan att kunna med det området.
Deadly_Nightshade
 
Inlägg: 881
Anslöt: 2009-07-03
Ort: Stockholm

Re: Spelprogrammering

Inläggav Miche » 2012-08-04 0:45:21

Dock kan man ju skriva jävligt enkla spel utan alla dessa kunskaper, men ju mer man kan desto roligare blir det (oftast).
Miche
 
Inlägg: 28797
Anslöt: 2009-01-08
Ort: Karlholmsbruk

Spelprogrammering

Inläggav Pieohpah » 2012-08-04 10:19:33

Det finns ju mycket klart också. Man måste inte uppfinna alla hjul, särskilt om man gör något själv, utan ett team.

Jag har programmerat C/C++ i mer än 15 år och håller nog på det som grundspråk till spel även om delar mycket väl kan behöva skrivas i assembler.

Om du inte har så mycket erfarenhet och vill komma långt snabbt satsa på Java.

Jag har även programmerat objective-c för bl.a. iPhone... Men det är först nu det börjar kännas lite flytande.

Spelprogrammering kan vara hyggligt lätt till det svåraste som går att programmera. Lägg ribban lagom och räkna med ett par års inlärningtid.
Pieohpah
 
Inlägg: 1150
Anslöt: 2012-01-05
Ort: Stockholm

Re: Spelprogrammering

Inläggav Miche » 2012-08-04 10:35:45

Man brukar ju säga att för att bli riktigt duktig på något så måste man träna 10000 timmar, med en 40-timmars arbetsvecka och semester så är det drygt fem år, håller man på även på fritid, helger och under semester kan man komma ner till omkring två år men då måste man träna hela sin vakna tid.
Miche
 
Inlägg: 28797
Anslöt: 2009-01-08
Ort: Karlholmsbruk

Re: Spelprogrammering

Inläggav passanger » 2012-08-26 23:12:38

Är högskoleutbildad programmerare med ett antal år i branschen.
Jag gör inte så mycket annat än att programmera på arbetstid och fritid.

Dock är spelprogrammering ett relativt outforskat område för mig.
Har börjat gräva mig ner i OpenGL.
Men tack för tipsförsöken.
passanger
 
Inlägg: 31
Anslöt: 2011-12-10

Spelprogrammering

Inläggav Miche » 2014-10-10 10:41:35

Gratis utbildning i speldesign på MIT kan väl vara intressant, se här!
Miche
 
Inlägg: 28797
Anslöt: 2009-01-08
Ort: Karlholmsbruk

Spelprogrammering

Inläggav plåtmonster » 2014-10-10 12:48:57

C + OpenGL är inte så dumt det heller. Håller dock med Deadly_Nightshade om matten.

Vad vinner man på Java annars som inte C fixar? (eller möjligtvis C++)
plåtmonster
 
Inlägg: 15480
Anslöt: 2010-03-23
Ort: Nära havet

Spelprogrammering

Inläggav nescio » 2014-10-10 13:45:59

Om man bortser från 3D och gör ett 2D-brädspel (t ex luffarschack) blir det inte så svårt.
nescio
 
Inlägg: 3839
Anslöt: 2009-03-12
Ort: En liten röd stuga.

Spelprogrammering

Inläggav DIProgan » 2014-10-14 12:56:42

Att göra spel med 3D i fokus är alldeles för omständigt. Det mest roliga händer i vilket fall i 2D där faktiskt nya idéer fortfarande frodas inte bara oerhörda mängder jobb för att skapa ännu en sandlåda av samma sorts spel som sett dagens ljus tusen gånger förr.
DIProgan
 
Inlägg: 4558
Anslöt: 2008-10-14

Spelprogrammering

Inläggav NIF » 2014-10-14 13:40:49

plåtmonster skrev:Vad vinner man på Java annars som inte C fixar? (eller möjligtvis C++)


Den stora skillnaden språken emellan är minneshanteringen. I Java har man en skräphanterare som automatiskt tar bort object från minnet när de inte längre används vilket inte händer i C++ där du måste sköta minneshanteringen själv.

Dock är det inte lika effektivt att ha en skräphanterare som hela tiden ligger i bakgrunden och gnager på.

Sen är väl allting call by value i Java om jag inte minns fel?...

Men för att kortfatta det så är väl Java bra om man vill prova på en snabb spelidé.
NIF
 
Inlägg: 160
Anslöt: 2010-09-15
Ort: Karlskrona

Spelprogrammering

Inläggav plåtmonster » 2014-10-14 17:37:39

Eller så ser man till att hålla ordning på de objekt man allokerar. Garbage-collect är i stort sett en dödsynd i realtidssystem.
plåtmonster
 
Inlägg: 15480
Anslöt: 2010-03-23
Ort: Nära havet

Spelprogrammering

Inläggav Miche » 2014-10-14 20:26:05

plåtmonster skrev:Eller så ser man till att hålla ordning på de objekt man allokerar.
Så svårt är det ju faktiskt inte.
Miche
 
Inlägg: 28797
Anslöt: 2009-01-08
Ort: Karlholmsbruk

Spelprogrammering

Inläggav NIF » 2014-10-14 23:26:50

plåtmonster skrev:Eller så ser man till att hålla ordning på de objekt man allokerar. Garbage-collect är i stort sett en dödsynd i realtidssystem.


Och det förutsätter att man vet om minneshantering vilket alla inte gör. För en grön kille som aldrig programmerat förut och vill prova på att göra spel för skojs skull så är inte korrekt minnesallokering det mest relevanta.
NIF
 
Inlägg: 160
Anslöt: 2010-09-15
Ort: Karlskrona

Spelprogrammering

Inläggav spejare » 2014-10-16 0:27:57

Jag tycker att alla ovanstående har rätt på sitt sätt, men ämnet är alldeles för brett för att man ska kunna säga det ÄR på det ena eller andra sättet. Vilket är bäst, shorts eller dunjacka? Lägg ner istället för att bli osams. :)

Om man är grön och nyfiken så är webbläsaren en svåröverträffad plattform i termer av låg tröskel, i min högst ödmjuka åsikt, och med typ 100% räckvidd som bonus.
spejare
 
Inlägg: 95
Anslöt: 2013-07-07

Spelprogrammering

Inläggav notwoodstock » 2014-10-16 4:48:23

Varför göra samma sak som alla andra är lockade av?

Förr så skulle alla nödvändigtvis skriva egen text editor...

Jag misstänker att supersuperproffsen äger spelbranchen ändå.

Tillstår dock att det var 25 år sedan jag gjorde något vettigt inom området. Är lyckligtvis inte i avsaknad av det - livet har ju olika faser, och det tar ändå sådan tid att koda något vettigt. - Fast kanske inte objektorienterat. :-)Happy

Jag är också/därför imponerad av hur mycket Appar som vräks ut som det är.

:shock: :-)173 :-)154
notwoodstock
 
Inlägg: 3924
Anslöt: 2013-12-22
Ort: Stockholm

Spelprogrammering

Inläggav Miche » 2014-10-16 10:08:41

notwoodstock skrev:Jag misstänker att supersuperproffsen äger spelbranchen ändå.
Nja, både Angry Birds och Minecraft (säkert en handfull till) kom från ingenstans och blev riktigt stora. Sen de smarta telefonerna kom så har spelvärlden vänts upp och ner i mångt och mycket.
Miche
 
Inlägg: 28797
Anslöt: 2009-01-08
Ort: Karlholmsbruk

Spelprogrammering

Inläggav manne » 2014-10-16 10:48:50

Deadly_Nightshade skrev:Vill först och främst säga att jag är ingen programmerare - men jag är spelutvecklare (3D-grafiker) och har bekanta som jobbar med 3D-motor -programmering. Har också gått i skola med dessa typer av människor.

För det andra: Programmering är ett ENORMT stort område - och spelprogrammering likaså. Att bygga ihop ett spel som t.ex. Crysis 2 kan nästan jämställas med att bygga en rymdfärja: det krävs grymt mycket expertis och lead programmerare inom flera olika programmeringsområden: fysik, nätverk, rendering, multiplayer, m.m. Inledningsvis så är det bra att du försöker bekanta dig med grunderna i alla dessa koncept (krävs om du ska utveckla indiespel t.ex.) men senare så måste du välja en inriktning: det finns för mycket att lära helt enkelt.

Språk: C++ lägger jag min röst på. Java kan visserligen vara ett bra språk om du är en fullständig nybörjare eller om du vill jobba med uteslutande web-programmering. Men C++ är så pass mångsidigt och eftertraktat av arbetsmarknaden att jag tycker språket lätt "är bäst".

Fysikmotorer: Du kodar varken en fysikmotor eller en grafikmotor utan att ha jävligt mycket erfarenhet. Här snackar vi 3 till 5+ års erfarenhet som 3D-motorprogrammerare eller liknande. Du SKA ha erfarenhet eller vara ett geni - helst bäggedera. När jag jobbade på Avalanche Studios så lade jag märke till att alla i engine-gruppen (dvs de som jobbar med att utveckla grafikmotorn - och det var ett par 8-10 stycken, kanske fler) var alla jävligt smarta, duktiga och med många års erfarenhet. Det var dom som alla andra programmerare vände sig till när de hade problem med annat (nätverk, fysik, programmera split-screen m.m.) - även de med 5+ års erfarenhet sökte hjälp hos dom. Mitt intryck av dem var att de alla var fanatiska när det gällde programmering: riktigt duktiga människor allihop. Men inte ens Avalanche har sin egen fysikmotor utan de kör med HAVOK. Spelen Just Cause och Just Cause 2 har HAVOK som fysikmotor.

What else? Gå en utbildning. Spelar ingen roll hur duktig och självlärd du är - du kommer ha svårt att få jobb om du inte är en ingenjör eller ha gått en högskole eller yrkesinriktad högskoleutbildning (KY/YH) med fokus på just 3D-motor -programmering.

Och sist men inte minst: Räkna med att du måste lära dig en hel del matte om du inte redan kan en massa: Linjär algebra (vektorer, matriser), geometri, trigonometri, kombinatorik, topologi, differentialekvationer. Speciellt linjär algebra är superviktigt: du kommer ingenstans utan att kunna med det området.


vilak spel har du varit med och gjort då. :?:
manne
 
Inlägg: 18560
Anslöt: 2007-08-23

Spelprogrammering

Inläggav DIProgan » 2014-10-16 12:33:57

Miche skrev:
notwoodstock skrev:Jag misstänker att supersuperproffsen äger spelbranchen ändå.
Nja, både Angry Birds och Minecraft (säkert en handfull till) kom från ingenstans och blev riktigt stora. Sen de smarta telefonerna kom så har spelvärlden vänts upp och ner i mångt och mycket.
Skönt att se att bra idéer fortfarande har en plats så som Minecraft. Tyvärr förstör gratisspelen allt mer spelmarknaden när de bara går ut på att få folk beroende och kontinuerligt betalandes för något som förr faktiskt handlade om underhållning och hjärngympa inte att extrahera mesta möjliga ur zombifierade spelare.
DIProgan
 
Inlägg: 4558
Anslöt: 2008-10-14

Spelprogrammering

Inläggav notwoodstock » 2014-10-16 13:01:58

Miche skrev:
notwoodstock skrev:Jag misstänker att supersuperproffsen äger spelbranchen ändå.
Nja, både Angry Birds och Minecraft (säkert en handfull till) kom från ingenstans och blev riktigt stora. Sen de smarta telefonerna kom så har spelvärlden vänts upp och ner i mångt och mycket.


Jag menar att programmerarna är supersuperproffs - inte företagen. Den nivån känner jag inte till.
notwoodstock
 
Inlägg: 3924
Anslöt: 2013-12-22
Ort: Stockholm

Spelprogrammering

Inläggav NIF » 2014-10-17 12:52:17

DIProgan skrev:Skönt att se att bra idéer fortfarande har en plats så som Minecraft. Tyvärr förstör gratisspelen allt mer spelmarknaden när de bara går ut på att få folk beroende och kontinuerligt betalandes för något som förr faktiskt handlade om underhållning och hjärngympa inte att extrahera mesta möjliga ur zombifierade spelare.


Det är mer eller mindre bara MMORPGna och mobilspel som kör med kontinuerligt betalande.
NIF
 
Inlägg: 160
Anslöt: 2010-09-15
Ort: Karlskrona

Spelprogrammering

Inläggav Miche » 2014-10-17 13:19:34

Det finns en hel del bra mobilspel där man kan betala för att komma fortare fram men som funkar alldeles utmärkt utan att betala en enda krona. Hay Day är ett bra sådant spel.
Miche
 
Inlägg: 28797
Anslöt: 2009-01-08
Ort: Karlholmsbruk

Spelprogrammering

Inläggav DIProgan » 2014-10-17 22:26:39

Miche skrev:Det finns en hel del bra mobilspel där man kan betala för att komma fortare fram men som funkar alldeles utmärkt utan att betala en enda krona. Hay Day är ett bra sådant spel.

Ehm om du tycker Hay Day är ett bra spel är du redan zombifierad.

NIF skrev:Det är mer eller mindre bara MMORPGna och mobilspel som kör med kontinuerligt betalande.
...och som står för en allt större del av marknaden tillsammans med Facebook spel. Det andra spel gör liknande är att de släpps ofärdiga och drar extra pengar på DLC's istället för att ge funktionerna som skulle funnits från början. Inte lika jävligt men det fanns en tid då spel inte var så exploaterat av pengahungriga kapitalister.
DIProgan
 
Inlägg: 4558
Anslöt: 2008-10-14

Återgå till IT-forum



Logga in