Запустіть гру XNA без графіки


11

Цікаво, чи все-таки можна запустити гру XNA, не виставляючи нічого.

У мене працює робоча гра, яка працює в налаштуваннях клієнтського сервера, де один гравець є господарем, а інші люди можуть підключитися до його гри.

Тепер я хочу мати можливість запускати гру як хост на вирішеному сервері без графічної картки, я взагалі не хочу запускати будь-яку логіку Draw ().

Мені справді потрібно пройти всю гру та видалити всі посилання на XNA?

Як це зробили люди?

EDIT : Причина, яку я хочу зробити це, полягає в тому, що у мене в грі встановлена ​​робоча програма клієнтського сервера, і я не хочу робити окрему серверну програму "без голови".


Чому ви не можете просто написати код на Drawзразок if (headless) { return; }?
ashes999

1
@ asher999 Не впевнений, що це повністю видалить з гри всю логіку малюнка та графіки. Віртуальний сервер може взагалі не мати справжнього графічного адаптера.
JensB

Зміна типу виводу або пропуск малюнка не дозволить магічним чином усунути залежність XNA від графічного пристрою. Якщо ви завантажуєте будь-який вміст, для якого потрібен графічний пристрій (особливо текстури), є дуже хороший шанс, що вони не зможуть завантажитися, використовуючи будь-яке із запропонованих рішень.
dadoo Games

Відповіді:


10

Просто зробіть звичайний проект C # і включіть бінарні файли XNA. Це дозволить отримати доступ до типів даних XNA та методів фреймворку. Моя гра робить це, і вона працює бездоганно.


1
Я здогадуюсь, що ви написали обгортку, яка діє як XNA, викликаючи необхідні методи, такі як Update для вас? Я підкажу, спасибі.
JensB

2

Відповідь: не робіть цього. Якщо вам не потрібно робити гру - тобто; Ви не хочете скористатися тим, що пропонує XNA, чому це робити? Вам справді слід розробити розробку спеціального програмного забезпечення, яке може успішно імітувати гру, в яку ви хочете грати - як правило, консольну систему. Якщо ви дасте більше деталей, я оновлю свою відповідь менш загальною відповіддю.


1
Я можу навести вам одну причину: тестування одиниць. Часто ви хочете перевірити фрагмент або розділ коду, не завантажуючи або малювати та графіки.
Стівен Тірні

3
@StephenTierney Я можу навести вам ще одну причину: він не намагається, він намагається запустити ігровий сервер (на спеціальній машині). Будь ласка, перечитайте це питання та подумайте про те, як взяти свій голос.
Vaughan Hilts


1

Щоб будувати пропозицію без назви, ви можете просто включити посилання на DLL-файли та використовувати їх, не використовуючи жодного циклу гри за замовчуванням. Для прикладів цього ви можете ознайомитись із серією підручників з winforms у клубі творців: http://xbox.create.msdn.com/en-us/education/catalog/sample/winforms_series_2

Крім того, якщо ви хочете отримати ще більше фантазії, ви можете замінити весь цикл ігор XNA на власний власний та контролювати весь процес. Більш детальну інформацію про це дивіться на /programming/6361691/custom-xna-game-loop-in-windows


1

Якщо ви зміните Тип виходу проекту XNA на "Консольний додаток", програма просто відкриє порожню консоль при запуску, не відкриваючи вікно фактичної гри. Це може бути корисно для того, що ви намагаєтеся зробити, оскільки ви хочете робити тести, і ви можете дуже легко використовувати Консоль як вікно налагодження.


1

Ви також можете розглянути можливість зміни оновлення та здійснення дзвінків і просто повернутися.

Крім того, не дзвоніть на графічний пристрій у ваших основних класах ігор, що повинно зупинити використання вікна xna у грі, що виконує функції вашого сервера.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.