Programmera spel i C++ för nybörjare/Gratis mediabibliotek

Från Wikibooks
Hoppa till navigering Hoppa till sök


En stor fördel för dig som vill lära dig C++ programmering genom att skapa spel är att det finns flera mediabibliotek tillgängliga som underlättar din vardag. Samtliga mediabibliotek här nedanför är gratis att använda. De fungerar bra till att skapa 2D spel. Vill du skapa 3D spel är det lättare om du t.ex. använder dig av 3D spelmotorn Ogre som även den är gratis och fungerar bra tillsammans med C++.

Allegro[redigera]

Allegro är ett gratis mediabibliotek, skrivet i C, som kom redan i början av 1990-talet och har utvecklats sedan dess. Allegro är en förkortning för "Atari Low-Level Game Routines", vilket i sig visar på bibliotekets ålder då Atari är ett märke som försvunnit för länge sedan. Om man vill använda sig av Allegro skall man helst programmera i C eller C++. Allegro stöder inte programmering till mobiltelefoner (ännu) men samtliga andra plattformar stöds: PC, mac, Unix, Linux osv. Utvecklingen går mot att Allegro skall ha stöd från DirectX och Open GL i framtiden. Eftersom det funnits så länge finns det mängder med hjälp att få på Internet om man kör fast. Största nackdelen med Allegro är att stödet för objekt orienterad programmering är svag men det kanske inte är det största problemet för nybörjare. Läs mer (på engelska):

http://alleg.sourceforge.net/

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

SDL[redigera]

SDL, en förkortning för ” Simple DirectMedia Layer”, är ett mediabibliotek som utvecklades redan 1998. Det är skrivet i C men fungerar som ett lager mellan olika andra programmeringsspråk och mediabibliotek som Open GL eller DirectX vilket gör att man kan använda sig av SDL för att skapa spel till i princip alla marknadens olika plattformar – från Android till BEoS. SDL utvecklas fortfarande men är en aning föråldrat. Den största fördelen med SDL är just att det funnits så länge på marknaden att det finns en uppsjö med sajter och forum på Internet där man diskuterar problem som uppstått vid programmering med SDL, vilket gör det lätt att få tips och råd om man själv kör fast. Läs mer (på engelska) om SDL här:

http://www.libsdl.org/

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

CDX[redigera]

CDX är en förenklad programmeringsmiljö, skriven och utvecklad i C++, för att skriva spel med i första hand Windows DirectX men med visst stöd för andra miljöer som Open GL. Eftersom den är rejält bantad är det lätt att lära sig miljön i CDX och den är dessutom ett bra sätt at börja lära sig programmera för DirectX, en uppgift som annars kan kännas förödande tung då biblioteken är enorma. DirectX ger inte heller något direkt stöd för 2D spel vilket innebär att CDX fyller ett hål i marknaden. Den största fördelen med CDX är att det är en av få miljöer som det faktiskt finns en svensk lärobok till ”Spelprogrammering med CDX och OpenGL : Johan Isaksson och Mikael Bondestam; Docendo 2006” Den i särklass största nackdelen med CDX är att den kom 2002 och trots att det står på hemsidan att en uppdatering är på gång, har detta inte skett ännu. I förlängningen innebär det att om du vill programmera i CDX måste du installera både en föråldrar DirectX miljö och en föråldrad version av Visual C++. Om du däremot har en dator av äldre modell stående utrangerad i ett hörn är CDX en fantastiskt bra anledning att återuppväcka den. Läs mer här (på engelska):

http://www.cdxlib.com/

SFML[redigera]

SFML, en förkortning för ” “Simple and Fast Media Library”, är ett mediabibliotek baserat på Open GL som togs fram runt år 2007. Det är skrivet i C++ och det är därmed lättast att skapa spel i just C++ med SFML, men SFML kan användas till en rad olika programmerinsgsspråk, och även användas i en mac- eller linuxmilö. Grundtanken med SFML är att ta ut de viktigaste delarna för 2D spelprogrammering ur Open GL. En miljö som egentligen är tänkt för 3D spelprogrammering. Det gör också programmeringsmiljön mycket lättare att hantera för nybörjare. Den största nackdelen med SFML är just att det är en relativt ny miljö för utveckling av spel så det finns sparsamt med information och hjälp ute på Internet om man kör fast. Läs mer (på engelska) om SFML här:

http://www.sfml-dev.org/