Apa kemungkinan jaringan dengan XNA dan Xbox 360?


11

Saya tahu bahwa XNA untuk Xbox 360 memiliki akses terbatas ke jaringan, dikabarkan hanya memperbolehkan komunikasi melalui protokol Microsoft yang menguntungkan ke unit Xbox 360 lainnya.

Apa saja kemungkinan jaringan yang ditawarkan XNA? Berapa banyak unit Xbox 360 yang dapat dihubungkan ke subnet yang sama? 16 maksimum? Bisakah Xbox mengirim data ke Xbox lain di subnet seperti komunikasi Peer-to-peer? Bisakah Xbox berkomunikasi dengan XNA di PC Windows juga? Apakah ada perangkat lain yang dapat Anda hubungi?

Dan bagaimana dengan server game? Bisakah Anda mengatur server game multi-pemain Anda sendiri dan menghubungkan Xbox ke sana dan berkomunikasi secara bebas? Di platform apa Anda akan menuliskan kode server game? C ++ di Unix? Berapa banyak unit Xbox yang dapat terhubung ke server pada suatu waktu? Jika Anda tidak dapat mengatur server gim Anda sendiri, adakah 'peretasan' tidak resmi yang memungkinkan pengembang indie untuk mengembangkan dan menjalankan server gim?

Karena saya bukan pengembang Xbox (mis. Saya tidak memiliki devkit $ 10.000), saya tidak dapat menggunakan perpustakaan C ++ seperti Zoidcom .

Jawaban:


10

Transfer data melalui LAN atau Internet

Ada dua jenis game multiplayer online yang tersedia saat Anda membuat game berjaringan dengan XNA Game Studio:

  1. Sesi permainan tautan sistem (LAN)
  2. Sesi LANGSUNG. (Internet)

Jenis sesi tersedia:

  1. Gunakan System Link untuk gameplay Local Area Network
  2. Masuk ke Xbox LIVE dan Game untuk Windows - Server LIVE
  3. Gunakan LIVE untuk terhubung ke mesin lain melalui Internet saat game sedang dalam pengembangan

Transfer data antara unit Xbox dan PC yang terhubung diimplementasikan menggunakan kelas LocalNetworkGamer (didukung di Xbox 360) dan data ditulis menggunakan PacketWriter sebagai berikut:

foreach (LocalNetworkGamer gamer in session.LocalGamers)
{
    // Get the tank associated with this player.
    Tank myTank = gamer.Tag as Tank;
    // Write the data.
    packetWriter.Write(myTank.Position);
    packetWriter.Write(myTank.TankRotation);
    packetWriter.Write(myTank.TurretRotation);
    packetWriter.Write(myTank.IsFiring);
    packetWriter.Write(myTank.Health);

    // Send it to everyone.
    gamer.SendData(packetWriter, SendDataOptions.None);

}

Topologi jaringan

Untuk gim tautan sistem, Anda dapat menggunakan salah satu dari konfigurasi perangkat keras berikut untuk menguji gim berjaringan:

  • Satu komputer pengembangan dan satu Xbox 360
    (menjalankan satu instance dari game di komputer pengembangan dan satu di Xbox 360). Pembuatnya membutuhkan satu Xbox LIVE Silver dan satu keanggotaan Creators Club untuk menjalankan kode di Xbox 360.

  • Satu komputer pengembangan dan satu komputer klien
    (menjalankan satu instance permainan di setiap komputer). Pembuat tidak dapat menjalankan dua game XNA Framework jaringan pada saat yang sama di komputer yang sama. Pembuat membutuhkan mesin kedua untuk menjalankan instance gim kedua untuk tujuan pengujian. Tidak ada keanggotaan Xbox LIVE atau keanggotaan Klub Kreator yang diperlukan untuk skenario ini.

  • Satu komputer pengembangan dan dua konsol Xbox 360
    (menjalankan satu instance game di setiap Xbox 360). Di sini pencipta menyebarkan dan mendebug game di dua Xbox 360. Pembuatnya membutuhkan setidaknya dua keanggotaan Xbox LIVE Silver dan dua keanggotaan Creators Club (satu pasang untuk setiap Xbox 360) untuk skenario ini.

Transfer suara melalui jaringan

Data suara secara otomatis dikirim dan diputar ulang tanpa upaya judul apa pun. Judul dapat menggunakan ini untuk menerapkan obrolan tim atau suara kedekatan.

Kerangka XNA tidak memaparkan akses program langsung ke aliran data suara.

  • Apakah mereka memiliki akses suara? - NetworkGamer.HasVoice
  • Apakah mereka sedang berbicara? - NetworkGamer.IsTalking
  • Apakah mereka diredam? - NetworkGamer.IsMutedByLocalUser

4

XNA Games pada penggunaan 360 dan diharuskan untuk menggunakan Live- yang seingat saya berarti pengguna maks per "permainan" adalah 32, dan Anda tidak dapat terhubung ke layanan luar sama sekali.


Pembaruan 1: Formulir pos yang mengonfirmasi 32 pemain maks - http://forums.create.msdn.com/forums/t/27446.aspx


Pembaruan 2: Perlu dicatat bahwa XNA on Windows != (XNA on Xbox | XNA on Windows Phone)dengan mengatakan bahwa pada Windows, XNA dapat melakukan apa saja yang dapat dilakukan oleh aplikasi .NET lainnya; di Xbox dan WP7 XNA terbatas untuk menggunakan Layanan Xbox Live Gaming.

Dokumentasi MSDN di Xbox Live dan XNA - http://msdn.microsoft.com/en-us/library/bb975642.aspx


Pada halaman forum yang sama: "Bagi saya, saya menggunakan System.Net sebagai basis bangunan untuk komponen jaringan saya. Saya suka bagaimana tingkat rendahnya cukup yang dapat memberi saya hal-hal seperti" soket "," bind () ", dll. Tapi juga Anda dapat menggunakan perpustakaan jaringan lain, terserah selera masing-masing. :) "
Robinicks

1
Kebingungan Anda dapat dimengerti, tetapi pada Windows XNA dapat menggunakan komponen jaringan apa pun karena pada Windows XNA hanyalah kode .NET; namun, di Xbox Anda terpaksa menggunakan Live karena implementasi Xbox dari .NET Framework tidak mengandung implementasi jaringan apa pun kecuali untuk jaringan gaming Langsung.
Nate

2
XNA Games on 360 use and are required to use Live- Benar-benar salah. MSDN sendiri mengonfirmasi bahwa game Xbox 360 dapat menggunakan System Link (yang merupakan LAN) atau server game LIVE untuk gameplay multi-pemain. Jawaban yang sangat tidak informasi. Buka artikel MSDN yang Anda tautkan dan goto bagian "XNA Creators Club dan Xbox LIVE Membership Requirements" dan baca paragraf awal.
Robinicks

Saya membuat asumsi bahwa pertanyaannya adalah mengenai game berbasis Internet; karena dalam pengalaman saya, sistem-link pada LAN adalah skenario yang sangat langka ...
Nate

Itu asumsi yang aneh karena tujuan dari pertanyaan saya adalah untuk menanyakan kemungkinan, dan jawaban Anda menutup seluruh bidang kemungkinan terbuka dalam jaringan. Untungnya saya tidak percaya Anda langsung dan meneliti sendiri. Kalau tidak, banyak dari kita akan percaya bahwa Xbox 360 sebenarnya tidak memiliki kemampuan jaringan selain dari comm dengan server LIVE.
Robinicks
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.