Spelutveckling, vilket språk + program??

Permalänk

Spelutveckling, vilket språk + program??

Som rubrik lyder så funderar jag på vad för programmeringsspråk och program man ska använda sig av vid spelutveckling, då jag är nybörjare så vill jag inte att det ska vara allt för svårt. Jag går första året på gymnasiet och har redan nu bestämt mig med ett par polare att vi ska försöka göra ett sandbox spel som projektarbete. jag kommer i 2an och 3an läsa programmering A + C.

Jag vet att jag kanske borde vänta tills jag gått iallafall programmering A innan jag börjar ställa en massa dumma frågor men det tar ju också ganska lång tid att lära sig språken.

Vi har kommit på en hel del spelidéer och fått ner det på papper, det kommer vara ett rpg-sandbox spel med lite inslag från minecraft dock så kommer det inte påminna jättemycket om just minecraft. frågan är vilken motor, språk och program man ska använda sig av. Jag har hört att c++ är bra men svårt att lära sig och att det kommer försvinna mer och mer allteftersom tiden går. Och att java inte har riktigt det jag söker.

jag vet att min svenska inte är den bästa och att jag säkert upprepar mig själv men det kanske ni kan leva med?

Permalänk
Medlem

Faktum är att om du vill bli programmerare eller jobba med utveckling så kommer du om 10 år kunna 10+ programmeringsspråk och vara riktigt bra på 2-3. Anledningen till det är att många koncept går igen mellan språken, så har du lärt dig ett språk riktigt bra så kommer du snabbt att kunna ta till dig nya språk genom att ställa frågan "Vad skiljer detta språket mot de språk jag redan kan?"

Med det sagt så gäller det bara att välja ett och sätta igång. Så gott som alla applikationer med krav på hög prestanda (som komersiella spel) skrivs i c/c++. Anledningen till det är att det är ett kompilerat språk (till skillnad från till exempel Java). Dessutom så är det upp till programmeraren att sköta minneshantering vilket ger bättre kontroll över datorns resurser. Just minneshantering är en anledning till att nybörjare tycker att c++ är svårt, men håll dig undan från pekare i början så ska det nog gå bra. Är du en envis typ och villig att lägga lite krut i början så satsa på c++ direkt. Vet du av att du hellre vill ha snabbt resultat än krångel i början så tror jag Java eller .Net är ett bättre alternativ.

Den överlägset bästa editorn/kompilatorn för c++ och .Net är Visual Studio. Jag använder Visual Studio 2005 fortfarande, men det finns nyare. För Java gillar jag Eclipse.

Ska du programmera 3D grafik så skulle jag rekommendera OpenGL och GLSL över DirectX och HLSL. DirectX upplevs för många som svårare att komma igång med eftersom det är klassbaserat snarare än funktionsbaserat som OpenGL. OpenGL stöds också på flera plattformar. Till OpenGL finns GLUT, ett bibliotek som gör det busenkelt att komma igång. Kolla tutorials på Lighthouse så har du en c++ applikation som använder OpenGL och GLSL (shader programmering) igång på nolltid:

http://www.lighthouse3d.com/opengl/glut/

Lycka till!

Visa signatur

Louqe Ghost S1 MK3 | Asus ROG Strix B660-I Gaming WiFi | Intel Core i7 12700K | nVidia RTX 2070 Super FE | Corsair 64GB (2x32GB) DDR5 5600MHz CL40 Vengeance | Samsung 980 PRO M.2 NVMe SSD 2TB | Corsair SF750 750W 80+ Platinum | Noctua NH-L12 Ghost S1 edition | Kablar från pslate customs | 2 stk Dell Ultrasharp 3014 | Logitech MX Keys | Logitech MX Anywhere

Permalänk
Medlem

Det finns flera alternativ:

Python + Pygame för enkelt 2D-kodande
Love2D likaså, i den kodar man Lua

Unity har jag hört flera som gillar, det är mer en färdig spelmotor som man bygger ihop ett spel i. C#, Javascript samt kanske några andra språk stöds.

UDK ska visst vara bra också, även om jag hört att det inte är riktigt lika snabbt att prototypa i som Unity. Kodar gör man i epics egna UnrealScript

XNA är också populart, C# som språk.

När det gäller språk så ska man nog satsa på nått scriptspråk för hönivå logik (Python, Lua, Javascript). Har svårt att se att C eller C++ försvinner som spelspråk innom de närmsta 15 åren. De kanske kommer användas mindre och mindre när man flyttar spellogik till script och tools till C#, men för motor och högprestandakod behövs ett sådant språk.

Rent programmeringsmäsigt skulle jag rekommendera ett högnivåspråk (Python, Lua, Scheme) samt ett maskinnära språk (C) för bredd och olika sätt att se på programmering.

Visa signatur

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

Permalänk
Medlem

AS3, alltså Flash, är enligt mig ett riktigt bra intro till programmering om man vill göra spel. Väldigt enkelt att sätta igång med, samtidigt som det är objektorienterat och modernt (liknar Java och C#). Det som är bra är att det är enkelt att snabbt få saker och ting att hända med grafik och ljud, samt att det finns många bra och enkla tutorials på nätet. Sen är det väldigt enkelt att dela med sig av sina kreationer till folk. Det som saknas är lite mer avancerade grejer som multithreading osv, men det behöver man inte bry sig så mycket om som nybörjare tycker jag.

Visa signatur

Core i7 7700K | Titan X (Pascal) | MSI 270I Gaming Pro Carbon | 32 GiB Corsair Vengeance LPX @3000MHz | Samsung 960 EVO 1TB

Permalänk
Medlem

Kul, lycka till. Jag har hållt på och dabblat med en del hobbyprojekt i några år, men det fås aldrig tid att göra klart nåt

Jag har fastnat för Ogre3D som motor (http://www.ogre3d.org/) och kör det i Code::Blocks (C++) på Windows och gcc i Linux med Lua för scripting. Jag skulle starkt rekommendera att köra med en motor - det finns mängder förutom Ogre3D - så slipper du det värsta DX/GL-pillet. Den här listan är inte i närheten av komplett: http://en.wikipedia.org/wiki/List_of_game_engines

Lite matnyttigt:

http://www.gamedev.net/
http://www.igda.org/

Visa signatur

[Atari 400|600XL|800XL|XEGS|ST|STe|Mega ST|Mega STe|Portfolio][Commodore VIC20|64|116|128|+/4|8032|Amiga 500|Amiga 1200][BBC Micro][Sinclair QL|ZX81][TI 99/4A][Sord M5][Spectravideo 328|728][Cambridge Z88][ABC80][MFP-II][IBM RS/6000 59H][Apple LCII][Zaurus SL5000D][PDP 11/34][...massor av bråte...]

Permalänk

Man tackar för de snabba svaren, det uppskattas då jag verkligen vill gå in för detta så ska jag nog följa sunefreds råd. kommer säkert bli förbannad på mig själv att jag misslyckas men jag har ju tid på mig att lära mig så det går nog bra tillslut.

Permalänk
Medlem

Det viktigaste är nästan bara att komma igång och skapa/koda. resten lär man sig på vägen, och språk/miljö/motor kan man alltid byta.

Lycka till!

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

Man tackar för de snabba svaren, det uppskattas då jag verkligen vill gå in för detta så ska jag nog följa sunefreds råd. kommer säkert bli förbannad på mig själv att jag misslyckas men jag har ju tid på mig att lära mig så det går nog bra tillslut.

Lycka till! (Och kom ihåg, i stil med sunefreds kommentar, att språket är "mindre värt" än att kunna de kurser som på universiteten heter "Algoritmer och datastrukturer". Har man det riktiga tänket och se'n en generell kunskap om hur språk är uppbyggda så blir det lättare att ta till sig nya/andra språk.).

Och ge fan inte upp, för det är en lång väg men skam den som ger sig

(Glöm inte att fråga folk så när - inte om... - du får problem så slipper du kanske slå huvet blodigt mot precis alla problem som dyker upp.)

(Fotnot; varför är det så få duktiga grafiker som lattjar med att göra småspel... Det är oftast där småspelen fallerar, de ser ut som skit men kan vara hur bra skrivna som helst.)

Visa signatur

[Atari 400|600XL|800XL|XEGS|ST|STe|Mega ST|Mega STe|Portfolio][Commodore VIC20|64|116|128|+/4|8032|Amiga 500|Amiga 1200][BBC Micro][Sinclair QL|ZX81][TI 99/4A][Sord M5][Spectravideo 328|728][Cambridge Z88][ABC80][MFP-II][IBM RS/6000 59H][Apple LCII][Zaurus SL5000D][PDP 11/34][...massor av bråte...]

Permalänk
Medlem

GLUT är dock inget jag längre rekommenderar, försökte köra med det i mitt examensarbete men fick överge det pga många buggar, ofta om något skall fungera får man köra olika versioner, i en fungerar inte timer, i andra tar den inte alla events etc, samt bugg i upplösning, muspekarpositioner osv.

Har GLUT också, men primärt använder jag SDL och slapp alla problem jag stötte på.

Permalänk

Har använt SDL när vi gjorde ett projektarbete i vintras. Trevligt och lätt att använda! Rekommenderas

Visa signatur

Anything that can go wrong will go wrong.

Permalänk
Medlem
Skrivet av Dalton Sleeper:

GLUT är dock inget jag längre rekommenderar, försökte köra med det i mitt examensarbete men fick överge det pga många buggar, ofta om något skall fungera får man köra olika versioner, i en fungerar inte timer, i andra tar den inte alla events etc, samt bugg i upplösning, muspekarpositioner osv.

Har GLUT också, men primärt använder jag SDL och slapp alla problem jag stötte på.

Det var ett tag sedan GLUT uppdaterades, det heter freeglut numer.

Permalänk
Medlem

Får hålla med om att GLUT har sina brister och det kan vara värt att titta på annat. Som Superb säger så är freeglut det bästa glut alternativet om du ändå vill satsa på det. GLUTs största begränsning för mina behov är att det inste stöder OpenGL 3.0, 4.0 och kommer förmodligen heller aldrig göra det. Man kommer RIKTIGT långt på OpenGL 2.0 + extensions dock.

När vi ändå är inne på OpenGL och eftersom det verkar som du kanske är på väg åt det hållet så namedroppar jag ett bibliotek till som du måste ha; GLEW. GLEW är en samling funktioner och konstanter som uppdateras kontinuerligt så att det inkluderar ALLA OpenGL versioner och extensions. Detta bibliotek göra att du slipper ladda hem .h filer för varje extension som du vill använda. Inser nu att du behöver en liten grundkurs i hur OpenGL's utveckling fortgår i jämförelse med DirectX. OpenGL är ett öppet projekt i den mening att ett stort antal företag (nVidia, ATI, 3DLabs, SGI m.fl.) gemensamt beslutar arkitektur och innehåll i OpenGL. Sätt detta i motsats till DirectX som designas av ett enda företag (Microsoft). Innehållet bestäms av Architecture Review Board (ARB), men det är också möjligt för företag att släppa egna extensions. Detta gör nVidia och ATI i stor omfattning, och i realitet så blir många av dessa extensions så småningom core. Men är man ute efter en viss funktionalitet och inte kan vänta på en ny OpenGL version är man hänvisad till extensions.

Hur som helst, det blir många extensions att hålla reda på och därmed är GLEW bra. GLEW innehåller funktioner för att lätt testa om ett grafikkort har stöd för en given OpenGL version eller extension. Framförallt innehåller det funktions och konstant definitioner för alla extensions. Det följer också med ett litet färdigt testprogram som du kan köra på din egen dator för att få en lista på alla extensions och funktioner, och huruvida ditt grafikkort klarar av dessa.

Visa signatur

Louqe Ghost S1 MK3 | Asus ROG Strix B660-I Gaming WiFi | Intel Core i7 12700K | nVidia RTX 2070 Super FE | Corsair 64GB (2x32GB) DDR5 5600MHz CL40 Vengeance | Samsung 980 PRO M.2 NVMe SSD 2TB | Corsair SF750 750W 80+ Platinum | Noctua NH-L12 Ghost S1 edition | Kablar från pslate customs | 2 stk Dell Ultrasharp 3014 | Logitech MX Keys | Logitech MX Anywhere

Permalänk
Medlem
Skrivet av sunefred:

...
GLEW
...

Yes, GLEW är väldigt bra att ha, kör med det själv

Permalänk
Medlem

Ett alternativ till glut/freeglut är GLFW.
http://www.glfw.org/faq.html

GLEW och GLFW sen är OpenGL en dans.

Visa signatur

| Antec P183 | AMD Phenom 2 940 | Corsair XMS2 DDR2 8192 MB | XFX HD4870 | Gigabyte MA-790X-UD3P | Corsair VX 450W | Primärt OS: Arch Linux | Windows 7 x64 |

Permalänk
Medlem

Den här gratis-boken om hur man bygger spel med python tycker jag ser enkel och skojig ut: http://inventwithpython.com/ Den går igenom hur du skriver spel med python och pygame från grunden.

Tänk på att börja enkelt så du inte fastnar för mycket och tappar sugen. Annars är det viktigaste att bara börja med nånting, precis som jdv skrev, vilken miljö, språk mm som du använder spelar mindre roll, och när du blivit en bra programmerare kommer du ändå ha testat på ett helt gäng olika språk, miljöer osv.

Permalänk
Medlem

Ska ni göra ett spel för första gången skulle jag rekommendera er att använda er av Visual Studio 2010 C# Express, kan hämtas gratis här: http://www.microsoft.com/express/Downloads/#2010-Visual-CS .
Fördelen är att språket är väldigt lätt att lära sig, de flesta som håller på i början tröttnar väldigt fort om de inte får resultat.
Skapa era rpg figurer i tex. photoshop, som png filer med genomskinlig bakgrund. Använd sedan pictureboxes för att rita upp och flytta runt på figurer. För att förflytta på saker ska ni göra "mouse click events" det är väldigt lätt att lägga in och programmet skapar all kod åt den. Där har ni en liten början iaf. Har ni specifika frågor så kom gärna tillbaka.