Permalänk
Medlem

Programmeringsspråk för spel?

Mitt mål är att en dag få jobb som spelprogrammerare, så jag tänkte att man får väl börja med att lära sig ett par programmeringsspråk först. Men vilka?

Vad jag läst mig till är det C++ som gäller för directx, stämmer det?

Är även tacksam för tips på bra böcker att läsa för någon som aldrig kodat innan. Helst på engelska då översättningen till svenska brukar förstöra dom flesta böcker.

När man väl lärt sig ett eller ett par språk måste man få någon slags certifiering först eller räcker det med en bra portfolio när man söker ett jobb?

Permalänk

Börja med att prova om programmering är din grej innan du bestämmer dig. Om det visar sig att du har "tänket" naturligt och viljan som krävs är det bara att köra. Annars får du försöka på någon annan del av spelskapande.

Permalänk
Medlem

Ett tips, börja koda istället för att fundera för mycket på portfolio, cert och liknande.. för att bli en duktig programmerare så krävs det att du lägger ner otroligt mycket tid på det så enkelt är det. Blir du tillräckligt duktig kommer det inte va nåt problem att hitta jobb. Det svåra är just att bli så duktig.

Det är mycket c++ i spelbranschen så det är bara att köra igång med det, sen skadar inte kunskaper i matte/fysik heller. Och det är inte bara "att lära sig ett par språk", tar som sagt lång tid att bemästra ett språk. Men jag skulle vilja säga att den riktiga utmaningen ligger i att lära sig programmering, inte i att lära sig ett språk. Nästan vem som helst kan plugga in syntax för ett språk, men långt ifrån alla kan bli duktiga programmerare.

När det gäller DirectX, det lätaste är nog att köra xna (.net). Så man är inte bunden till just c++ bara för att använda sig av directx..

Har inga konkreta förslag på böcker, det har dock diskuterats oändligt antal gånger på det här forumet så en enkel sökning kommer ge dig många förslag.

Visa signatur

EPoX 8RDA+, XP2500+, 2x256Mb PC3200 (DualCh), Club3D 9800PRO, Seagate 7200.7 160Gb 8Mb Limited edition

Permalänk
Medlem

Som alla andra säger så handlar det om att koda ganska mycket innan det kan tänkas bli något av en. Steget att "aldrig ha kodat" till att bli programmerare är hyfsat stort. Hoppas att du inte bara har tänkt dig den här karriären för att du gillar att spela datorspel, det är en stor skillnad mellan att spela dem och koda dem kan jag säga dig

I vilket fall, det du ska göra först är att gå igenom några enkla tutorials och känna efter om programmering är din grej. De större språken är så pass lika att det är skit samma vilket du börjar med. Om du börjar med c++ så tvingas du lära dig om minneshantering och om du börjar med C#/Java så kommer objekt att komma ganska automatiskt.

Du kan titta här: Hello World Tutorial (C#) och se om du förstår vad som händer. Kopiera ALDRIG kod under tiden du försöker lära dig, var rad kod som man skrivit är en rad närmre att bli en bra programmerare. Eller som min lärare en gång sa: "Skickligheten av en programmerare kan ofta mätas i hur många nollor kod han/hon har kommit upp i".

Funderat på att läsa lite kurser för att komma igång ordentligt? Finns både program och fristående kurser för programmering.

Certs är vad jag vet inte så häftiga i sverige, då är det bättre med en examen. Men en portfolio kan snabbt visa andra kodknackare vilken nivå du ligger på och är ett givet bevis på om du kan någonting. Så det är klart viktigt oavsett om man har en examen eller inte(För ett antal företag är det även ett krav att man visar upp något).

Permalänk
Medlem

Att det kommer ta lång tid att lära sig ordentligt och bli bra på det är jag mycket väl införstådd med, så tur är väl att man är arbetslös och har hela dagarna till det då

Kunskaper i matte och fysik har jag om de nu krävs.

Permalänk
Medlem

C++ är IMO ett mycket trevligt språk att jobba med, tror det är mest det och C som används i spelbranchen så det passar nog rätt bra. Nu har jag inte utvecklat något med directx själv, men för att vara mer specifik med mattekunskaper så brukar grundläggande linjär algebra vara väldigt användbart när man håller på med datorgrafik i allmännhet.

Tror man klarar sig rätt utan böcker om man kan googla och så, brukar vara otroligt enkelt att hitta hur man gör saker i de större språken sålänge man kan grunderna. Här finns lite nybörjartutorials:
C++ Language Tutorial

Lycka till!

Visa signatur
Permalänk
Medlem
Skrivet av Nordis:

Ett tips, börja koda istället för att fundera för mycket på portfolio, cert och liknande.. för att bli en duktig programmerare så krävs det att du lägger ner otroligt mycket tid på det så enkelt är det. Blir du tillräckligt duktig kommer det inte va nåt problem att hitta jobb. Det svåra är just att bli så duktig.

Är du en bra programmera och har inte någon som helst möjlighet att visa det (aka ingen portofolio ) så är det lika med noll ute på arbetsmarknaden. Du kommer inte få ett jobb oavsett hur mycket du söker. Då måste alltså kunna bevisa att du KAN. Ett certifikat är bland det bästa du kan fixa.

Men vist när man börjar ska man inte sikta mot det utan komma ler om det är sin grej, men är det de, så kan jag säga så här det absolut viktigaste du kan göra vid det tillfället är att skaffa en portofiilio eller ett antal certifikat annars är du totalt chanslös.

Mitt råd för dig om du ska börja är att börja med C# ( lättast att bli licensierad som programmerare och Microsoft licenserna väger upp MYCKET i arbetslivet.) eller Java inte lika lätt men möjligt och definitivt bättre val än C++.

Varför jag rekommenderar enbart dessa 2 språk är på grund av hur lika de just ÄR C++ så när du nu börjar få möjligheten att t.ex. få ett ett utvecklare jobb, att hoppa från C#/Java till C++ går ganska så fort.

Sedan ytligare tillägg när det gäller just spelutveckling, det är en bransch med väldigt få jobb egentligen, att komma in i branschen är ganska så svårt inte omöjligt men svår. Det krävs att du kan visa vad du går för vid det laget.

Är ditt mål dock att bli en indié utvecklare för små spel o.s.v. så rekomenderar jag C# / XNA rakt av till dig.

Visa signatur

Speldator: Ryzen 7800X3D, 64GB DDR5, RTX 3070
Server: i7-8700k, 32GB DDR4, RTX2080
Steam deck + de fiesta konsoller.

Permalänk
Medlem

Om du har möjlighet att söka till högskola eller universitet så kan du ju testa det. Det borde underlätta ( i alla fall ur min egen erfarenhet) om du vill lära dig programmering och du aldrig har testat riktigt förut. Det finns ju enstaka kurser du kan läsa eller längre program som inriktar sig mot programmering och t o m spelutveckling. Sedan kan du ju bestämma om du vill "specialisera" dig på ett visst programmeringsspråk.

Annars kan du ju som de andra säger säkert lära dig själv, men det kan ju vara enklare med lärare osv som hjälp/stöd för att lära sig något nytt. Men det viktiga är ju att man är motiverad, då kan man nog bli bra på det mesta.

Permalänk
Medlem
Skrivet av MugiMugi:

Är du en bra programmera och har inte någon som helst möjlighet att visa det (aka ingen portofolio ) så är det lika med noll ute på arbetsmarknaden. Du kommer inte få ett jobb oavsett hur mycket du söker. Då måste alltså kunna bevisa att du KAN. Ett certifikat är bland det bästa du kan fixa.

Men vist när man börjar ska man inte sikta mot det utan komma ler om det är sin grej, men är det de, så kan jag säga så här det absolut viktigaste du kan göra vid det tillfället är att skaffa en portofiilio eller ett antal certifikat annars är du totalt chanslös.

Mitt råd för dig om du ska börja är att börja med C# ( lättast att bli licensierad som programmerare och Microsoft licenserna väger upp MYCKET i arbetslivet.) eller Java inte lika lätt men möjligt och definitivt bättre val än C++.

Varför jag rekommenderar enbart dessa 2 språk är på grund av hur lika de just ÄR C++ så när du nu börjar få möjligheten att t.ex. få ett ett utvecklare jobb, att hoppa från C#/Java till C++ går ganska så fort.

Sedan ytligare tillägg när det gäller just spelutveckling, det är en bransch med väldigt få jobb egentligen, att komma in i branschen är ganska så svårt inte omöjligt men svår. Det krävs att du kan visa vad du går för vid det laget.

Är ditt mål dock att bli en indié utvecklare för små spel o.s.v. så rekomenderar jag C# / XNA rakt av till dig.

Varför citerade du mig när du ändå skrev precis samma sak som jag gjorde?

Bättre att börja programmera och ta reda på om det är nåt man vill satsa på innan man börjar fundera på cert/portfolio.. Det ligger ändå en bit in i framtiden för någon som aldrig hållit på med programmering sen tidigare!

Visa signatur

EPoX 8RDA+, XP2500+, 2x256Mb PC3200 (DualCh), Club3D 9800PRO, Seagate 7200.7 160Gb 8Mb Limited edition

Permalänk
Medlem

Jag kommer definitivt att söka till något program på högskola/universitet om jag kommer in i det lite först, vill kunna koda ett par program först för att lära sig baserna.
Tror jag börjar med C# som mugimugi tipsar om. Får ta och leta upp någon bra bok när jag ska in till stan på måndag.

Största skillnaden mellan C++ och C# är väl att i C++ har man manuell minneshantering?

Permalänk
Medlem
Skrivet av dozix:

Jag kommer definitivt att söka till något program på högskola/universitet om jag kommer in i det lite först, vill kunna koda ett par program först för att lära sig baserna.
Tror jag börjar med C# som mugimugi tipsar om. Får ta och leta upp någon bra bok när jag ska in till stan på måndag.

Största skillnaden mellan C++ och C# är väl att i C++ har man manuell minneshantering?

Och att man i C++ inte förlitar sig på ett gigantiskt API (på gott och ont), samt att C++ har templates (C# har istället generics, som är liknande men inte riktigt samma sak). Sedan är C# managed, vilket betyder att kompilatorn i princip genererar bytecode som du inte kan köra utan CLR-VMen (i stil med Java).

Permalänk
Medlem
Skrivet av dozix:

Största skillnaden mellan C++ och C# är väl att i C++ har man manuell minneshantering?

Underskatta inte skillnaderna mellan C++ och C#/Java. C++ är tillräckligt mycket "svårare" än C#/Java att det vore helt galet av en arbetsgivaren att anställa en "ren" C#/Java-utvecklare till ett C++ jobb. Manuell resurshantering (och pekare) är avsevärt svårare att bemästra än vad man tror, speciellt om produkten man arbetar på inte har väldigt strikta riktlinjer om hur det hela ska skötas.

Att sedan en icke insignifikant del av ett spel är mer eller mindre ren affärslogik och inte kräver C++ är en annan femma (m.a.o. inte kräver en riktig C++ utvecklare). Många (enklare) spel som inte har egenskrivna spelmotorer är t.ex. gjorda i C# istället. Men då tycker jag att man tappar mycket av charmen med att arbeta i spelbranchen också.

För övrigt måste jag stämma in i varningarna som har givits av andra före mig. Spelbranchen är en av dem sämre brancherna inom programmeringsvärlden att arbeta för. Du arbetar under (ibland mycket) hårdare tidspress och har lägre lön än andra av samma kaliber inom mer traditionella brancher.

Boktips? C++ Primer Plus av Stephen Prata när du väl plockar upp C++.

Visa signatur

"Nothing is impossible because impossible itself says I M Possible..."

Permalänk
Medlem

jag arbetar som programmerare , och är hyfsat ny , (universitetsexamen), mitt enda tips är att öva och öva och öva och öva. Även nu lägger jag ner ungefär 10-15h i veckan utöver mitt heltidsjobb , Att bli en programmerare är en livstil . Var bered på att offra många kvällar.
När du börjar känna dig lite bekväm, ta och lär dig XML.

angående välja programmeringspråk så ta det du känner dig mest motiverad att lära dig. När du väl kan ett objektorienterat språk så är det inte så svårt att gå över till någon annan.

hm, bokval C# for students , alt learn java international version (heter något liknande) dessa är ok nybörjarböcker.

Visa signatur

____________
snälla använd citat för att få snabbare svar.

Permalänk
Medlem
Skrivet av hanjou:

När du börjar känna dig lite bekväm, ta och lär dig XML.

Varför då? XML är 1) inget programmeringsspråk, 2) inte svårt att plocka upp när man behöver det, 3) sköts enklast med bibliotek i valfritt språk och 4) troligtvis inte relevant i sammanhanget. Jag kan inte se någon anledning till att TS skulle lära sig XML. Möjligtvis kan XPath och DOM vara saker att titta på i framtiden, men definitivt inte förrän det behövs.

Permalänk
Medlem

Ja, det är ganska mycket C++ som gäller för spelprogrammering, iallafall när man tittar på tekniksidan (spelmotorer etc). Rätt många spelmotorer har ett scriptspråk som t.ex. lua ovanpå för att skriva spellogiken, så det är ganska bra att lära sig ett par olika språk i olika paradigmer.

Det är dock rätt ofta man klipper ner C++ till ett "C med klasser" för att minska komplexitet och få mer kontroll på minneshanteringen bättre. Om du är sugen på att koda lågnivå-kod för spelmotorer så bör du nästan satsa på en stil som liknar embedded-programmering.

För att få jobb krävs egentligen bara en sak: att du är en bra programmerare och kan visa det. Visst kan utbildning hjälpa dig att bli bra, men det är ingen garanti. Bara att koda och göra projekt du kan visa upp.

Visa signatur

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

Permalänk
Medlem
Skrivet av jdv:

Det är dock rätt ofta man klipper ner C++ till ett "C med klasser" för att minska komplexitet och få mer kontroll på minneshanteringen bättre. Om du är sugen på att koda lågnivå-kod för spelmotorer så bör du nästan satsa på en stil som liknar embedded-programmering.

En annan sak som helt klart kan vara värt att ha koll på är template metaprogramming; när det ska optimeras så är det en väg man kan gå. Till exempel så har OTTDs pathfinder skrivits med denna metod, vilket gjort den avsevärt snabbare.

Permalänk
Medlem

Hur ligger då Python till?

Visa signatur

-Gaming: | NZXT Lexa S | Core i5 750 @ 3 GHz | XFX 5850 xXx | Asus P7P55D EVO | Corsair Dominator 4GB | NH-D14 | WD Caviar Black 750GB
-Programmering/grafiskt: | MacBook Pro 13.3" | SSD 128GB | Ubuntu 8.10

Permalänk
Medlem
Skrivet av J3H:

Hur ligger då Python till?

Enda kända spel jag känner till som är skrivet i python är eve online, som kör med stackless python 3.7.

Permalänk
Medlem

Ok, men är inte det helt ok?

Visa signatur

-Gaming: | NZXT Lexa S | Core i5 750 @ 3 GHz | XFX 5850 xXx | Asus P7P55D EVO | Corsair Dominator 4GB | NH-D14 | WD Caviar Black 750GB
-Programmering/grafiskt: | MacBook Pro 13.3" | SSD 128GB | Ubuntu 8.10

Permalänk
Medlem

EVE kör delar av sin server i stackless python, men ingenting på klienten vad jag förstått.

Vill man koda spel kan man göra det i vad som helst nästan, finns mycket hobbyspel och en del större saker kodade i python. Snabbt och enkelt att få igång något och lätt att utveckla i. Sedan är pyhon säkert vanligt i byggpipan för många spel. Som scriptande av byggsystem och liknande.

Visa signatur

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

Permalänk
Medlem

Jag skrev själv ett spel i python så sent som igår och tycker lätt det är det roligaste språket att skriva hobby-spel i. Men om du vill få jobb som programmerare på ett företag som gör storspel, tex DICE, Starbreeze eller Avalanche är det C++ du behöver kunna i 99% av fallen. Även CCPGames (dom bakom Eve Online) har fler annonser efter C++-programmerare, och i varje annons där python är med är även C++ med.

Därmed inte sagt att det inte kan vara en bra idé att börja lära sig programmera med python i vilket fall, det är inte på något sätt bortkastad kunskap även om du senare lär dig C++ och börjar jobba på DICE. Jag har i andra trådar tipsat om gratis-boken Invent with Python, som går igenom från början hur man gör spel med python om du är intresserad av python-spåret.

Angående certifieringar så har jag aldrig hört talas om några som är relevanta för spelutvecklare. För att få ett "vanligt" programmerar-jobb kanske dom däremot kan vara bra eftersom företaget som anställer kan ha nytta av certifieringar, tex om du jobbar som konsult vill en del kunder ha x% certifierade konsulter och liknande.

Dock kan jag inte säga att dom ger speciellt mycket i kunskapsväg, iaf dom lägre verkar främst handla om att lära sånt som en någorlunda skicklig utvecklare kan googla fram utantill. (Jag har själv bara tagit grund-C#, så det är möjligt att det blir bättre när man har en 4-5 st, men då kan man iof argumentera för att det är löjligt att man ska behöva göra massa onödiga cert för att få chans att ta ett som betyder något). Om jag skulle intervjua för mitt jobb skulle jag värdera nästan allt annat högre än eventuella certifieringar...

Permalänk
Medlem

Ok, för jag har precis börjat gymnasiet och där så lär vi oss Python men hur svårt är det att gå över från Python till C++ senare, t.ex. när jag börjar högskolan?

Visa signatur

-Gaming: | NZXT Lexa S | Core i5 750 @ 3 GHz | XFX 5850 xXx | Asus P7P55D EVO | Corsair Dominator 4GB | NH-D14 | WD Caviar Black 750GB
-Programmering/grafiskt: | MacBook Pro 13.3" | SSD 128GB | Ubuntu 8.10

Permalänk
Medlem
Skrivet av J3H:

Ok, för jag har precis börjat gymnasiet och där så lär vi oss Python men hur svårt är det att gå över från Python till C++ senare, t.ex. när jag börjar högskolan?

Så länge du har fått in tänket så är det inte svårt att gå från ett imperativt språk till ett annat – det du måste "lära" dig när du går från Python till C++ är främst dessa saker:

  • Syntax — C++ (och andra C-baserade språk) har ett helt annat syntax, som är ganska olikt Python

  • Statisk typning — C++ är, till skillnad från Python, statiskt typat. Detta betyder att kompilatorn måste veta vilken typ varje variabel (och funktion) har. I Python, som är dynamiskt typat, är det värdena som har typer, medan det i C++ är variablerna.

  • Minneshantering — i C++ måste du sköta all minneshantering själv. Du måste allokera och deallokera (även om det är implicit) själv, och det finns ingen GC som rensar upp när du gör fel.

Permalänk
Medlem
Skrivet av You:

Varför då? XML är 1) inget programmeringsspråk, 2) inte svårt att plocka upp när man behöver det, 3) sköts enklast med bibliotek i valfritt språk och 4) troligtvis inte relevant i sammanhanget. Jag kan inte se någon anledning till att TS skulle lära sig XML. Möjligtvis kan XPath och DOM vara saker att titta på i framtiden, men definitivt inte förrän det behövs.

ber så hemskt mycket om ursäkt jag var väldigt trött när jag skrev i tråden. utan menade UML.

Visa signatur

____________
snälla använd citat för att få snabbare svar.

Permalänk
Medlem

Som #23 skrev. Om man har lärt sig datastrukturer så är övergången mellan språk inte så svårt. Jag läser spelprogrammering på BTH andra året och vi läste enbart C++ första året gjorde en del spel. Under sommaren så blev det en del programmering i Flash för att kunna göra några snabba spel och nå ut till en stor publik. I och med AS3 så kan man programmera OO i Flash och då var det enbart att lära sig flashs egna klasser och bibliotek. Att programmera spel helt själv är dock inte en trevlig historia hela tiden. Man kan koda en jätte bra kod men i avsaknad av den mer kreativa sidan så blir det att låna grafiken om man inte känner en grafiker. I flash kan man dock göra rätt okej grafik med vectorgrafik.

Programmering = problemlösning. Har man inte det lilla extra så blir det jobbigare att programmera.