Vad gör en utvecklarevangelist som har influensan?
Kanske lär sig ett eller ett par nya språk… Under veckan som jag legat hemma i influensa så har jag ändå försökt att öppna den bärbara datorn lite då och då, men sällan haft ork till att göra något konstruktivt på grund av trötthet och svårt att koncentrera mig. Men jag tänkte ändå att jag skulle programmera lite så det blev till att testa om det går att använda XNA Framework från och med Visual Basic, C++/CLI och F#. Resultatet blev följande lösningsstruktur:
Överst har jag ett XNA Game Studio 3.0 Windows Game projekt som refererar till vardera projekt i “GameCode”-katalogen. Dessa projekt implementerar exakt samma logik i varsin ärvd Game-klass, men i olika språk. De refererar också alla till GameLibrary projektet i “Resources”-katalogen. GameLibrary-projektet innehåller fyra stycken GameComponents, alla skrivna i C# (inte av mig). Komponenterna är en SkyBox, en BloomComponent, en OrbitCamera och ett partikelsystem. Som synes så lyckas jag på det sättet bygga själva spel-logiken i språk andra än bara C# utan större utmaningar.
I GameLauncher-projektet väljer jag helt enkelt att instansiera rätt språk-version av Game-klassen vid kompilering och sen kör spelet som vanligt. Det är egentligen inte ett rekomenderat sätt att göra detta på, men det fungerar riktigt bra tycker jag. Det återstår fortfarande en del att göra kan jag själv tycka, speciellt i F#-delen där jag mer eller mindre bara använder F# som ett “vanligt” .NET-språk, borde kanske försöka nyttja mer av styrkorna i språket, listor, iterationer och matchningar, men det har jag inte orkat med ännu. Mitt nästa steg är nog istället att lägga till en XboxLauncher i Launchers-katalogen och se om jag kan få alla projekten att rulla på konsolen istället. Men det får bli vid ett senare tillfälle.
Spelet är ett enkelt “skydda planeten från alla kometer”, med ljud, partikelsystem, 3D, skybox osv…
Vill du också prova på koden och testa så har jag publicerat upp den på en skydrive här.
Ha en trevlig helg!