Jalankan game XNA tanpa grafis

11

Ingin tahu apakah ada cara menjalankan game XNA tanpa menampilkan apa pun.

Saya memiliki permainan yang berjalan di pengaturan server klien di mana satu pemain adalah tuan rumah dan orang lain dapat terhubung ke permainannya.

Saya sekarang ingin dapat menjalankan game sebagai tuan rumah di server yang dideklarasi tanpa kartu grafis, pada dasarnya saya tidak ingin menjalankan logika Draw () sama sekali.

Apakah saya benar-benar harus melalui seluruh permainan dan menghapus semua referensi ke XNA?

Bagaimana orang melakukan ini?

EDIT : Alasan saya ingin melakukan ini adalah karena saya memiliki pengaturan server klien yang berfungsi dalam permainan dan saya tidak ingin membuat program server "tanpa kepala" yang terpisah.

JensB
sumber
Mengapa kau tidak bisa hanya menulis kode di Drawseperti if (headless) { return; }?
ashes999
1
@ asher999 Tidak yakin apakah itu akan sepenuhnya menghapus semua logika menggambar dan grafik dari permainan. Server virtual mungkin tidak memiliki adaptor grafis nyata sama sekali.
JensB
Mengubah tipe output atau melewatkan gambar tidak akan secara ajaib menghilangkan ketergantungan XNA pada perangkat grafis. Jika Anda memuat konten apa pun yang memerlukan perangkat grafis (terutama tekstur), ada kemungkinan sangat besar bahwa mereka akan gagal memuat menggunakan salah satu solusi yang diusulkan.
Permainan dadoo

Jawaban:

10

Buat saja proyek C # normal dan sertakan binari XNA. Ini akan memberi Anda akses ke tipe data XNA dan metode kerangka kerja. Gim saya melakukan ini dan berfungsi dengan sempurna.

tanpa judul
sumber
1
Saya kira Anda menulis pembungkus yang bertindak seperti XNA memanggil metode yang diperlukan seperti Pembaruan untuk Anda? Saya akan mencobanya, terima kasih.
JensB
2

Jawabannya adalah: jangan lakukan ini. Jika Anda tidak perlu membuat game - yaitu; Anda tidak mencari untuk mengambil keuntungan dari hal-hal yang ditawarkan XNA, mengapa melakukannya? Anda benar-benar harus melihat ke dalam mengembangkan perangkat lunak khusus yang dapat berhasil mensimulasikan permainan yang ingin Anda mainkan - biasanya semacam sistem konsol. Jika Anda memberikan rincian lebih lanjut, saya akan memperbarui jawaban saya dengan respons yang kurang umum.

Vaughan Hilts
sumber
1
Saya dapat memberi Anda satu alasan: pengujian unit. Seringkali Anda ingin menguji bagian atau bagian dari kode tanpa harus memuat atau menggambar dan grafik.
Stephen Tierney
3
@StephenTierney Saya bisa memberi Anda satu alasan lain: dia tidak berusaha, dia mencoba menjalankan server permainan (pada mesin khusus). Harap baca kembali pertanyaan dan pertimbangkan untuk mengambil kembali downvote Anda.
Vaughan Hilts
1

Nah, jika Anda hanya ingin menghilangkan panggilan undian, apakah Anda sudah mencoba menggunakan ini: Suppress Draw

H3llrais3R
sumber
1

Untuk membangun saran tanpa judul, Anda bisa memasukkan referensi ke DLL dan menggunakannya tanpa menggunakan loop permainan default. Untuk contoh-contoh ini Anda dapat melihat seri tutorial winforms di klub pembuat: http://xbox.create.msdn.com/en-us/education/catalog/sample/winforms_series_2

Juga jika Anda ingin mendapatkan yang lebih mewah Anda dapat mengganti seluruh loop game XNA dengan kustom Anda sendiri, dan mengontrol seluruh proses. Untuk informasi lebih lanjut tentang tampilan ini di /programming/6361691/custom-xna-game-loop-in-windows

Hard Rock
sumber
1

Jika Anda mengubah Jenis Output dari Proyek XNA ke "Aplikasi Konsol", aplikasi tersebut hanya akan membuka Konsol kosong saat start-up, tanpa pernah membuka jendela gim yang sebenarnya. Ini mungkin berguna untuk apa yang ingin Anda capai, karena Anda ingin melakukan tes, dan Anda dapat dengan mudah menggunakan Konsol sebagai jendela debug.

UBSophung
sumber
1

Anda juga dapat mempertimbangkan untuk mengabaikan pembaruan dan membuat panggilan, dan kembali saja.

Juga, jangan panggil perangkat grafis di kelas gim utama Anda, yang seharusnya menghentikan jendela xna agar tidak dipasang pada gim yang bertindak sebagai server Anda.

Jason Coombes
sumber