Archiv verlassen und diese Seite im Standarddesign anzeigen : Microsoft XNA für plattformunabhängige Spiele
In Zeiten steigender Spielentwicklungskosten, wachsender Entwicklerteams und immer komplexer werdender Hardware, stellte Microsoft den Teilnehmern der Game Developers Conference 2006 in San Jose, CA das „XNA Framework (http://www.microsoft.com/xna/)“ vor und lieferte Vorabversionen der XNA Studio Tools aus.
Zur News: Microsoft XNA für plattformunabhängige Spiele (/news/2006-03/microsoft-xna-fuer-plattformunabhaengige-spiele/)
|Krypto|
21.03.2006, 20:46
Die Überschrift ist leich missverständlich gewählt. Was MS hier stärken will ist die Xbox360 und Windows mit DirectX als Plattformen. Von plattformunabhängigen Spielen kann hier keine Rede sein.
AndrewPoison
21.03.2006, 20:47
Interessant interessant - nur wo ist Linux?
Wenns von der Crash-Demo en Executable gibt hätt ich das gern mal ;)
alpensepp
21.03.2006, 20:54
Die Überschrift ist wirklich nicht gut gewählt. unter "Platformunabhängig" versteht der mitteleuropäische Durchschnittsbürger wohl etwas anderes!
Plattformunabhängig? Habe ich da was verpasst?
Eher microsoftabhängig, neudeutsch: (X)treme (N)on-independent (A)pplications.
@3) AndrewPoison: Ich denk mal auch für Linux wird es früher oder später eine Protierung geben. Natürlich nicht von MS, aber auch das .Net Framework wurde soweit ich weiß portiert.
Insgesamt ein guter Schritt finde ich. Besonders für die Spiele-Entwickler. Eine einheitliche Schnittstelle auch auf verschiedenen Plattformen ist was großartiges. (auch wenn jetzt bestimmt wieder die Meckerer kommen und es ganz schlimm finden, das "M$" ja nur seine Plattformen vermarkten will ... klar wollen sie das, die sind kein Wohltätigkeitsverein)
Sascha L
21.03.2006, 21:01
Der Titel ist richtig.
Der PC ist eine Plattform. Die Konsole ist eine Plattform. Dass die Playstation nicht unterstützt wird, ist ja wohl selbstverständlich.
Linux ist ein Betriebssystem.
WolleXPD
21.03.2006, 21:02
spiele schneller billiger und besser herstellen,das kommt bei den entwicklern immer gut an.
daumen!!!
@7) Sascha L: Pocket PC ist die 3. Plattform. (und denke mal die Smartphones (Win Mobile) werden in Zukunft auch was davon abbekommen)
AndrewPoison
21.03.2006, 21:05
Okay, dann ist es eben nicht OS-Unabhängig. Aber wenn der PC eine eigene Plattform darstellt, warum läuft es dann nur auf MS-OSen, und nicht auf Linux - ist doch auch auf dem PC? Also. Genau deswegen ist für mich Linux auch eine eigene "Plattform". Das ist wie eine Strasse: auf dieser können nicht nur Autos fahren, auch als Fußgänger kommt man drauf. Zwei völlig unterschiedliche Dinge.
Linuxprogramme laufen auch nicht auf der XBox. Sind sie deswegen schlecht?
Also was solls? MS macht Programme die auf MS-Betriebssystemen laufen. Verstehe das Theater nicht. Das schöne daran ist halt, das es trotzdem auf verschiedenen Plattformen läuft. Natürlich nicht auf allen, aber eben auf mehr als einer und das ist schonmal ein Schritt in die richtige Richtung.
Ich krieg regelmäßig sooo einen Hals wenn ich dich Linuxianer meckern höre, dass auf ihrem tollen BS nix läuft. Pech gehabt, ganz einfach. Programmierts euch selber, so ist das BS ja auch gedacht. Jeder kann dranrum basteln.
(das soll jetzt nicht heißen das ich Linux schlecht finde. Aber man muß es doch nicht zwanghaft für alles einsetzen wollen. Ich nehm doch auch kein Win98 um einen dicken Server zu betrieben ...)
BunkerFunker
21.03.2006, 21:26
Die Überschrift IST schlecht. Hab als erstes gedacht "M$ und plattformunabhängig (Linux etc) ? Sowas würde M$ nie machen".
Da es hier NUR um M$-"Plattformen"(richtig wäre "Hardware") geht, ist es mehr als gewagt dies als unabhängig zu bezeichnen.
beeblebroxx
21.03.2006, 21:32
@11) Hier gings um die , wie ich auch finde, schlecht gewählte Überschrift ;)
HappyMutant
21.03.2006, 21:43
Schöne Worte, aber irgendwie ist es doch nur der Versuch C# als Programmiersprache zu etablieren. Das der Bungie-Entwickler schwärmt wie toll das alles ist, sollte ja keinen verwundern. Letztendlich braucht es ja aber wohl doch Anpassungen für jede Plattform, nur das man eben alles mit .net und C# machen kann. Möglich das "XNA" die Arbeit erleichtert, am Ende hängt es aber immer noch von den Firmen ab, ob und wie sie auf die verschiedenen Plattformen anpassen. Das man so die Microsoft-Plattform von den anderen eher distanziert (durch DirectX eh schon passiert) steht leider nicht in der Pressemitteilung.
Schorsch
21.03.2006, 21:46
Plattformunabhängigkeit ist die Eigenschaft eines Programms, auf verschiedenen Computersystemen mit Unterschieden in Architektur, Prozessor, Compiler, weiteren Tools, die zur Übersetzung notwendig sind und Betriebssystem etc. lauffähig zu sein. Quelle (http://de.wikipedia.org/wiki/Plattformunabh%C3%A4ngig)
Ich würde sagen, dies trifft hier wohl nicht ganz zu.
@15) Schorsch: Ich find schon, dass das zutrifft. Es sind verschiedene Architekturen und Prozessoren, verschiedene Compiler und Tools werden mit Sicherheit auch benutzt und die BS' sind auch unterschiedlich. Also was trifft nicht zu?
Schorsch
21.03.2006, 22:03
Das BS ist vom Grundgerüst her überall Windows, nur die Oberflächen sind unterschiedlich.
Finkenelch
21.03.2006, 22:03
Ich will ja niemandem zu nahe treten, aber die News klingt wie ein MS-Werbetext:
"XNA Build bietet dem Entwicklungsstudio ebenso die Grundlage die Wechselbeziehungen und Abhängigkeiten der Assets untereinander einfacher zu überwachen. Das hat viele Vorteile. Beispielsweise können ungenutzte oder verwaiste Inhalte aufgespürt werden. Tools wie XNA Build sollen dem Entwickler so die Möglichkeit geben, weniger Zeit in den Aufbau und die Entwicklung der intern verwendeten Tool-Infrastruktur zu stecken und stattdessen den Zeitgewinn in die eigentliche Spielentwicklung zu investieren. "
Das ist total schwammig, ziemliches Marketingblabla.
Mal abgesehen davon haben die Kritiker hier vollkommen recht, wenn sie die Multiplattformfähigkeit anzweifeln. Wenn es MS damit ernst wäre, würden sie .Net vernünftig auf Linux/OS X portieren. Das wäre dann eine echte Erleichterung für (Spiele)entwickler. Es gibt zwar ein diesbezügliches Projekt (Mono), aber die Entwickler haben sicher besseres zu tun, als jede neue Spitzfindigkeit von Microsoft zu implementieren.
Insgesamt hört sich das wie ein weiterer Versuch an, .Net zu pushen. In dem Zusammenhang verstehe ich nur die Betonung auf C# nicht.
Mal eine rein technische Frage: kostet .Net im Zweifel nicht Leistung? Schließlich wird der Quelltext ja wohl nur in Intermediatecode umgewandelt und dann erst zur Laufzeit compiliert. Das scheint für Spiele ja nicht unbedingt ideal, auch wenn die Verluste nicht unbedingt in der Größenordnung von Java-Bytecode liegen werden.
Da ich bisher nur oberflächlich Berührung mit C# hatte kann ich mich natürlich auch irren...
mfg
Finkenelch
Muhviehstar
21.03.2006, 22:21
Der schöne Saleen S7 wird gecrasht :(
Mal sehen mit welchem Speed die ersten Spiele, die von dieser Entwicklungsplattform kommen, laufen.
Sascha L
21.03.2006, 22:31
@18: u.a. ist der Sinn von .net, dass die Programme, etc. so optimiert sind, dass sie im Idealfall sogar flotter als normale Win32-Anwendungen sind. Also müsste, wenn die Entwickler es richtig umsetzten sogar ein Vorteil gegenüber Win32-Anwendungen da sein.
@Sascha:
Ja schon, nur wird das selten der Fall sein. Win32 ist sowieso ein falscher Begriff, denn .NET Programme sind auch Win32 Anwendungen, nur dass sie erst beim Aufruf kompiliert werden. Genau deshalb sind vorkompilierte Programme zumindest beim 1. Start auch schneller.
Ich weiß zwar nicht, wie es beim XNA ist, allerdings hatte bisher C++ mit DirectX einen kleinen Geschwindigkeitsvorteil gegenüber .NET mit DirectX .NET, da DirectX .NET nur über einen Wrapper ging. Wie das bei XNA ist weiß ich nicht, der Nachteil von .NET ist im obigen Falle allerdings sehr klein, etwa 2-4% langsamer sind die .NET Games.
Insgesamt finde ich das ganze ne super Sache von MS, damit unterstützen sie die Spieleentwickler, auf .NET umzusteigen, was bisher nicht viele gemacht haben :freak
Finkenelch
21.03.2006, 22:52
@20: wo hast du das denn her? :) Wenn ich ein Programm besonders schnell bekommen möchte, dann hängt das neben meinen Programmierfähigkeiten v.a. von der Qualität des Compilers ab (der im Idealfall besonderheiten meiner CPU ausnutzen kann, siehe die enorm guten C-Compiler von Intel). .Net ist aber ersteinmal eine virtuelle Maschine, die den erzeugten Zwischencode zur Laufzeit übersetzen muss. Das sollte schon Zeit kosten (sogar relativ viel). Jetzt könnte man noch argumentieren, dass ein compiliertes Win32-Programm natürlich auch nicht an die Spezifika einer bestimmte Maschine angepasst ist. Aber spätestens bei der Programmentwicklung für die XBOX erübrigt sich dieses Argument. Da kann ich mir beim besten Willen nicht vorstellen, dass ein in C#, J# oder weiss der Geier was für einer .Net-Sprache geschriebene Code schneller ausgeführt wird als natives C oder wenn's ganz hart kommt Assembler (keine Ahnung ob bei der Entwicklung für Konsolen so hardwarenah gearbeitet wird, anbieten würde es sich ja).
Also wenn du wirklich meinst, .Net könnte zur Beschleunigung von Software beitragen, dann hätte ich dafür schon gern ein paar Belege.
mfg
Finkenelch
Siberian..Husky
21.03.2006, 23:01
@20:
das ist das ziel. leider scheint dieser idealfall recht selten zu sein. abgesehen davon das die geschwindigkeit eh zum großen teil alein von den verwendeten algorithmen abhängig ist, ist es bisher nicht gelungen einen just in time compiler zu schreiben der zuverlässig schnelleren code erzeugt als ihre "normalen" vettern. dafür verliert man mit solchen sprachen allerdings einen großen teil an kontrolle, die für solche anwendungen ganz sicher ganz nützlich ist.
ansonsten sehe ich das ähnlich wie die anderen hier: der text liest sich absolut wie das typische marketing geblubber. code der ausschließlich auf dem selben betriebsystem(windows), mit den selben bibliotheken(directx, .net), übersetzt von den selben compilern(.net) läuft, ist abolsut nicht plattformunabhängig.
eigentlich ist dieses produkt also ziemlich unnütz. wer mag kann auch so wunderbar directx basierte C# oder C++ programme schreiben die auf einem windows pc genauso funktionieren wie auf einer xbox....
P.S.: @ 18: die verluste liegen im selben bereich wie bei java - die geschwindigkeit ist mit normalem C code also vergleichbar, wenn auch in der regel ein ganz klein wenig langsamer(ist allerdings eher unerheblich). das java so einen langsamen eindruckt macht liegt daran das die standard bibliothken von java totaler schrott sind - die geschwindigkeit liegt eben vorallem bei der logik des programms, und nicht beider semantik...
sunny-side_down
21.03.2006, 23:16
Ich dachte eigentlich bisher immer, dass DirectX und .NET genau das erledigen sollen. Die bieten doch genau solche Schnittstellen an. Im Grunde wäre XNA dann doch nur eine Erweiterung und in gewissen Maße eine Verallgemeinerung dieses Konzepts. Aber warum nicht einfach weiter bei DX und .NET bleiben? Verstehe ich nicht ganz.
an den Schreiber dieses Artikels@ Der Titel ist irreführend und unpassend! Plattformenunabhängigkeit bedeutet auch unabhängig und nicht nur teilweise. Titel wie XNA für XBOX vs. Win wäre passender.
Aber warum nicht einfach weiter bei DX und .NET bleiben?
weil das marketing so schöner ist und alle denken, dass sie etwas schrecklich neues bekommen.
@23:
Was meinst du mit Kontrolle? Die ganze Speicherverwaltung und die unzähligen Pointer, die man in C++ alle selber verwalten musste? Ich finde es nur von Vorteil, wenn das wegfällt :D
dafür greift der gc immer dann ein, wenn man ihn am wenigsten gebrauchen kann.
(nicht falsch verstehen. es gibt viele anwendungsfällt, bei denen ich sofort nach einem gc schreien würde, nur muss man sich immer der probleme bewusst sein.)
KleinerMann
22.03.2006, 00:21
Ich wollte auch sagen, das Plattformunabhängig passt nicht. Wenn es das wäre, würde XNS sogar mit Handys und PPC und allem funzen.
hoschieee
22.03.2006, 00:48
Ein Tool fuer die XBOX und Windows, und dass ist dann Multi-Plattform?
Irgendwas habe ich wohl in Deutsch falsch verstanden...
MountWalker
22.03.2006, 01:19
@3) AndrewPoison: Ich denk mal auch für Linux wird es früher oder später eine Protierung geben. Natürlich nicht von MS, aber auch das .Net Framework wurde soweit ich weiß portiert.1. Nein es wird keine "Portierung" von XNA auf Linux geben, weil die Lizenz das schlichtweg verbietet. Was es gibt ist nur die kränklelnde Portierung von DirectX-DLLs auf eine Wine-Umgebung durch Cedega, diese wird aber nie perfekt sein und wirbt immer mit optimaler Unterstützung für Spiele, die DirectX so gut wie gar nicht nutzen und meist auch völlig ohne DirectX auf Linux nativ portiert werden, wie etwa Doom3.
2. Es gibt keine "Portierung" von .Net auf Linux, es gibt einen .Net-Standard, der sogar bei der ISO eingetragen ist. Für diesen Standard gibt es eine freie Runtime und Entwicklungsumgebung namens "Mono". Diese umfasst weitestgehend nur die Dinge, die auch im .Net-Standard stehen. Genau wie Sun das mit Java macht, baut aber auch Microsoft in die eigene .Net-Umgebung viele Funtkionen ein, die nicht zum Standard gehören und die dann eben von vielen mitbenutzt werden, was dazu führt, dass viele Programme eben nur mit Microsoft-Runtime laufen, wie viele Java-Programme eben auch nur mit Sun-Runtime laufen.
@ News: Setzen sechs !!!
Das is lediglich eine Verstümmelung des DirectX SDK für XBOX Ansprüche...
LisasPapa
22.03.2006, 09:30
@28 (ghorst)
Dafür gibt es jetzt aber einen zweiten Proz. und dann merkt man vom gc nicht mehr wirklick viel. Und die Zeiten, wo es auf jeden Takt ankam sind eindeutig vorbei.
der dir bei einer numa architektur, wie sie etwa amd verbaut, nicht für einen gc des anderen prozessors brauchbar ist.
oder meinstest du den zweiten core?
mal ne fragen am rande an die experten: wie hält es das .net-framework eigentlich mit threads? hat jeder thread seinen eigenen gc oder nur einen für alle?
Also Leute !
Windows >= XP und XBox >= 360 zusammen als "plattformunabhängig" zu bezeichnen ist recht gewagt, nicht ?