Jeśli nie jesteś gotów zapłacić 10 000 $ za zestaw XBOX lub Playstation, jedyną konsolą, którą możesz opracować, jest XBOX 360, a jedynym sposobem na to jest XNA.
Do profesjonalnego rozwoju, chyba że naprawdę potrzebujesz 100% mocy obliczeniowej XBOX-a (którego większość gier, zwłaszcza gier 2D nie potrzebuje), to moim zdaniem XNA jest znacznie lepszy w rozwoju.
Niektóre błędy popełniane przez innych użytkowników:
XBOX ma tylko 3 rdzenie. Masz dostęp do wszystkich dzięki XNA.
Każdy rdzeń ma hyperthreading i obsługuje 2 hyperthreads. Masz dostęp tylko do wątków 4/6. Jeden z tych wątków dotyczy XNA. Drugi to wątek, do którego nie mają dostępu twórcy gier, ponieważ jest używany przez system operacyjny XBOX.
C # na XBOX jest znacznie wolniejszy niż C # w Windows. XBOX korzysta z .NET compact CLR, który jest bardzo lekki i nie ma wielu optmizacji pulpitu CLR. Funkcje bezpieczeństwa XBOX zapobiegają modyfikowaniu przez programy własnego kodu źródłowego. To sprawia, że bardzo trudno jest nawet uruchomić kod .NET, a tym bardziej szybko . Częścią tego, co czyni kod zarządzany konkurencyjnym pod względem wydajności z rodzimym kodem C ++, jest to, że CLR może modyfikować swój własny kod, aby zoptymalizować spójność pamięci podręcznej. Zespół deweloperów XNA musi przeskoczyć przez całkiem duże obręcze, aby w ogóle uruchomić C # na XBOX, i wiąże się z tym koszt wydajności.
Przy przydzielaniu pamięci nie będziesz zbyt leniwy. XNA w systemie Windows znacznie upraszcza przydzielanie pamięci, jak można oczekiwać od środowiska zarządzanego. Jednak w XBOX kompaktowy CLR .NET stosuje szerokie i kompaktowe podejście do zbierania śmieci, a typowym podejściem do zapobiegania zacinaniu się w grze z powodu kolekcji jest całkowite uniknięcie kolekcji. Wymaga to użycia pul obiektów dla klas i struktur dla mniejszych obiektów, gdzie zwykle używasz klas w środowisku Windows. Pule obiektów na ogół wymagają modelu zarządzania przydziałami / wolnymi obiektami, który nie jest gorszy (a może trochę lepszy) niż zarządzanie pamięcią C ++.
To powiedziawszy, rozwój w C # / XNA jest wciąż wiele razy szybszy i łatwiejszy niż rozwój w C ++ bez DirectX API (którym jest XNA).
Oto stan gry, którą tworzę w XNA po 4 tygodniach pracy:
To powinno dać ci wyobrażenie, jak niesamowicie szybki rozwój z biblioteką / API XNA jest połączony z C #.
Ten zrzut ekranu jest renderowany przez XBOX przy około 65 klatkach na sekundę.
Jeśli jesteś twórcą gier hobbystycznych i chcesz tworzyć gry na konsolę, XNA + XBOX to nie tylko Twoja jedyna realistyczna opcja, ale także niesamowita opcja, fajne środowisko programistyczne i wiele gier XBOX Live Arcade. wykonane za pomocą XNA i zarobiły na tym setki tysięcy dolarów. ( Na przykład otchłań ).