Lite information om XNA Framework!
Va, har inte Johan gått på semester ännu? Det har varit tyst på bloggen ett tag...
Nej, jag har inte gått på semester, jag jobbar nästa vecka också och passar på att förbereda augusti månads sommarkollo om säkerhet och spelutveckling.
För dig som är intresserad av spelutveckling med DirectX och gärna med .NET så kommer XNA Framework som en otroligt intressant utveckling. XNA Framework är nu under utveckling men David Weller har postat lite information om vad som kan förväntas och öppnat för möjligheten att kommentera om vad som ska ingå. Kort så är XNA Framework ersättaren till Managed DirectX och kommer att fungera på både PC och XBox 360. Och den förändring som just nu verkar stökigast är att vi byter från det vanliga vänsterhänta koordinatsystemen till ett högerhänt istället, förvånande, jag anser det i alla fall!
Comments
- Anonymous
June 29, 2006
Betyder det här att man kanska kommer se spelföretag som söker utvecklare som kör C# istället för C++?
Jag jobbar inte med spelutveckling själv men utifrån verkar det som om spelföretagen håller fast vid C++ mest av hävd och tradition eller gamla legacy system i form av spelmotorer mm. Är det ingen i spelindustrin som utforskar nya vägar? Eller har de saknats nya vägar? Är kanske detta det som behövs för ett programspråksskifte? - Anonymous
July 16, 2006
Jag tror du kommer se väldigt få spelföretag som faktiskt bryr sig om sina kunder, och samtidigt utvecklar prestandaberorende spel, efterfråga exklusivt C#-programmerare.
Givetvis är det också så att ju fler språk du verkligen kan, desto mer attraktiv blir du.
Att spel- (faktum är snarare alla som har prestandabehov) utvecklare "håller fast" vid C++, C och assembler, är att C# eller vilket som helst annat språk som kompilerar tilll den virtuella maskinen ".NET" inte kommer i närheten av den prestanda som kan kramas ur given CPU för speciella behov.
Visst, för en del kod, för vissa typer av spel t.o.m. mycket kod, skulle kunna köra under den virtuella maskinen .NET utan alltför mycket prestandaförluster. Men när vi börjar snacka realtidsgrafik så börjar vi använda förkortningar som MMX, SIMD (Screaming Cindy) och annat roligt - som dagens grafikkort till trots används i spelens egna kod där möjligt. Där har inte .NET något att göra.
Kvar blir då: Vill vi introducera än mer komplexitet i vårt spel, genom att inte bara försöka blanda ihop en enda tillverkares virtuella maskin och framework (vilka kan gå åt pipan från release till release) med resten av vår kod (som är portabel mellan operativsystem, och optimerad hårdare än stål)? Vill vi ens försöka jämka ihop fungerande C och C++ bibliotek, som vissa av uppenbar nöd (prestanda) måste köra på en riktig CPU, med den virtuella maskin Microsoft kallar "managed code"? Vill vi ens försöka köra LUA under .NET när resten av vår kod är "native"?
Mitt svar på dessa frågor skulle bli Nej.
Detta till trots ser jag en marknad för det. Lite "enklare" (även om med ögon från endast 5 år tillbaka sett ganska avancerade) spel skulle kunna använda sig av detta. Tänk Quake 3. Det skulle kunna implementeras i både C# och/eller kompileras till .NET i dag utan att man kanske märkte alltför mycket hastighetsskillnad. Men resursåtgången, Helge. Fö' he'vete tänk på resursåtgången. CPU, RAM (och kanske t.o.m. grafikkortskrav.) Jag tror ingen tackar någon om de portar t.ex. Q3 till .NET, om det behöver en 2GHz CPU, 1GB RAM och ett fullt DX9-"stödjande" grafikkort med en kvarts gigabyte RAM.
Men, för "enklare" grejer, eller t.o.m. väldigt komplexa men ej så extremt prestandakrävande, så finns det nog en marknad för det. Frågan var dock, kommer det dyka upp platsannonser för spelutvecklare som kör C# i stället för C++? Inom de områden där de inte behöver bry sig så mycket om prestanda, och knappt (om alls) bryr sig om hur mycket resurser av användarnas maskiner som går åt till deras spel: Kanske. Men det kommer ända alltid finnas behov av "core"-utvecklare som skriver kod för given CPU.