XBox 360: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{löschen}}
Die XBox 360<ref name="XBOX">Wikipedia Artikel zur [[wikipedia:de:Xbox_360|XBox 360]]</ref> ist eine Spielekonsole der Firma [[wikipedia:de:Microsoft|Microsoft]]. Mit [[XNA]] können auch ''normale'' Konsolen für eigene Entwicklungen genutzt werden. Man benötigt also kein [[wikipedia:de:Xbox_360#Development_Kits|Development Kit]] um ein eigenes Spiel zu schreiben.
Die XBox 360<ref name="XBOX">Wikipedia Artikel zur [[wikipedia:de:Xbox_360|XBox 360]]</ref> ist eine Spielekonsole der Firma [[wikipedia:de:Microsoft|Microsoft]]. Mit [[XNA]] können auch ''normale'' Konsolen für eigene Entwicklungen genutzt werden. Man benötigt also kein [[wikipedia:de:Xbox_360#Development_Kits|Development Kit]] um ein eigenes Spiel zu schreiben.


Allerdings besteht diese Möglichkeit nur unter gewissen Einschränkungen. Es steht zum Beispiel nur ein kleiner Teil des [[.NET]]-Frameworks zur Verfügung, in der Hauptsache sind dies das [[Compact_Framework|.Net Compact Framework]] und [[XNA]]. Auch ist der direkte Hardwarezugriff, außer mit [[Shader|Shadern]], und der Zugriff auf das Dateisystem nicht möglich.
Allerdings besteht diese Möglichkeit nur unter gewissen Einschränkungen. Es steht zum Beispiel nur ein kleiner Teil des [[.NET]]-Frameworks zur Verfügung, in der Hauptsache sind dies das [https://de.wikipedia.org/wiki/.NET_Compact_Framework .Net Compact Framework] und [[XNA]]. Auch ist der direkte Hardwarezugriff, außer mit [[Shader|Shadern]], und der Zugriff auf das Dateisystem nicht möglich.


Besonders das Compact Framework ist extrem einschränkend. Zum Beispiel kann es [[Inlining|Methodeninlining]] nur für Methoden von einer [[Compiler|kompillierten]] Größe von 16 Bytes [[Bytecode]]<ref name="NetCompactPerformance">http://blogs.msdn.com/netcfteam/archive/2005/05/04/414820.aspx .NET Compact Framework version 2.0 Performance and Working Set FAQ</ref>. Auch [[Reflection]] und damit [[Serialisierung]] sind nur sehr eingeschränkt möglich. Man kann keine [[Generic|generische]] Reflection betreiben und für die Serialisierung braucht man einen [[Parameter|parameterlosen]] [[Konstruktor]].
Besonders das Compact Framework ist extrem einschränkend. Zum Beispiel kann es [[Inlining|Methodeninlining]] nur für Methoden von einer [[Compiler|kompillierten]] Größe von 16 Bytes [[Bytecode]]<ref name="NetCompactPerformance">http://blogs.msdn.com/netcfteam/archive/2005/05/04/414820.aspx .NET Compact Framework version 2.0 Performance and Working Set FAQ</ref>. Auch [[Reflection]] und damit Serialisierung sind nur sehr eingeschränkt möglich. Man kann keine [[Generic|generische]] [[Reflection]] betreiben und für die Serialisierung braucht man einen [[wikipedia:de:Parameter_(Informatik)#Parameter.C3.BCbergabe|parameterlosen]] [[Konstruktor]].


Um zumindest das Inlining-Problem etwas abzuschwächen kann man ''von Hand'' inlinen. Dazu fügt man (Achtung, jetzt wird es hässlich) den Code der eigentlich aufgerufenen Methode anstelle des Methodenaufrufs.
Um zumindest das Inlining-Problem etwas abzuschwächen kann man ''von Hand'' inlinen. Dazu fügt man (Achtung, jetzt wird es hässlich) den Code der eigentlich aufgerufenen Methode anstelle des Methodenaufrufs.
Zeile 9: Zeile 11:
<source lang="csharp">
<source lang="csharp">
Vector3 v1 = new Vector3(1, 2, 3);
Vector3 v1 = new Vector3(1, 2, 3);
Vector3 v2 = new Vector3(1, 2, 3);
Vector3 v2 = new Vector3(3, 2, 1);
Vector3 v2 = v1 + v2;
Vector3 v2 = v1 + v2;
</source>
</source>
Zeile 15: Zeile 17:
<source lang="csharp">
<source lang="csharp">
Vector3 v1 = new Vector3(1, 2, 3);
Vector3 v1 = new Vector3(1, 2, 3);
Vector3 v2 = new Vector3(1, 2, 3);
Vector3 v2 = new Vector3(3, 2, 1);
Vector3 v2.X = v1.X + v2.X;
Vector3 v2.X = v1.X + v2.X;
Vector3 v2.Y = v1.Y + v2.Y;
Vector3 v2.Y = v1.Y + v2.Y;
Zeile 23: Zeile 25:
<source lang="csharp">
<source lang="csharp">
Vector3 v1 = new Vector3(1, 2, 3);
Vector3 v1 = new Vector3(1, 2, 3);
Vector3 v2 = new Vector3(1, 2, 3);
Vector3 v2 = new Vector3(3, 2, 1);
#region v3 = v1 + v2;
#region v3 = v1 + v2;
Vector3 v2.X = v1.X + v2.X;
Vector3 v2.X = v1.X + v2.X;
Zeile 31: Zeile 33:
</source>
</source>
Diese region kann man dann in [[VisualStudioTutorial|Visual Studio]] einklappen.
Diese region kann man dann in [[VisualStudioTutorial|Visual Studio]] einklappen.
[[Bild:VSRegionEinklappen.png|none|Region eingeklappt]]<noinclude>
[[Bild:VSRegionEinklappen.png|none|Region eingeklappt]]
 
Weitere XBox Performance Hinweise gibt es hier<ref name="XBOXGameFest">http://www.ziggyware.com/readarticle.php?article_id=110&rowstart=2 Shawn Hargreaves: Understanding XNA Framework Performance</ref> und hier<ref name="NetCompactPerformance">http://blogs.msdn.com/netcfteam/archive/2005/05/04/414820.aspx .NET Compact Framework version 2.0 Performance and Working Set FAQ</ref><noinclude>
== Referenzen ==
== Referenzen ==
<references />
<references />
[[Kategorie:Begriffe]][[Kategorie:Code-Beispiele]][[Kategorie:XNA]]</noinclude>
[[Kategorie:Begriffe]][[Kategorie:Code-Beispiele]][[Kategorie:XNA]]</noinclude>
Abgerufen von „https://sopranium.de/XBox_360