Permalänk
Medlem

Språk för spelutveckling

Hej, jag är då väldigt intresserad av programmering, speciellt spel. Så jag undrar då vilket språk ni kan rekommendera? c++ eller java? kanske något annat ni gillar ? MVH Fredrik

Permalänk
Medlem

Alltså, det beror ju på vilken skala av spel vi talar om.

Dem större titlarna är i stora drag C++ ifall ja inte har fel.

Men om vi snackar små hobby spel funkar vad som helst. C#, jAVA, XNA, AS3...

Visa signatur

Corsair Obsidian 250D | i5 7600K | Gigabyte Z270N WiFi | Samsung 960 EVO 250GB | Fractal Design Integra M 650W | Corsair Hydro H90 |Kingston 8GB 2133M DDR4 CL14 | Asus GeForce GTX 970 4GB STRIX DC2 OC MAX |

Permalänk
Medlem

Många ser ofta Java som ett språk med låg prestanda, och även om det ofta blir omsprunget av t.ex. C++, så ska det vara ett väldigt omfattande projekt för att det ska göra någon större skillnad. Eftersom det låter som att du är nybörjare inom området, så kommer eventuella prestandaproblem troligtvis vara ditt eget fel(dålig kod) till en början ändå.

Du lär ju börja med simpla 2D-spel, och då spelar det ingen som helst roll vilket språk du använder!

Men för att ge något förslag, så skulle jag nog säga Java eller C++, då dessa språk har en uppsjö olika bibliotek man kan använda för att underlätta spelutveckling. Det finns också många tutorials kring området som använder de språken!

Visa signatur

Core i7 920 ~4.1ghz | 6gb Corsair XMS3 1600mhz | ASUS P6T SE | Corsair 650W | Powercolor Radeon 5870 1024mb | HDD1: 250 32mb WD Blue Edition, HDD2: 640gb WD 16mb | Antec Twelvehundred | Logitech Illuminated | Logitech G5 |

Permalänk
Medlem

Välj ett. I början är det viktigare att man lär sig programmeringstänket än vilket språk man lär sig (syntax är mycket lättare att lära sig än att "tänka rätt"). Då kan typ Ruby eller Python vara bra eftersom de inte har mycket boilerplate och röriga syntaxregler och pekare och grejer.

Kan man redan programmera är det väl vettigt att välja ett språk som kan kompileras och har rätt bibliotek. C/C++/C# är väl vanligast här, men språk som D eller Java kan också funka (och VB, usch, om man är ond). Man kan ju pröva typ Haskell också, om sånt får ens båt att flyta.

Ta en titt på typ Code Year.

Permalänk
Medlem
Skrivet av Dakkie:

Alltså, det beror ju på vilken skala av spel vi talar om.

Dem större titlarna är i stora drag C++ ifall ja inte har fel.

Men om vi snackar små hobby spel funkar vad som helst. C#, jAVA, XNA, AS3...

Om inte jag är helt fel ute, så är Frostbite 2(battlefield3) motorn skriven i C#

Permalänk
Medlem
Skrivet av Robhult:

Om inte jag är helt fel ute, så är Frostbite 2(battlefield3) motorn skriven i C#

Nja, det jag har hört så är motorn skriven i C/C++ och editorn skriven i C#.

När det gäller TS fråga så är det viktigaste att lära sig programmering, se till att lära dig alla grundkoncept inom programmering och fokusera mindre på språk. Spelprogrammering är ett väldigt brett begrepp, allt från enklare plattformsspel, mobilspel, 3D spel osv. Man väljer språk efter vad man vill göra och till vilken plattform.

Visa signatur

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

Permalänk
Hedersmedlem
Skrivet av Robhult:

Om inte jag är helt fel ute, så är Frostbite 2(battlefield3) motorn skriven i C#

Då skulle det krävas någon dot net implementation till playstation 3.

Men som Nordis skriver så kan det vara editorn som är gjord i C#. Det är vanligt att man gör runt-omkring applikationer i något språk som är mindre bökigt än C++.
Vidare så är stora spel är sällan renodlade till ett specifikt språk. Ofta finns det någon typ av scriptspråk (Lua är vanligt) som hanterar spellogik.

Nybörjare vill ofta ha snabba resultat för att hålla intresset öppet. Då tycker jag C++ har för mycket pill för sådant. Python med pygame är vanligt förslag.

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG

Permalänk
Medlem

Tycker liksom ovanstående att det kan vara bra att ha kikat på något program såsom Python så man greppar konceptet. Sen vet jag inte riktigt hur renodlade spelutbildningar på högskola skiljer sig från andra utbildningar, men på de högskolor jag kollat på lär man gärna ut Java (självklart andra språk, men det tycks dominera). Ett språk som är väldigt populärt och som tycks vara bra på att beskriva koncept som OO osv. Du kan och kommer så klart plocka upp andra språk med tiden.

Överhuvudtaget är det en hög tröskel att ta sig över. Men var målmedveten och fokuserad och håll gnistan i liv så ska du se att det släpper för eller senare!

Permalänk
Medlem

Om du tänker skriva spel till datorer så är definitivt C++ att rekommendera till en början.
Börja med och lära dig om olika funktioner/grundläggande delar (mycket lätt), och fortsätt sedan genom att göra ett spel som endast använder kommandotolken. Ex. Du är en militär som går in i ett hus. Du kan nu köpa vapen som skadar olika mycket, kostar olika mycket. I level 1 möter du en stor spindel. Du får välja var du vill skjuta spindeln. När du dödat spindeln kan du randomisera fram ett monster som du sedan möter. Efter detta coutar du Grattis vill du fortsätta till level 2 eller liknande. Fortsätt på detta ett tag och försök (vad jag gjorde). Efter detta kan du gå vidare med grafika gränssnitt osv. i exempelvis OpenGL eller directX som används i de flesta bra nya spelen. Jag måste även rekommendera att läsa lite längre/mer programmering i en bok du antingen köper eller lånar på biblioteket för annars är risken stor för att du inte förstår så mycket av DX/O GL till en början.

Lycka till nu
MVH
//Jonatan

Permalänk
Medlem

Programmering fungerar ju inte direkt på det sett att du lär dig ett språk och inte behöver bry dig om något annat. Lär du dig hur man programmerar i ett språk så lär du dig också hur man "allmänt" programmerar.

Java är roligt att börja i, och för en nybörjare så finns det många fördelar då Java har sin egna plattform och blir på så sätt lite slutet med beroende och sådant. Verktyg för att programmera i Java finns också tillgängliga, samt enormt många exempel att titta på.

Visa signatur

4690K + Phanteks PH-TC14PE | 24GB DDR3 | MSI 1080Ti Gaming X | Asus Z97-Pro Gamer | EVGA Supernova G2 650W | Samsung 840 Pro 512+256Gb | Bitfenix Shinobi XL

Permalänk

http://www.andengine.org/

android java game engine

Visa signatur
Permalänk
Medlem
Skrivet av Heedman:

Många ser ofta Java som ett språk med låg prestanda, och även om det ofta blir omsprunget av t.ex. C++, så ska det vara ett väldigt omfattande projekt för att det ska göra någon större skillnad.

Det stora problemet med out-of-the-box-java är att du har en garbage collector som kickar in lite då och då och tar flera millisekunder. Ska du ha en vettig framerate är det bara att glömma 1 ms i ett modernt spel är en halv evighet, speciellt om du satsar på 60hz.

I grund och botten är alla 360/PS3/PC-spel (dvs multiplatformsspel) skrivna i c/c++. Sen är de oftast väldigt skriptade i olika skriptspråk/verktyg (tex lua, unreal script, kismet, ...) för att det otroligt jobbigt att att göra högnivålogik i c/c++. Unity har också ett intressant alternativ där de använder Mono (open source .Net) vilket gör att du kan skriva i C#.

Ska du programmera för ios kan du också använda c/c++, fast för att interfacea med os:et behöver du obj-c.

Jag skulle nog börjat med python om jag vore du. Tyvärr har jag inte så mycket erfarenhet av att skriva spel i python, men pygame har jag hört är bra. Oavsett språk måste du dock först lära dig programmera.

Permalänk
Medlem

Tack för alla svar! Så jag har läst lite i python innan också bara lite smått, men alla tutorials jag kan hitta är "outdate" så finns det någon som vet någon som inte är det?

Permalänk
Medlem
Skrivet av cyburg.eu:

LibGdx > AndEngine

http://code.google.com/p/libgdx/

Permalänk
Medlem

Kolla in: http://inventwithpython.com/chapters/
Har inte gått igenom guiden själv, men är verkar vara en bra och enkel nybörjarguide för hur du skapar spel i Python.

Permalänk
Medlem
Skrivet av Amöban:

Kolla in: http://inventwithpython.com/chapters/
Har inte gått igenom guiden själv, men är verkar vara en bra och enkel nybörjarguide för hur du skapar spel i Python.

tack!

Permalänk
Medlem
Skrivet av grovlimpa:

Det stora problemet med out-of-the-box-java är att du har en garbage collector som kickar in lite då och då och tar flera millisekunder. Ska du ha en vettig framerate är det bara att glömma 1 ms i ett modernt spel är en halv evighet, speciellt om du satsar på 60hz.

I grund och botten är alla 360/PS3/PC-spel (dvs multiplatformsspel) skrivna i c/c++. Sen är de oftast väldigt skriptade i olika skriptspråk/verktyg (tex lua, unreal script, kismet, ...) för att det otroligt jobbigt att att göra högnivålogik i c/c++. Unity har också ett intressant alternativ där de använder Mono (open source .Net) vilket gör att du kan skriva i C#.

Ska du programmera för ios kan du också använda c/c++, fast för att interfacea med os:et behöver du obj-c.

Jag skulle nog börjat med python om jag vore du. Tyvärr har jag inte så mycket erfarenhet av att skriva spel i python, men pygame har jag hört är bra. Oavsett språk måste du dock först lära dig programmera.

Jag skrev klart och tydligt att framerate:n knappast skulle bli ett problem sålänge trådskaparen inte drar igång nåt riktigt stort projekt(då syftar jag på 3D med intensiv fysik och AI). Han lär ju inte sätta igång med 3D-programmering direkt precis, och om han får problem med dålig framerate i 2D så är det bara att sätta sig ner och gå igenom algoritmerna, och sluta skylla på språket.

Att helt enkelt säga att "en vettig framerate är bara att glömma" tyder bara på okunskap eller helt enkel ogynnsam fanboyism.

Visa signatur

Core i7 920 ~4.1ghz | 6gb Corsair XMS3 1600mhz | ASUS P6T SE | Corsair 650W | Powercolor Radeon 5870 1024mb | HDD1: 250 32mb WD Blue Edition, HDD2: 640gb WD 16mb | Antec Twelvehundred | Logitech Illuminated | Logitech G5 |

Permalänk
Medlem
Skrivet av Heedman:

Jag skrev klart och tydligt att framerate:n knappast skulle bli ett problem sålänge trådskaparen inte drar igång nåt riktigt stort projekt(då syftar jag på 3D med intensiv fysik och AI). Han lär ju inte sätta igång med 3D-programmering direkt precis, och om han får problem med dålig framerate i 2D så är det bara att sätta sig ner och gå igenom algoritmerna, och sluta skylla på språket.

Att helt enkelt säga att "en vettig framerate är bara att glömma" tyder bara på okunskap eller helt enkel ogynnsam fanboyism.

grovlimpa poängterade att java's garbage collector, som om jag förståt det rätt sällan körs parallellt i dagsläget, kickar in och förstör frame-raten. Här spelar det då ingen roll om det är 2D eller 3D, det kommer hacka till med jämna mellanrum (någon sekund) om inte programmeraren går ur sin väg för att se till att inga nya objekt allokeras/släpps varje frame.

Och med det sagt så är Java ett horribelt val för spel oavsett.

Dold text
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_:

Och med det sagt så är Java ett horribelt val för spel oavsett.

Dold text

Minecraft anyone?

Tror Java kan vara ett bra val för att lära sig programmera, killen ska inte skriva nästa Battlefield direkt. Eller?

Permalänk
Medlem
Skrivet av Suedede:

Minecraft anyone?

Väntade på den där.
Att det går är det ingen frågan om, men jag står fast vid att det är ett dåligt val. Om någon har en källa på varför Notch körde på Java så vore jag intresserad för övrigt. Med tanke på hur spelet kom till undrar jag om det inte var lite happenstance bara.

Sen att Java är ett värdelöst språk har inte jag påståt åtminstonde, och mitt svar var inte menat att påverka GHARN.

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 Suedede:

Minecraft anyone?

Tror Java kan vara ett bra val för att lära sig programmera, killen ska inte skriva nästa Battlefield direkt. Eller?

Jodå du min vänn Jag släpper Battlefield 4 om två månader Det kommer även ha en helt ny spelmotor som jag kallar frostbite 3000. Vilket kommer vara mycket bättre och då menar jag mycket bättre än frostbite 2 (Skämt för dem som är lite gnälliga av sig...)

Permalänk
Medlem
Skrivet av gibbon_:

Väntade på den där.
Att det går är det ingen frågan om, men jag står fast vid att det är ett dåligt val. Om någon har en källa på varför Notch körde på Java så vore jag intresserad för övrigt. Med tanke på hur spelet kom till undrar jag om det inte var lite happenstance bara.

Sen att Java är ett värdelöst språk har inte jag påståt åtminstonde, och mitt svar var inte menat att påverka GHARN.

Java är enormt krävande jämfört med t.ex C/C++, dock är det helt skilda språk. C/C++ är heller inte helt enkelt att skriva multi-platformstöd i heller. Många lata utvecklare väljer just därför Java för att slippa skriva kod som stödjer flera OS. Kan vara anledningen till varför Notch valde att köra på Java. Eller så kan han inte C/C++ Nu är jag då inte så insatt i C++ eller Java. Håller på att lära mig C++ men vad jag läst så är det så

Permalänk
99:e percentilen

Vi använder Python i skolan och det verkar rätt OK. Det är helt gratis att utveckla i också (vilket det förstås inte är ensamt om).

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Då jag studerar spelutveckling kan jag väl säga att det helt beror på typ av spel.

Visa signatur

|AMD Ryzen 9 5900X| |ASUS ROG Strix B550-F| |Crucial Ballistix 32GB CL16@3600MHz| |PNY RTX 4090 XLR8 Gaming| |Samsung 970 Evo Plus M.2 1TB| |Samsung 860 Evo 1TB| |Samsung 850 Evo 500GB| |Corsair RM1000| |Fractal Design Define R5| |LG OLED 48" C2 Evo|

Permalänk
Medlem
Skrivet av GHARN:

Java är enormt krävande jämfört med t.ex C/C++, dock är det helt skilda språk. C/C++ är heller inte helt enkelt att skriva multi-platformstöd i heller. Många lata utvecklare väljer just därför Java för att slippa skriva kod som stödjer flera OS. Kan vara anledningen till varför Notch valde att köra på Java. Eller så kan han inte C/C++ Nu är jag då inte så insatt i C++ eller Java. Håller på att lära mig C++ men vad jag läst så är det så

Haha lata?
Jag tror Notch gillar Java helt enkelt

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Haha lata?
Jag tror Notch gillar Java helt enkelt

Jojo, jag har inget emot Notch eller Mojang alls. Faktum med att jag älskar dem istället xD Skulle vilja jobba där i framtiden Men det var bara ett exempel

Permalänk
Medlem
Skrivet av gibbon_:

Väntade på den där.
Att det går är det ingen frågan om, men jag står fast vid att det är ett dåligt val. Om någon har en källa på varför Notch körde på Java så vore jag intresserad för övrigt. Med tanke på hur spelet kom till undrar jag om det inte var lite happenstance bara.

Sen att Java är ett värdelöst språk har inte jag påståt åtminstonde, och mitt svar var inte menat att påverka GHARN.

Har för mig att det började med en 48 hour challenge, och tror han tog java för att han tyckte det var enklare

Visa signatur

Citera för svar!|Fraktfritt hos INET|Min hemsida
Fractal Design Define R3|Corsair AX 850W|Gigabyte Nvidia GeForce GTX 570|Corsair Vengeance 1600MHz 2x4GB|ASRock P67 Extreme4|Intel Core i5 2500K|2x Samsung Spinpoint F3 1TB|Samsung Blu-Ray läsare
Nikon D7000|Nikon 60mm macro|Nikon 18-70|Nikon 55-300|Nikon 10.5 Fisheye

Permalänk
Medlem

Måste ju säga att C# (med eller utan XNA) var för mig rätt så trevligt att börja med. Annars så kan man alltid gå rakt på C/C++ om man känner för det. Ser ingen mening med att börja med något annat språk. Hellre C# än Java. Bättre att hålla det inom familjen så att säga. Steget mellan C# och C/C++ är ju trots allt inte så gräsligt stort.

Skickades från m.sweclockers.com

Permalänk

Jag går första året på Datateknik på LTH och det är Java som gäller där, men jag tycker inte det är särskilt bra för att göra spel i om man är nybörjare. Skulle istället rekommendera C# med XNA. XNA är helt skapat endast för att göra spel och då får man en hel del saker gratis så att det blir enklare. Vet att spelutvecklingsutbildningen på BTH använder sig av C# också. Sen är tydligen C# det mest eftertraktade språket av svenska företag enligt någon statistik jag såg, Java kom tvåa.

Det behövs dock grundkunskaper innan man börjar med något sånt. Det kan man lika bra lära sig i C# också om man ändå ska använda XNA sen. Om man tycker det är svårt finns det Pyton som är enklare. Java liknar dessutom C# väldigt mycket i hur man formaterar koden, skiljer bara i vilka ord man skriver för vad i min mening.

Visa signatur

Intel 7700K 4,2 GHz | ASUS ROG Stric GTX 1080 | 16 GB DDR4 | ASUS ROG STRIX Z270H GAMING | Samsung 850 EVO

Permalänk
Skrivet av phroggyy:

Har för mig att det började med en 48 hour challenge, och tror han tog java för att han tyckte det var enklare

Vet att han har jobbat på flera företag som huvudsakligen använde Java också så jag antar att han helt enkelt gillade det mest

Visa signatur

Intel 7700K 4,2 GHz | ASUS ROG Stric GTX 1080 | 16 GB DDR4 | ASUS ROG STRIX Z270H GAMING | Samsung 850 EVO