XBox 360: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Weiterleitung nach wikipedia:de:Xbox 360 erstellt
 
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
#REDIRECT [[wikipedia:de:Xbox_360]]
{{löschen}}
[[Kategorie:Begriffe]]
 
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 [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 [[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.
Also statt:
<source lang="csharp">
Vector3 v1 = new Vector3(1, 2, 3);
Vector3 v2 = new Vector3(3, 2, 1);
Vector3 v2 = v1 + v2;
</source>
nimmt man besser
<source lang="csharp">
Vector3 v1 = new Vector3(1, 2, 3);
Vector3 v2 = new Vector3(3, 2, 1);
Vector3 v2.X = v1.X + v2.X;
Vector3 v2.Y = v1.Y + v2.Y;
Vector3 v2.Z = v1.Z + v2.Z;
</source>
Damit das ganz etwas übersichtlicher wird, kann man das ganze mit einer [[Region|region]] umgeben:
<source lang="csharp">
Vector3 v1 = new Vector3(1, 2, 3);
Vector3 v2 = new Vector3(3, 2, 1);
#region v3 = v1 + v2;
Vector3 v2.X = v1.X + v2.X;
Vector3 v2.Y = v1.Y + v2.Y;
Vector3 v2.Z = v1.Z + v2.Z;
#endregion
</source>
Diese region kann man dann in [[VisualStudioTutorial|Visual Studio]] einklappen.
[[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 ==
<references />
[[Kategorie:Begriffe]][[Kategorie:Code-Beispiele]][[Kategorie:XNA]]</noinclude>
Abgerufen von „https://sopranium.de/XBox_360