XBox 360: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Wernerj (Diskussion | Beiträge)
K Verlinkung von "parameterlosen" Kosntruktor zu Wikipedia Artikel von Parameter
LeonH (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird 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 [[wikipedia:de:Parameter_(Informatik)#Parameter.C3.BCbergabe|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]].

Aktuelle Version vom 18. Oktober 2020, 13:55 Uhr


Die XBox 360[1] ist eine Spielekonsole der Firma Microsoft. Mit XNA können auch normale Konsolen für eigene Entwicklungen genutzt werden. Man benötigt also kein 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 .Net Compact Framework und XNA. Auch ist der direkte Hardwarezugriff, außer mit Shadern, und der Zugriff auf das Dateisystem nicht möglich.

Besonders das Compact Framework ist extrem einschränkend. Zum Beispiel kann es Methodeninlining nur für Methoden von einer kompillierten Größe von 16 Bytes Bytecode[2]. Auch Reflection und damit Serialisierung sind nur sehr eingeschränkt möglich. Man kann keine generische Reflection betreiben und für die Serialisierung braucht man einen 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:

Vector3 v1 = new Vector3(1, 2, 3);
Vector3 v2 = new Vector3(3, 2, 1);
Vector3 v2 = v1 + v2;

nimmt man besser

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;

Damit das ganz etwas übersichtlicher wird, kann man das ganze mit einer region umgeben:

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

Diese region kann man dann in Visual Studio einklappen.

Region eingeklappt
Region eingeklappt

Weitere XBox Performance Hinweise gibt es hier[3] und hier[2]

Referenzen

  1. Wikipedia Artikel zur XBox 360
  2. 2,0 2,1 http://blogs.msdn.com/netcfteam/archive/2005/05/04/414820.aspx .NET Compact Framework version 2.0 Performance and Working Set FAQ
  3. http://www.ziggyware.com/readarticle.php?article_id=110&rowstart=2 Shawn Hargreaves: Understanding XNA Framework Performance