Truyền dữ liệu qua mạng LAN hoặc Internet
Có hai loại trò chơi nhiều người chơi trực tuyến khả dụng khi bạn tạo trò chơi nối mạng với XNA Game Studio:
- Hệ thống phiên trò chơi liên kết (LAN)
- Phiên TRỰC TIẾP. (Internet)
Các loại phiên có sẵn:
- Sử dụng Liên kết hệ thống để chơi trò chơi Mạng cục bộ
- Đăng nhập vào Xbox LIVE và Trò chơi cho Windows - Máy chủ LIVE
- Sử dụng LIVE để kết nối với các máy khác qua Internet khi trò chơi đang được phát triển
Truyền dữ liệu giữa các đơn vị Xbox và PC được kết nối được triển khai bằng lớp LocalNetworkGamer (được hỗ trợ trên Xbox 360) và dữ liệu được ghi bằng PacketWriter như sau:
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);
}
Cấu trúc liên kết mạng
Đối với trò chơi liên kết hệ thống, bạn có thể sử dụng bất kỳ cấu hình phần cứng nào sau đây để kiểm tra trò chơi được nối mạng:
Một máy tính phát triển và một Xbox 360
(chạy một phiên bản trò chơi trên máy tính phát triển và một trên Xbox 360). Người tạo cần một Xbox LIVE Silver và một thành viên Câu lạc bộ Người tạo để chạy mã trên Xbox 360.
Một máy tính phát triển và một máy tính khách
(chạy một phiên bản trò chơi trên mỗi máy tính). Người tạo không thể chạy hai trò chơi XNA Framework được nối mạng cùng một lúc trên cùng một máy tính. Người tạo cần một máy thứ hai để chạy phiên bản trò chơi thứ hai cho mục đích thử nghiệm. Không có tư cách thành viên Xbox LIVE hoặc thành viên Câu lạc bộ Người sáng tạo được yêu cầu cho kịch bản này.
Một máy tính phát triển và hai máy
chơi trò chơi Xbox 360 (chạy một phiên bản trò chơi trên mỗi Xbox 360). Tại đây, một nhà sáng tạo triển khai và gỡ lỗi trò chơi trên hai chiếc Xbox 360. Người tạo cần ít nhất hai thành viên Xbox LIVE Silver và hai thành viên Câu lạc bộ Người sáng tạo (một cặp cho mỗi Xbox 360) cho kịch bản này.
Truyền giọng nói qua mạng
Dữ liệu giọng nói được tự động truyền và phát lại mà không cần bất kỳ nỗ lực tiêu đề nào. Các tiêu đề có thể sử dụng điều này để thực hiện trò chuyện nhóm hoặc giọng nói gần.
Khung XNA không cho phép truy cập chương trình trực tiếp vào luồng dữ liệu thoại.
- Họ có quyền truy cập bằng giọng nói? - NetworkGamer.HasVoice
- Họ đang nói chuyện? - NetworkGamer.IsTalking
- Họ có bị tắt tiếng không? - NetworkGamer.IsMutingByLocalUser