XNA oyununu grafiksiz çalıştırın


11

Bir şey görüntülemeden bir XNA oyunu çalıştırmak için yine de olup olmadığını merak.

Bir oyuncunun ev sahibi olduğu ve diğer kişilerin oyununa bağlanabileceği bir istemci sunucu kurulumunda çalışan bir çalışma oyunum var.

Şimdi oyunu grafik kartı olmadan kararlı bir sunucuda bir ana bilgisayar olarak çalıştırmak istiyorum, temelde herhangi bir Draw () mantığı hiç çalıştırmak istemiyorum.

Gerçekten tüm oyun boyunca gitmek ve XNA tüm referansları kaldırmak gerekir?

İnsanlar bunu nasıl yaptı?

EDIT : Bunu yapmak istiyorum nedeni oyunda çalışan bir istemci sunucu kurulumu var ve ayrı bir "başsız" sunucu programı yapmak istemiyorum çünkü.


Neden Drawböyle bir kod yazamıyorsun if (headless) { return; }?
ashes999

1
@ asher999 Bunun tüm çizim ve grafik mantığını oyundan tamamen kaldıracağından emin değilim. Sanal sunucunun gerçek bir grafik bağdaştırıcısı olmayabilir.
JensB

Çıktı türünü değiştirmek veya çizimi atlamak, XNA'nın bir grafik cihazına olan bağımlılığını sihirli bir şekilde ortadan kaldırmaz. Bir grafik cihazı (özellikle dokular) gerektiren herhangi bir içerik yüklüyorsanız, önerilen çözümlerden herhangi birini kullanarak yüklenememesi çok iyi bir olasılıktır.
dadoo Games

Yanıtlar:


10

Sadece normal bir C # projesi yapın ve XNA ikili dosyalarını ekleyin. Bu, XNA veri türlerine ve çerçeve yöntemlerine erişmenizi sağlayacaktır. Oyunum bunu yapıyor ve kusursuz çalışıyor.


1
Sanırım sizin için Güncelleme gibi gerekli yöntemleri çağıran XNA gibi davranan bir sarıcı yazdınız mı? Bunu bir deneyeceğim, teşekkürler.
JensB

2

Cevap: bunu yapma. Bir oyun yapmanız gerekmiyorsa - yani; XNA'nın sunduğu şeylerden yararlanmak istemiyorsunuz, neden? Gerçekten oynamak istediğiniz oyunu başarılı bir şekilde simüle edebilen özel bir yazılım parçası geliştirmeye çalışmalısınız - tipik olarak bir tür konsol sistemi. Daha fazla ayrıntı verirseniz, yanıtımı daha az genel bir yanıtla güncelleyeceğim.


1
Size bir sebep verebilirim: birim testi. Çoğu zaman bir kod parçasını veya bölümünü, grafik yüklemek veya çizmek zorunda kalmadan test etmek istersiniz.
Stephen Tierney

3
@StephenTierney Sana başka bir neden daha verebilirim: denemiyor, bir oyun sunucusu (özel bir makinede) çalıştırmaya çalışıyor. Lütfen soruyu tekrar okuyun ve downvot'unuzu geri almayı düşünün.
Vaughan Hilts


1

Untitled'in öneri üzerine inşa etmek için, sadece DLL'lere referanslar ekleyebilir ve bunları varsayılan oyun döngülerini kullanmadan kullanabilirsiniz. Bunun örnekleri için içerik oluşturucular kulübündeki winforms eğitim serisine bakabilirsiniz: http://xbox.create.msdn.com/en-us/education/catalog/sample/winforms_series_2

Ayrıca daha da süslü olmak istiyorsanız, XNA oyun döngüsünün tamamını kendi özel ile değiştirebilir ve tüm süreci kontrol edebilirsiniz. Bu konuda daha fazla bilgi için /programming/6361691/custom-xna-game-loop-in-windows adresini ziyaret edin.


1

Bir XNA Projesinin Çıktı Türünü "Konsol Uygulaması" olarak değiştirirseniz, uygulama başlangıçta gerçek oyunun penceresini açmadan boş bir Konsol açar. Bu, testler yapmak istediğiniz için gerçekleştirmeye çalıştığınız şeyler için yararlı olabilir ve Konsolu hata ayıklama penceresi olarak kolayca kullanabilirsiniz.


1

Ayrıca güncelleme ve arama çizimlerini geçersiz kılmayı ve geri dönmeyi de düşünebilirsiniz.

Ayrıca, ana oyun sınıflarınızda, xna penceresinin sunucunuz gibi davranan oyunda örneklenmesini durdurması gereken graphicsdevice'yi aramayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.