XNA 4.0 Das Ende der Flexibilität?

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
AppleEater
Beiträge: 3
Registriert: 25.09.2010, 08:42

XNA 4.0 Das Ende der Flexibilität?

Beitrag von AppleEater »

Hallo zusammen,
Vor ein paar Jahren bin ich von C++/DirectX auf C#.net/XNA gewechselt, weil C# einerseits eine moderne Programmiersprache ist und .net für mich vieles vereinfacht. XNA gefiel mir ebenfalls, weil man sehr schnell gute Resultate erreicht und auch die Performance akzeptabel ist.
Ich habe mir XNA 4.0 in den letzten paar Tagen angeschaut und ein grösseres Projekt portiert von 3.1 auf 4.0. Zum Teil sind die Änderungen von XNA 4.0 durchaus nachvollziehbar. Aber es gibt einige Dinge die ich im Moment als "Show-Killer" sehe. Zum einen arbeitet die neue Version immer noch mit DirectX 9 benötigt aber mindestens eine DirectX 10 fähige Grafikkarte wenn vernünftige 3D-Grafik mit "hidef" auf einem Windows-Rechner dargestellt werden soll (obwohl es DirectX 10 gar nicht nutzt!). Mit den Einschränkungen des "reach"-Profiles sehe ich keine Chance mein Projekt (GPU generiertes Terrain mittels Perlin-Noise mit GUI und und und) unter XNA4.0 laufen zu lassen ohne mir eine neue Grafikkarte zuzulegen. Unter XNA 3.1 lief dasselbe Projekt noch problemlos.
XNA 4.0 ist meiner Meinung nach viel zu sehr auf Zune und Windows Phone ausgerichtet und hat einiges an Flexibilität verloren. Ich denke es müsste auch in XNA die Möglichkeit geben, zu überprüfen was die angeschlossene Hardware tatsächlich kann und die Darstellung dynamisch anzupassen. Die zwei Profile "hidef" und "reach" sind zwar einfach zu handhaben, sind aber nicht flexibel genug; es gibt kein Zwischenstufen.
Tja fürs erste bin ich mal gefrustet! Was soll ich jetzt tun? In XNA3.1 weitermachen? Auf XNA 4.0 wechseln und eine neue Grafikkarte kaufen, die ich dann bei der nächsten XNA Version wieder ersetzen muss? Oder Umstieg auf SlimDX/C#(Das kenn ich bis jetzt gar nicht)? Oder etwa gar zurück auf C++ und DirectX?

Was würdet Ihr tun? Wer hat Erfahrung mit SlimDX?
Benutzeravatar
The_Real_Black
Establishment
Beiträge: 110
Registriert: 19.01.2008, 19:57
Benutzertext: Happy Coding
Kontaktdaten:

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von The_Real_Black »

Nimm managed DirectX mit C#, damit hast du wieder alles in der Hand und musst nicht auf C++ zurück umsteigen. Ansonsten wäre in deinen Fall das beste einfach bei XNA 3.1 zu bleiben, damit du nicht alles umstellen musst oder zwingt dich jemand auf XNA 4.0 umzusteigen?
Happy Coding.
Alexander Kornrumpf
Moderator
Beiträge: 2157
Registriert: 25.02.2009, 13:37

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von Alexander Kornrumpf »

Ach ich dachte XNA wäre die Nachfolgetechnologie von managedDX.
Benutzeravatar
The_Real_Black
Establishment
Beiträge: 110
Registriert: 19.01.2008, 19:57
Benutzertext: Happy Coding
Kontaktdaten:

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von The_Real_Black »

Alexander Kornrumpf hat geschrieben:Ach ich dachte XNA wäre die Nachfolgetechnologie von managedDX.
Jain... XNA kapselt DirectX mehr wie eine Engine. Ich würde es eher als eine parallele Entwicklung sehen aber da man managed DirectX nicht mehr weiterentwickelt (oder?) bleibt praktisch nur XNA als "Nachfolger" wenn man auf eine lebendige Technologie setzen will.

Dazu zwei Fragen:
Kann man XNA 4.0 mit Visual Studio 2010 Ultimate kombinieren oder braucht man dafür zwingend eine Experess Edition?
Gab es ein kommerzielles "Windows-" Spiel welches schon mal NXA verwendet hat? Wie sehen denn Spieleentwickler XNA? (Zukunft der Spiele oder Mode-Erscheinung)
Happy Coding.
Benutzeravatar
Krishty
Establishment
Beiträge: 8350
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von Krishty »

Ich habe mit SlimDX nie was gemacht, aber wenn XNA rausfällt und Managed DirectX eingestellt ist, ist es doch die beste Alternative, oder? So wie ich das gehört habe ist es MDX auch sehr ähnlich.

Gruß, Ky
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2157
Registriert: 25.02.2009, 13:37

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von Alexander Kornrumpf »

The_Real_Black hat geschrieben:
Dazu zwei Fragen:
Kann man XNA 4.0 mit Visual Studio 2010 Ultimate kombinieren oder braucht man dafür zwingend eine Experess Edition?
Gab es ein kommerzielles "Windows-" Spiel welches schon mal NXA verwendet hat? Wie sehen denn Spieleentwickler XNA? (Zukunft der Spiele oder Mode-Erscheinung)
Ich würde mich extrem wundern, wenn die Express Edition hier mehr können sollte als die Ultimate Edition. Allerdings wundert es mich auch extrem dass sich jemand für Hobby-Entwicklung daheim die Ultimate Edition leistet. MSDNAA geht nur bis Professional, oder?
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von eXile »

Alexander Kornrumpf hat geschrieben:Allerdings wundert es mich auch extrem dass sich jemand für Hobby-Entwicklung daheim die Ultimate Edition leistet. MSDNAA geht nur bis Professional, oder?
Hängt von der Subscription ab, hier ist drin:
MSDNAA hat geschrieben:Visual Studio 2010 Ultimate (x86) - DVD (English)
Aber irgendwie keine x64-Versionen :(
Benutzeravatar
dowhilefor
Moderator
Beiträge: 173
Registriert: 27.02.2009, 15:44
Alter Benutzername: 6SidedDice
Echter Name: Nico Probst
Wohnort: Bochum
Kontaktdaten:

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von dowhilefor »

SlimDX ist eine sehr gute Alternative, wenn einem XNA nicht mehr zusagt. XNA war schon immer anders als MDX und von vorn herein auch so gedacht. Das MDX nicht weiterentwickelt wurde war schade, aber genau deswegen gibts es ja jetzt SlimDX.
SlimDX ist ein reiner Wrapper um DirectX. Man wird hier sicherlich mehr machen müssen als bei XNA aber kann damit auch alles erreichen was man möchte.

Mein Rat: Kann dir XNA zuwenig, nimm SlimDX.
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
Benutzeravatar
Schrompf
Moderator
Beiträge: 5161
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von Schrompf »

Wurde schon gesagt, aber: SlimDX ist Dein Freund. Ist eine direkte Schnittstelle zu DX9, DX10 und DX11, ohne irgendwelche Versuche, dass für die Anfänger schön zu rechnen. Bedeutet für Dich evtl. etwas mehr Arbeit als XNA, aber damit kannst Du alles machen, was Deine Grafikkarte Dir bietet.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Seraph
Site Admin
Beiträge: 1184
Registriert: 18.04.2002, 21:53

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von Seraph »

Wir benutzen seit ca. einem halben Jahr SlimDX (sind von XNA umgestiegen nachdem wir die Schnauze voll hatten davon ;)) und sind damit recht zufrieden. Auch wenn ein paar Dinge aus XNA fehlen, so ist es XNA eindeutig ueberlegen. (Sofern man nicht plant fuer die Xbox360 zu entwickeln.)
Benutzeravatar
The_Real_Black
Establishment
Beiträge: 110
Registriert: 19.01.2008, 19:57
Benutzertext: Happy Coding
Kontaktdaten:

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von The_Real_Black »

Alexander Kornrumpf hat geschrieben:
The_Real_Black hat geschrieben:
Dazu zwei Fragen:
Kann man XNA 4.0 mit Visual Studio 2010 Ultimate kombinieren oder braucht man dafür zwingend eine Experess Edition?
Gab es ein kommerzielles "Windows-" Spiel welches schon mal NXA verwendet hat? Wie sehen denn Spieleentwickler XNA? (Zukunft der Spiele oder Mode-Erscheinung)
Ich würde mich extrem wundern, wenn die Express Edition hier mehr können sollte als die Ultimate Edition. Allerdings wundert es mich auch extrem dass sich jemand für Hobby-Entwicklung daheim die Ultimate Edition leistet. MSDNAA geht nur bis Professional, oder?
Für das erste XNA kann ich mich erinnern benötigte man eine Express Edition da es sich nicht auf die Professional Version von VS 2005/2008 installieren lassen wollte. In Wiki wird man fündig "Seit der Version 2.0 kann XNA zusammen mit jeder Version von Visual Studio 2005 benutzt werden". Seit her heist es auch nicht mehr XNA Game Studio Express.

PS ja im MSDNAA gibt es leider keine 64 Bit Version vom Ultimate ^^
Happy Coding.
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von eXile »

Seraph hat geschrieben:Auch wenn ein paar Dinge aus XNA fehlen, so ist es XNA eindeutig ueberlegen.
Welche habt ihr denn am meisten vermisst? Die XNA-Math-Library ist ja z.B. Bestandteil vom DirectX-SDK geworden, die könnte man z.B. weiterbenutzen.
AppleEater
Beiträge: 3
Registriert: 25.09.2010, 08:42

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von AppleEater »

Vielen Dank für die schnellen Antworten. Ich glaube ich versuchs mal mit SlimDX, wenigstens kann ich dann einen grossen Teil des C# Code weiterverwenden. Werde mal überlegen ob ich Teile von XNA mit SlimDX selbst aufbauen kann. FBX-Modelle, SpriteBatches, GraphicsDevice usw. haben unter XNA schon vieles vereinfacht. Ich werde versuchen ein neues Konzept aufzubauen, das eine Schnittstelle zu SlimDX definiert und meine "Engine" oder "Programm-Logik" komplett vom Renderer trennt. So bin ich in Zukunft weniger abhängig wie im Moment von XNA und muss bei einer Portierung nur eine neue Schnittstelle ableiten. Dazu habe ich selbst mal einen einfachen Wrapper von C++ auf C# geschrieben: Einen Loader für das Progressive Graphics File Format "PGF"(Link: http://de.wikipedia.org/wiki/Progressive_Graphics_File) das "Region of Interest" unterstützt und hätte so die Möglichkeit fehlende Schnittstellen von SlimDX evtl. selbst zu machen.
Seraph
Site Admin
Beiträge: 1184
Registriert: 18.04.2002, 21:53

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von Seraph »

eXile hat geschrieben:
Seraph hat geschrieben:Auch wenn ein paar Dinge aus XNA fehlen, so ist es XNA eindeutig ueberlegen.
Welche habt ihr denn am meisten vermisst? Die XNA-Math-Library ist ja z.B. Bestandteil vom DirectX-SDK geworden, die könnte man z.B. weiterbenutzen.
Hmm, ein paar grundlegende Klassen wie GameTime, Game, GameServices. Aber das sind Dinge die man recht schnell selbst schreiben kann und was wir teils schon vorher selbst geschrieben gehabt haben.

Das Einzige was ich wirklich vermisst habe ist das einfache Laden von Models, aber da sind wir gerade mehr oder weniger am Umschwenken auf Assimp und ein bissl eigenes Kram.


Aber dafuer sind wir halt etliche Beschraenkungen los geworden und ich fange an D2D zu moegen. Ich werde mein GUI wohl demnaechst darauf umbauen.
AppleEater
Beiträge: 3
Registriert: 25.09.2010, 08:42

Re: XNA 4.0 Das Ende der Flexibilität?

Beitrag von AppleEater »

Ich habe mich entschieden XNA 4.0 nicht einzusetzen weil es einfach zu stark einschränkt. Seit ca. einem Monat habe ich nun angefangen eine Engine zu schreiben die Schnittstellen für das eigentliche Programm bereitstellt die völlig von XNA unabhäng sind. Die Verbindung mit XNA3.1 oder neu auch SlimDX geschieht Engine-intern. Für mein Hauptprogramm spielt es keine Rolle mit welcher Technik im Hintergrund gearbeitet wird. Ich bin soweit gegangen, dass ich selbst für Vektoren und Matrizen einfach die gesamte Mathemaik und alle Geometrien in eigene unabhängige Klassen und Strukturen in C# geschrieben habe. Die können so ziemlich alles was XNA oder SlimDX bieten, überraschenderweise auch schneller. So bin ich in Zukunft, wenn wieder mal grosse Änderungen wie in XNA 4.0 auftauchen, gewappnet und muss nur die interne Schnittstelle anpassen und eingie Konvertierungen vornehmen. Inzwischen bin ich soweit dass ich meine GUI (Eine Art Windows-Oberfläche mit Buttons, Textboxen usw.) wieder am Laufen habe. Ob XNA oder SlimDX, das Resultat sieht genau gleich aus, ausser das SlimDX (mit Direct3D9) etwas effizienter ist. Ich habe zum Beispiel eine eigene SpriteBatch Klasse geschrieben die alles kann wie jene von XNA, die Fonts werden meiner Meinung nach qualitativ sogar besser dargestellt. Auch mehrzeiliger Text kann direkt übergeben werden inklusive verschiedener Alignment Möglichkeiten.
Der Aufwand für das Ganze ist allerdings gewaltig. Über 200 Source-Files sind bereits entstanden und ein Ende ist bei weitem nicht in Sicht. Als nächstes werde ich ein paar Grundobjekte wie SkyBox und einfache Geometrien einbauen, dann wirds erst wieder richtig 3d.
Antworten