Якщо ви не готові заплатити 10 000 доларів за XBOX або Playstation devkit, то єдиною консоллю, яку ви можете розробити, є XBOX 360, і єдиний спосіб зробити це - це XNA.
Для професійного розвитку, якщо вам дійсно не потрібно отримати 100% процесорної потужності XBOX (що більшість ігор, особливо 2D-ігри не потрібно), XNA, на мою думку, насправді набагато краща для розвитку.
Деякі помилки, які допустили інші відповіді:
XBOX має лише 3 ядра. Ви отримуєте доступ до всіх з допомогою XNA.
Кожне ядро має гіперточку та підтримку для 2-х гіперточок. Ви отримуєте доступ лише до 4/6 потоків. Один з цих потоків призначений для XNA. Інший - це нитка, до якої жоден розробник ігор не отримує доступу, оскільки її використовують ОС XBOX.
C # на XBOX набагато повільніше, ніж C # в Windows. XBOX використовує компактний CLR .NET, який дуже легкий і не має багатьох оптимізацій CLR на робочому столі. Функції безпеки XBOX не дозволяють програмам змінювати власний вихідний код. Це дуже важко навіть дозволити запускати .NET-код, а тим більше швидко працювати . Частина того, що робить керований код конкурентоспроможним у виконанні з власним кодом C ++, полягає в тому, що CLR може змінювати власний код для оптимізації когерентності кешу. Команда розробників XNA повинна стрибати через деякі досить великі обручі, щоб змусити C # запускатись на XBOX взагалі, і з цим обручами пов'язана вартість продуктивності.
Ви не будете ЛЮДИМО лінивими з розподілом пам'яті. XNA у Windows значно спрощує розподіл пам’яті, як можна було очікувати від керованого середовища. Однак у XBOX компактний CLR .NET використовує підбір і сміття до збирання сміття, а типовий підхід до запобігання заїкання у вашій грі завдяки колекціям - взагалі уникати колекцій. Для цього потрібно використовувати об'єктивні пули для своїх класів та використовувати структури для менших об'єктів, де ви зазвичай використовуєте класи в середовищі Windows. Об'єднання об'єднання, як правило, вимагає розподілити / безкоштовно модель управління об'єктом, яка не гірше (а може бути і трохи краще), ніж управління пам'яттю C ++.
Однак, розробка в C # / XNA все ще в багато разів швидша і простіша, ніж розробка в C ++ без DirectX API (що є XNA).
Ось статус гри, яку я роблю в XNA, після 4 тижнів роботи:
Це повинно дати вам уявлення про те, як неймовірно швидкий розвиток із бібліотекою / API XNA поєднується з C #.
Цей скріншот виведений XBOX приблизно в 65 кадрів в секунду.
Якщо ви хобі-розробник ігор і хочете зробити ігри для консолі, не тільки XNA + XBOX - ваш єдиний реалістичний варіант, це ще й досить дивовижний варіант, цікаве середовище для розробки та багато ігор XBOX Live Arcade. зроблено з XNA, і заробляв це сотні тисяч доларів. ( Лімбо, наприклад.)