XNA 4.0 Das Ende der Flexibilität?
-
- Beiträge: 3
- Registriert: 25.09.2010, 08:42
XNA 4.0 Das Ende der Flexibilität?
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?
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?
- 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?
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.
-
- Moderator
- Beiträge: 2157
- Registriert: 25.02.2009, 13:37
Re: XNA 4.0 Das Ende der Flexibilität?
Ach ich dachte XNA wäre die Nachfolgetechnologie von managedDX.
- 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?
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.Alexander Kornrumpf hat geschrieben:Ach ich dachte XNA wäre die Nachfolgetechnologie von managedDX.
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.
- 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?
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
Gruß, Ky
-
- Moderator
- Beiträge: 2157
- Registriert: 25.02.2009, 13:37
Re: XNA 4.0 Das Ende der Flexibilität?
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?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)
Re: XNA 4.0 Das Ende der Flexibilität?
Hängt von der Subscription ab, hier ist drin: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?
Aber irgendwie keine x64-Versionen :(MSDNAA hat geschrieben:Visual Studio 2010 Ultimate (x86) - DVD (English)
- 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?
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.
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
- 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?
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.
Re: XNA 4.0 Das Ende der Flexibilität?
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.)
- 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?
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.Alexander Kornrumpf hat geschrieben: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?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)
PS ja im MSDNAA gibt es leider keine 64 Bit Version vom Ultimate ^^
Happy Coding.
Re: XNA 4.0 Das Ende der Flexibilität?
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.Seraph hat geschrieben:Auch wenn ein paar Dinge aus XNA fehlen, so ist es XNA eindeutig ueberlegen.
-
- Beiträge: 3
- Registriert: 25.09.2010, 08:42
Re: XNA 4.0 Das Ende der Flexibilität?
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.
Re: XNA 4.0 Das Ende der Flexibilität?
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.eXile hat geschrieben: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.Seraph hat geschrieben:Auch wenn ein paar Dinge aus XNA fehlen, so ist es XNA eindeutig ueberlegen.
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.
-
- Beiträge: 3
- Registriert: 25.09.2010, 08:42
Re: XNA 4.0 Das Ende der Flexibilität?
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.
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.