Iteam
GitHub

Spelutveckling med XNA

Att skapa spel till Windows, Windows mobile och Xbox kan vara både enkelt och snabbt. Det går dessutom att göra gratis. Tekniken som används kallas XNA och är Microsofts plattform för spel/Utveckling. Om man redan har Visual Studio installerat räcker det med att installera ett add-on som heter XNA Game Studio. Man kan välja en version för Windows mobile 7 och en för övriga plattformar. Har man inte Visual Studio går det bra att installera Visual C# Express Edition. Ladda ner XNA här!

I Visual Studio/Visual C# Express finns nu möjligheten att skapa ett nytt spelprojekt via File > New project > XNA Game studio 3.1. Då har man tillgång till ett flertal olika projekttyper: Windows Game, Xbox Game, Plattformer starter kit


Att skapa sitt första spel är ganska enkelt. I korthet är processen att du skapar grafikobjekt som du fyller med innehåll.


Grafiken ska sedan skrivas ut på skärmen, vilket sker i Draw-metoden. Här kan du göra en kontroll så att det inte blir för många objekt som visas samtidigt. Du kan även välja att slumpa ut värden som hastighet, storlek och riktning. 



I Update-metoden sköter du logiken, som exempelvis vad som händer om två objekt kolliderar.

I update metoden hanterar du även vad som ska ske vid knapptryckningar. Du anger om hastigheten ska ändras, hur många objekt (fiender, kanonkulor) som kan vara på skärmen samtidigt och i vilken riktning objekten kan röra sig. Här kan du även göra ändringar i en spelares fysiska förutsättningar. Om spelaren exempelvis nått en viss poängnivå, kan man tillåta spelaren att hoppa högre, springa fortare eller bli större. Om spelaren nått slutet av en bana, kan man ändra bilden i bakgrundsgrafikobjektet.

Om du har erfarenhet av att jobba med Flash kommer du säkert att känna igen vissa koncept. Man arbetar mycket med X och Y koordinater och grafik som man förflyttar i olika riktningar. Det är enkelt att komma igång, och det finns mångra bra tutorials (exempelvishttp://creators.xna.com/en-US/education/gettingstarted/bg2d/chapter1 ochhttp://creators.xna.com/en-US/education/gettingstarted/bg3d/chapter1). Det finns även många bra starter kits , som gör att du får en bra grund att stå på i ditt spelbyggande.

Trots att det är enkelt att komma igång, så tycker jag ändå att det saknas en del grundläggande hjälpfunktioner. En sak som mig veterligen inte finns, är en Collision-klass, som kan användas för att beräkna om objekt kolliderar med varandra. Som det är nu måste man skriva den logiken själv. Det känns som en av de viktigaste bultarna i de flesta spel. Denna Collision-klass skulle kunna ha ett antal metoder för olika typer av kollisionshantering (Exempelvis Alpha, Block och Border).

Mattias Jonsson
2010-05-25