การถ่ายโอนข้อมูลผ่าน LAN หรืออินเทอร์เน็ต
เกมมัลติเพลเยอร์ออนไลน์มีสองประเภทเมื่อคุณสร้างเกมเครือข่ายด้วย XNA Game Studio:
- เซสชันเกมลิงค์ระบบ (LAN)
- เซสชันสด (อินเทอร์เน็ต)
มีประเภทเซสชันให้บริการ:
- ใช้ System Link สำหรับการเล่นเกม Local Area Network
- ลงชื่อเข้าใช้ Xbox สดและเกมสำหรับ Windows - เซิร์ฟเวอร์สด
- ใช้ LIVE เพื่อเชื่อมต่อกับเครื่องอื่น ๆ ผ่านอินเทอร์เน็ตในขณะที่เกมกำลังพัฒนา
การถ่ายโอนข้อมูลระหว่างหน่วย Xbox และ PC ที่เชื่อมต่อมีการใช้งานโดยใช้คลาส LocalNetworkGamer (รองรับบน Xbox 360) และข้อมูลถูกเขียนโดยใช้ PacketWriter ดังนี้:
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);
}
โทโพโลยีเครือข่าย
สำหรับเกมลิงค์ของระบบคุณสามารถใช้หนึ่งในการกำหนดค่าฮาร์ดแวร์ต่อไปนี้เพื่อทดสอบเกมบนเครือข่าย:
คอมพิวเตอร์พัฒนาหนึ่งเครื่องและ Xbox 360 หนึ่งเครื่อง
(ใช้งานหนึ่งอินสแตนซ์ของเกมบนคอมพิวเตอร์พัฒนาและอีกหนึ่งบน Xbox 360) ผู้สร้างต้องการหนึ่ง Xbox LIVE Silver และสมาชิกชมรมผู้สร้างหนึ่งคนเพื่อเรียกใช้โค้ดบน Xbox 360
คอมพิวเตอร์สำหรับการพัฒนาหนึ่งเครื่องและคอมพิวเตอร์ไคลเอนต์หนึ่งเครื่อง
(ใช้งานหนึ่งอินสแตนซ์ของเกมบนคอมพิวเตอร์แต่ละเครื่อง) ผู้สร้างไม่สามารถรันเกม XNA Framework บนเครือข่ายสองเกมได้ในเวลาเดียวกันบนคอมพิวเตอร์เครื่องเดียวกัน ผู้สร้างต้องการเครื่องที่สองเพื่อเรียกใช้อินสแตนซ์เกมที่สองเพื่อการทดสอบ ไม่จำเป็นต้องมีสมาชิก Xbox LIVE หรือสมาชิกผู้สร้างคลับสำหรับสถานการณ์นี้
คอมพิวเตอร์สำหรับการพัฒนาหนึ่งเครื่องและคอนโซล Xbox 360 สองเครื่อง
(ใช้งานอินสแตนซ์ของเกมหนึ่งตัวในแต่ละ Xbox 360) ที่นี่ผู้สร้างปรับใช้และ debugs เกมในสอง Xbox 360s ผู้สร้างต้องการสมาชิก Xbox LIVE Silver อย่างน้อยสองคนและสมาชิกชมรมผู้สร้างสองคน (หนึ่งคู่สำหรับแต่ละ Xbox 360) สำหรับสถานการณ์นี้
โอนเสียงผ่านเครือข่าย
ข้อมูลเสียงจะถูกส่งและเล่นซ้ำโดยอัตโนมัติโดยไม่ต้องพยายามใช้ชื่อเรื่องใด ๆ ชื่อสามารถใช้สิ่งนี้เพื่อใช้การแชทเป็นทีมหรือเสียงใกล้เคียง
XNA Framework ไม่เปิดเผยการเข้าถึงโดยตรงไปยังโปรแกรมสตรีมข้อมูลเสียง
- พวกเขามีการเข้าถึงด้วยเสียงหรือไม่ - NetworkGamer.HasVoice
- พวกเขากำลังพูดอยู่? - NetworkGamer.IsTalking
- พวกเขาปิดเสียงไหม - NetworkGamer.IsMutedByLocalUser