Permalänk
Medlem

Spelprogrammering

Hej! Jag och en kompis har pratat om att börja med någon form av programmering, för att sedan komma vidare till spel. Har endast erfarenheter av HTML och css..
Vad ska man satsa på för språk? Programtips, allmänna tips? Vad ska man använda för att göra spelgrafik? Tack på förhand

Skickades från m.sweclockers.com

Permalänk
Avstängd

Hade ni tänkt er spel till Windows (och/eller xbox-live, windows phone och zune) så skulle jag rekommendera C#, eller XNA som MS plattform kallas. Det finns en massa tutorials online och utvecklingsmiljön är både bra och gratis. C# påminner en hel del om Java så om du tänkt att plugga det senare så har du en del fördelar.

Kolla nedanstående länkar:
http://msdn.microsoft.com/en-us/library/bb200104
http://www.xnadevelopment.com/tutorials.shtml
http://www.xnatutorial.com/

Permalänk
Medlem

Jag skulle rekommendera Python. Lätt språk att lära sig, och man kan få mycket gjort på kort tid. Om ni senare vill göra spel kan ni använda http://www.panda3d.org/ som är en spelmotor till Python som också den är lätt att använda.

Se även #12293197 och http://norvig.com/21-days.html

Permalänk
Medlem

Jag föreslår att ni börjar med denna gratisbok: http://inventwithpython.com/

Permalänk
Medlem

Beror på vad inom spel ni är sugna på, om det är att göra sjävla 3d-motorn själv osv eller om ni vill bara använda nån färdig motor och göra spellogiken bara:
Småspel för mobil osv: Java / C# / Python
Mestadels spel-logik för PC-spel: C# XNA / C++
Riktig spelprogrammering där ni gör 3d-biten själva: C++

Jag började själv med att lära mig C++ på gymnasiet och började använda en gratis 3D-motor som heter Irrlicht. Dom har tuturials osv för att komma igång. Gjorde mitt första TD-spel i den motorn, funnkade riktigt bra Microsoft Visual Studios 2010 är det du vill använda om du använder C# / C++, hands down den bästa IDE'n (programmerings-program) som finns.

Permalänk

Ja må låta gammalmodig nu(?) men Java?

Visa signatur

Palit RTX 3060 Ti | Ryzen 7 7800X3D | Gigabyte B650M DS3H | 32GB Vengeance 5600 MHz CL36

Permalänk
Medlem

Börja inte med C++. Rekommenderar att ni börjar med Python. Kör sedan på C# eller Java när ni känner för nåt seriösare. Först när ni börjar bli riktigt vana kan ni gå över till C++, och dessutom passa på att lära er skriptspråk som Lua.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av Snacker:

Börja inte med C++. Rekommenderar att ni börjar med Python. Kör sedan på C# eller Java när ni känner för nåt seriösare. Först när ni börjar bli riktigt vana kan ni gå över till C++, och dessutom passa på att lära er skriptspråk som Lua.

Skickades från m.sweclockers.com

Det låter på dig som att C++ är ett mål, mot vilket alla seriösa programmerare strävar. Men så är det inte.

Permalänk
Medlem

Python är helt ok att börja med men det är inget fel med att börja med C++, det viktiga är inte vilket språk ni kör utan att lära er förstå hur programmering i grunden funkar och det är nästan universalt bland de vanliga språken.
Alla lär sig olika men några tips att plugga innan man faktiskt går på programmering, speciellt om man vill programmera spel, är vad det faktiskt betyder med t.ex. object-oriented, lär er förstå i stora drag hur en line av kod går genom datorn och t.ex. blir en pixel i en 3D bild, hur ljud skapas osv, dessa mer abstrakta grejer är ofta det som får folk att stirra sig blinda på

#include <iostream> int main() { std::cout << "Hello World!" << std::endl; return 0; }

och den lilla svarta rutan som spottar ut "Hello World!" och sedan tänker, hur fan ska detta kunna bli det nya BF3? och kliar sig i skallen och ger upp, men om man lär sig förstå förhållandena och hur den text man skriver blir till ettor och nollor och hur de används för att sedan generera en bild osv.

När ni sedan börjat fatta och sedan ger er på att koda lite finns det ett antal bra böcker där ute
Beginning Java Game Programming (nybörjar nivå)
Programming Game AI by Example (hög nybörjare/medel nivå)
Game Physics: Engine Development (medel +)

För 3D så funkar många böcker men pga att böcker är sega på att komma ut och tekniken går snabbt fram är nätet ofta lika bra eller bättre för att lära sig 3D men en bok kan hjälpa en förstå lite bättre, Beginning OpenGL Game Programming är inte bästa boken i världen och inte nyaste men hjälper till att förklara det mesta grundläggande ganska bra för att sedan kunna bygga vidare på.

Sedan för mycket med spel som fysik, 3d osv så ha formelsamling och borsta av matte kunskaperna och skaffa er nya för de kommer underlätta för er att få ut det ni vill.

Angående språk så spelar inte så stor roll, man lär sig språk lättare när man har principerna i grunden och sedan kan man anpassa efter behov vilket språk man använder.

När det kommer till program och liknande, det är lättare att avgöra sedan när ni vet era begränsningar och vad det är ni faktiskt vill göra, finns många bra motorer och annat där ute men bara för att grovjobbet är gjort är det inte klippa och klistra ;P

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Medlem

Om du seriöst vill lära dej programmera spel, så måste du först lära dej ett programmeringsspråk riktigt bra.
Spelprogrammering och spelutveckling är en av de svåraste sakerna att göra inom programmering, det är inte som att koda konsoll fönster eller GUI, så förvänta dej inte kunna utveckla ett nytt Minecraft efter ett par månader.

Här har du ett youtube clip, en serie på 3 delar, där kraven nämns ganska bra:

Själv rekomenderar jag att använda dig av ett språk du finner passar dej bra.
Själv tycker jag C# är riktigt bra, då med att använda Visual Studio eller Visual C# express, då dess intellisense kommer hjälpa och underlätta för dej regält.
Annars anser jag att C++ är ett bra språk för nybörjare, då man lär sej mycket med minneshantering, strukturell programmering och övergång till objektorienterad. Nyare språk har automatisk minneshantering, men att lära sej grunderna underlättar, och om du lär dej C++, är C inte så långt borta.

Men, lär dej ett språk du tycker passar dej bra. Alla programmeringsspråk (eller de allra flesta) kan man utveckla spel med. Sen finns det industristandarder för spelprogrammering, så som C++.

Permalänk
Medlem
Skrivet av tufflax:

Det låter på dig som att C++ är ett mål, mot vilket alla seriösa programmerare strävar. Men så är det inte.

Inom spel-programmering är det så såvida man inte nöjer sig med att göra web-spel / mobil-spel. Mindre seriösa programmerare klarar sig dock på C# / Java / Python.

Permalänk
Medlem
Skrivet av MaloW:

Inom spel-programmering är det så såvida man inte nöjer sig med att göra web-spel / mobil-spel. Mindre seriösa programmerare klarar sig dock på C# / Java / Python.

Jag vet inte vad C++ gjorde mot tufflax när han var liten, men du vill nog vara lite försiktig med att använda termen seriös programmerare. Lyckligtvis vill vi inte alla arbeta med samma sak, och till och med inom spel-branchen finner nog många web- och mobil-spel mer intressant eller belönande än att göra "nästa BF3" som man visst brukar säga.

Visa signatur

"Some poor, phoneless fool is probably sitting next to a waterfall somewhere, totally unaware of how angry and scared he's supposed to be." - Duncan Trussell

Permalänk
Medlem
Skrivet av gibbon_:

Jag vet inte vad C++ gjorde mot tufflax när han var liten, men du vill nog vara lite försiktig med att använda termen seriös programmerare. Lyckligtvis vill vi inte alla arbeta med samma sak, och till och med inom spel-branchen finner nog många web- och mobil-spel mer intressant eller belönande än att göra "nästa BF3" som man visst brukar säga.

Asså, hur man ens kan titta på C++-kod utan att att må illa är en gåta för mig.

Ett relevant citat: [keeping somebody] from using C++ makes me feel like I saved a life

Och andra citat från en del kända programmerare: http://harmful.cat-v.org/software/c++/ och http://harmful.cat-v.org/software/OO_programming/

Jag vet att citat kanske inte är det bästa för att övertyga, men ta en titt på http://yosefk.com/c++fqa/defective.html.

Permalänk
Medlem
Skrivet av tufflax:

Asså, hur man ens kan titta på C++-kod utan att att må illa är en gåta för mig.

Ett relevant citat: [keeping somebody] from using C++ makes me feel like I saved a life

Och andra citat från en del kända programmerare: http://harmful.cat-v.org/software/c++/ och http://harmful.cat-v.org/software/OO_programming/

Jag vet att citat kanske inte är det bästa för att övertyga, men ta en titt på http://yosefk.com/c++fqa/defective.html.

Det du och flera av de du hänvisar till missar är att programmerings-språk för många bara är verktyg, inte självändamål. Vissa är förlåtande, andra inte. Vissa passar en typ av utveckling, andra en annan typ. Det är lätt att peka ut ett språks alla brister, men det gör inte alternativen bättre anpassade för ens domän.

Varför du slänger in OO vet jag inte. Men visst, det har varit lite av ett buzz-word rätt länge nu, och är såklart grovt överskattat.. (men det gör inte OO till något rakt igenom dåligt heller)

http://en.wikipedia.org/wiki/Argument_from_authority

Visa signatur

"Some poor, phoneless fool is probably sitting next to a waterfall somewhere, totally unaware of how angry and scared he's supposed to be." - Duncan Trussell

Permalänk
Medlem
Skrivet av gibbon_:

Det du och flera av de du hänvisar till missar är att programmerings-språk för många bara är verktyg, inte självändamål. Vissa är förlåtande, andra inte. Vissa passar en typ av utveckling, andra en annan typ. Det är lätt att peka ut ett språks alla brister, men det gör inte alternativen bättre anpassade för ens domän.

Varför du slänger in OO vet jag inte. Men visst, det har varit lite av ett buzz-word rätt länge nu, och är såklart grovt överskattat.. (men det gör inte OO till något rakt igenom dåligt heller)

http://en.wikipedia.org/wiki/Argument_from_authority

Ja, och som verktyg är C++ dåligt. Det är onödigt komplicerat och tilllåter en inte att uttrycka sig på ett direkt, icke-omständigt, sätt.

Permalänk
Medlem
Skrivet av tufflax:

Ja, och som verktyg är C++ dåligt. Det är onödigt komplicerat och tilllåter en inte att uttrycka sig på ett direkt, icke-omständigt, sätt.

Skrivet av tufflax:

Asså, hur man ens kan titta på C++-kod utan att att må illa är en gåta för mig.

Ett relevant citat: [keeping somebody] from using C++ makes me feel like I saved a life

Och andra citat från en del kända programmerare: http://harmful.cat-v.org/software/c++/ och http://harmful.cat-v.org/software/OO_programming/

Jag vet att citat kanske inte är det bästa för att övertyga, men ta en titt på http://yosefk.com/c++fqa/defective.html.

Haha jag känner tvärtom, C++ och delvis C# är dom ända språken som jag känner att jag kan vara riktigt produktiv i. Allting känns bara så logiskt och rätt i C++. Jag kan hålla med om att lärningskurvan är lite tyngre, och att man måste göra mycket själv, men när man gjort det! Åh vad underbart det är att programmera i C++ då. Efter att du jobbat med C++ ett tag kommer du att bygga upp ett bibliotek med massor av hjälpfulla funktioner och klasser. När man har sina egna Array, Queue, Stack, Vector - klasser för datalagring. Sin egna Process-klass som gör det superenkelt att implementera fler-trådade applikationer med tråd-säker data-överförning. Sina egna fil-hanterings funktioner som bara tar emot och returnar strängar, behöver inte bry sig om fil-hanteringen alls. Sin egna 3D-motor och Mesh-klasser och fil-format som gör det så enkelt att komma igång med nya 3D-projekt.
Helt enkelt underbart

Den ända fördelen jag egentligen ser med Python osv är att man inte behöver kompilera om allt om man gör någon liten ändring, men oftast tycker jag att det går så snabbt att kompilera C++ ändå, förutom om man har väldigt stora projekt, och har man det är det bara att man delar upp det i mindre .dll filer så är det löst

Efter vårt senaste projekt där vi gjorde all spel-logik i python måste jag säga att det troligitvis inte är något jag gör om igen. Det var extremt omständigt och det hade gått mycket snabbare och lättare i C++.

Permalänk
Medlem
Skrivet av MaloW:

Inom spel-programmering är det så såvida man inte nöjer sig med att göra web-spel / mobil-spel. Mindre seriösa programmerare klarar sig dock på C# / Java / Python.

Juste, för "mindre seriösa" är man ju om man använder Java, Python eller C#.. Skärp dig.

TS, ni ska lära er spelprogrammering. Då skulle jag säga gå via Python, Java, C, C++. Riktiga män förstår att programspråk är bra på olika saker och därför ser lite olika ut men när man börjar se hur det hela hänger samman tror jag man är på rätt väg.

Visa signatur

Ingen part kan vinna eller förlora en diskussion, då en diskussion är för gruppens gemensamma utveckling kring ett ämne.
►Jag förbehåller mig rätten att ha helt upp åt väggarna fel◄

Permalänk
Medlem
Skrivet av tufflax:

Ja, och som verktyg är C++ dåligt. Det är onödigt komplicerat och tilllåter en inte att uttrycka sig på ett direkt, icke-omständigt, sätt.

Du läser bara det du vill läsa.

Visa signatur

"Some poor, phoneless fool is probably sitting next to a waterfall somewhere, totally unaware of how angry and scared he's supposed to be." - Duncan Trussell

Permalänk
Medlem
Skrivet av MaloW:

Haha jag känner tvärtom, C++ och delvis C# är dom ända språken som jag känner att jag kan vara riktigt produktiv i. Allting känns bara så logiskt och rätt i C++. Jag kan hålla med om att lärningskurvan är lite tyngre, och att man måste göra mycket själv, men när man gjort det!

Ok.

Skrivet av MaloW:

Åh vad underbart det är att programmera i C++ då. Efter att du jobbat med C++ ett tag kommer du att bygga upp ett bibliotek med massor av hjälpfulla funktioner och klasser. När man har sina egna Array, Queue, Stack, Vector - klasser för datalagring. Sin egna Process-klass som gör det superenkelt att implementera fler-trådade applikationer med tråd-säker data-överförning. Sina egna fil-hanterings funktioner som bara tar emot och returnar strängar, behöver inte bry sig om fil-hanteringen alls. Sin egna 3D-motor och Mesh-klasser och fil-format som gör det så enkelt att komma igång med nya 3D-projekt.

Att bygga bibliotek kan man ju göra i vilket språk som helst.

Skrivet av MaloW:

Den ända fördelen jag egentligen ser med Python osv är att man inte behöver kompilera om allt om man gör någon liten ändring, men oftast tycker jag att det går så snabbt att kompilera C++ ändå, förutom om man har väldigt stora projekt, och har man det är det bara att man delar upp det i mindre .dll filer så är det löst

Det finns många fördelar. Python har "first-class functions", t.ex. vilket är en stor fördel. Python har också kontextfri grammatik, garbage collection, reflection, mer inbyggda datatyper med literaler, tal som inte overflowar, osv.

Skrivet av MaloW:

Efter vårt senaste projekt där vi gjorde all spel-logik i python måste jag säga att det troligitvis inte är något jag gör om igen. Det var extremt omständigt och det hade gått mycket snabbare och lättare i C++.

Jaha. Det framgår inte vad problemet var riktigt, men Python som språk är nog tillräckligt bra för att beskriva spellogik i.

Permalänk
Medlem
Skrivet av gibbon_:

Du läser bara det du vill läsa.

Vad menar du att jag inte läste/fattade?

Permalänk
Medlem

Vilket språk ni använder spelar inte direkt så stor roll om ni gör enklare spel. Så jag skulle rekommendera något enkelt, till exempel Python, Ruby eller kanske till och med JavaScript.

Permalänk
Medlem
Skrivet av m1ntos:

Juste, för "mindre seriösa" är man ju om man använder Java, Python eller C#.. Skärp dig.

TS, ni ska lära er spelprogrammering. Då skulle jag säga gå via Python, Java, C, C++. Riktiga män förstår att programspråk är bra på olika saker och därför ser lite olika ut men när man börjar se hur det hela hänger samman tror jag man är på rätt väg.

"Mindre seriösa" var kanske fel utryck, jag använde det eftersom han jag svarade på använde det. Det jag menar är att det är väldigt få "större" eller "seriösare" spel som klarar sig utan att använda C++ minst delvis.

Skrivet av tufflax:

Att bygga bibliotek kan man ju göra i vilket språk som helst.

Självklart, men det är många som tar upp fördelar med andra språk än C++ att man slipper göra mycket rätt mycket eftersom det kommer färdigt i språket, men det slutar att vara en fördel när man väl gjort den en gång själv i C++.

Skrivet av tufflax:

Det finns många fördelar. Python har "first-class functions", t.ex. vilket är en stor fördel. Python har också kontextfri grammatik, garbage collection, reflection, mer inbyggda datatyper med literaler, tal som inte overflowar, osv.

Visst kan man lista upp en massa fördelar för dom olika språken, dock ser jag inte när man skulle ha nytta av något av ovanstående i ett reellt sammanhang. Dom verkar ju mer vara "Åh vad coolt att man kan göra så", men ger ju inte så mycket när man väl programmerar. Med C++11 tror (är inte så bra påläst och erfaren av C++11) jag dock dom flesta av dina punkter faller.

Skrivet av tufflax:

Jaha. Det framgår inte vad problemet var riktigt, men Python som språk är nog tillräckligt bra för att beskriva spellogik i.

Självklart var Python tillräckligt bra, säger bara att jag upplevde det inte lika "bra" som C++ och efter att ha jobbat med Python en hel del ser jag inga direkta fördelar med det över C++.

Permalänk
Medlem

Jag pluggade 2 år spelprogrammering på gymnasiet. Och vi började med Java för att sedan köra C++. Men helt ärligt med facit i hand så tycker jag C++ var mycket mindre klyddigt och därmed enklare att förstå och Java känns lite utdöende, men det är enklare i Java att få till "roligare" resultat snabbt. Alltså lite färger former osv, än bara text i en konsol som i C++.

Permalänk
Medlem
Skrivet av MaloW:

Visst kan man lista upp en massa fördelar för dom olika språken, dock ser jag inte när man skulle ha nytta av något av ovanstående i ett reellt sammanhang. Dom verkar ju mer vara "Åh vad coolt att man kan göra så", men ger ju inte så mycket när man väl programmerar.

Eh... Jag vet inte vad jag ska säga. Jag använder allt det där (förutom kanske reflection) hela tiden.

Skrivet av MaloW:

Med C++11 tror (är inte så bra påläst och erfaren av C++11) jag dock dom flesta av dina punkter faller.

C++ kommer fortfarande vara extremt komplicerat, usch. Och dessutom finns det bättre språk än Python; Clojure t.ex.

Permalänk
Medlem

Skulle nog säga att det går på smak på vilket programmeringsspråk man själv föredrar. Allt jag skulle kunna tipsa TS är att prova sig på olika antals programmeringsspråk och se för sig själv vad han känner vara något för honom.

Visa signatur

ASUS PRIME X570, Ryzen 5900x, 32GB 3200MHz, RTX 3080, Corsair SF600, Samsung 980 PRO 2TB

Permalänk
Medlem

Om man hade tänkt sig göra spel till mobiler, Iphones, Android etc, vad ska man satsa på för språk då? Nu pratar jag dock inte om spel som infinity blade, utan enklare spel som angry birds, Zombie Defense, Zombie smash, wordfeud etc. Jag har läst lite olika språk på universitets nivå(java och C,C++), det mesta har dock handlat om gör den här matris muliplikationen så effektiv som möjligt, parallisera Quicksort algorithem osv. De gångerna man har fått arbeta med grafik, har det varit väldigt simpelt och det är inte något vi har fått lära oss.

Var ska man börja om man kan grunderna och vill ta nästa steg? Vilket språk är att föredra om man vill göra ett hyftast simpelt spel, jag förstår att det finns fördelar och nackdelar med de olika språken, men jag försöker ta reda på vilket språk är skräddarsytt för mitt ändemål,
Snabbt(relativt, talar inte om att de ska göra på en dag, men kanske inte precis lägga ner 1-2 år utan några månader 3-6 kanske?),
Portabelt från Iphones till Android t ex,
Enkelt att göra grafik och implementera(blir väl 2D grafik, topdown),
finns mycket guider och material till hur man gör liknande spel.

Permalänk
Medlem

Det bästa tipset jag har att ge är att börja programmera!
Vad ni programmerar och i vilket språk har till en början en mycket liten betydelse.
Det är inte språket som då det viktigaste, utan det är programmerandet i sig som har den verkliga betydelsen.

Att programmera är något man lär sig, språken är endast ett verktyg, ett medel för programmerandet.

När man lärt sig programmera kan man också lättare se vilket språk som är lämpat för vad, och veta vad man själv tycker är lättarbetat och man trivs med.

Så kort och gott, börja programmera, våga testa olika språk.

EDIT: Stavfel

Permalänk
Medlem

Du lär dig klart bäst med ex. C++. Begriper du Pekare och hur minnet fungerar m.m. så har du bättre förutsättningar för att bli en bra programmerare. Sen kan du programmera i C#, Java, Python, tja vilket språk du vill samt läsa om OOAD, pattern design etc.

Välj Ej VB dock haha

Permalänk
Medlem

Hehe roligt att det är så många som skriver samma fråga om och om igen xD.

Jag antar att du vill börja med 2D spel.

Kan ju säga så här. Ska du göra ett spel i C++, så tar det tid, men prestandan blir bättre än om du ska göra det i Java eller C#. Men när det gäller simpla 2D spel så spelar det ingen roll.
Om man vill skapa ett spel med 3D grafik, då bör man tänka om och kolla på prestandan. Visst, det går att skapa 3D spel i c# eller java som minecraft, men kan ju säga det att om de hade haft c++ som språk i minecraft, skulle spelet gå mycket mer smooth. Har alltid funderat på hur mycket content Mojang kan slänga in innan java säckar ihop :).

Kan rekommendera några 2D spel motorer för C++: HGE,SDL

Ditt val egentligen. Den svåra vägen eller den enklare vägen.

Kan säga lite smott och gott. Du lär dig mer om du kör C++, men det kommer att ta längre tid att lära sig.

Visa signatur

OS: Win7 x64, GPU: Geforce Gigabyte GTX580 SOC
CPU: Intel i5 2500k (4.5gHz), MB: Asus P8P65 PRO Rev(3.1),
PSU: XFX 750w (modular), RAM: 2x Crosair Vengence 1600mz 4024mb
Cooling: CoolIT ECO A.L.C CPU COOLER
Chassi: Raven rv03

Permalänk
Medlem
Skrivet av Swiifty:

Om man hade tänkt sig göra spel till mobiler, Iphones, Android etc, vad ska man satsa på för språk då? Nu pratar jag dock inte om spel som infinity blade, utan enklare spel som angry birds, Zombie Defense, Zombie smash, wordfeud etc. Jag har läst lite olika språk på universitets nivå(java och C,C++), det mesta har dock handlat om gör den här matris muliplikationen så effektiv som möjligt, parallisera Quicksort algorithem osv. De gångerna man har fått arbeta med grafik, har det varit väldigt simpelt och det är inte något vi har fått lära oss.

Var ska man börja om man kan grunderna och vill ta nästa steg? Vilket språk är att föredra om man vill göra ett hyftast simpelt spel, jag förstår att det finns fördelar och nackdelar med de olika språken, men jag försöker ta reda på vilket språk är skräddarsytt för mitt ändemål,
Snabbt(relativt, talar inte om att de ska göra på en dag, men kanske inte precis lägga ner 1-2 år utan några månader 3-6 kanske?),
Portabelt från Iphones till Android t ex,
Enkelt att göra grafik och implementera(blir väl 2D grafik, topdown),
finns mycket guider och material till hur man gör liknande spel.

Jag är inte helt 100 på vad jag säger nu, men jag tror att dom flesta använder Java/C# för att utveckla appar (och spel) till Andriod. Jag tror det är det lättaste. För Iphones används Objective-C som är något liknande C# / C++ tror jag.