Những gì liên quan đến một trò chơi UDP đơn giản?


17

Tôi đã từng thử viết một trò chơi đơn giản với UDP trong một tuần dưới dạng thử nghiệm vứt bỏ. Nó đã đi khủng khiếp.

Tôi đã ném nó đi sớm. Vấn đề chính tôi gặp phải là khôi phục trạng thái trò chơi của tất cả người chơi / kẻ thù / đối tượng về trạng thái cũ và chuyển nhanh trò chơi đến thời điểm người chơi đang chơi (tức là nửa giây trước khi nhảy. Có thể sớm hoặc trễ một chút làm cho người chơi bỏ lỡ bước nhảy)

Có lẽ phương pháp này không phải là cách dễ nhất? Tôi nghi ngờ là như vậy nhưng tôi đã thiết kế sai từ đầu và nhận ra vào cuối ngày thứ 2. (vì vậy tôi đã không học quá nhiều hoặc lãng phí thời gian đó)

Đối với bản thân tôi và những người khác, Điều gì liên quan đến một trò chơi UDP đơn giản và làm thế nào để tôi viết một trò chơi? Hoặc làm thế nào để tôi giải quyết vấn đề dự đoán khôi phục lại trạng thái đúng.

Tôi sẽ đánh dấu điều này là CW bc tôi biết sẽ có rất nhiều câu trả lời hữu ích.

Câu trả lời:


9

Glenn Fiedler đã viết một bộ bài viết tuyệt vời về vấn đề này, bao gồm khá nhiều khái niệm cơ bản.


Bài báo Xác định điểm nổi thổi vào đầu tôi. Trạng thái đồng bộ hóa quá tệ của nó không được thực hiện vì đó là trạng thái tôi muốn đọc. Mặc dù xác định dấu phẩy động trả lời rất nhiều câu hỏi.

Không có bài viết nào đi sâu về đồng bộ hóa nhà nước, đó là những gì anh ấy yêu cầu
BlueRaja - Danny Pflughoeft

3

Việc tự mình thực hiện có thể mang tính giáo dục, nhưng bạn thường hoàn thành nhiều việc hơn nếu bạn có thể tận dụng một triển khai hiện có (hoặc ít nhất là bắt đầu từ đó).

Tôi đã sử dụng cả hai eNetRaknet . Tôi chỉ sử dụng Enet trong một trò chơi đơn giản nhưng nó đã làm những gì tôi cần. Enet sử dụng API cấp thấp hơn Raknet. Raknet đã được sử dụng trong một dự án lớn hơn. Raknet cực kỳ mạnh mẽ, nhưng muốn khiến bạn cấu trúc trò chơi của mình xung quanh khuôn khổ của Raknet.

Mạng điện tử:

  • Quản lý kết nối
  • Trình tự
  • Kênh truyền hình
  • độ tin cậy
  • Phân mảnh và lắp ráp lại
  • Tập hợp
  • Khả năng thích ứng
  • Tính di động
  • Sự tự do

Raknet:

  • Nhân rộng đối tượng
  • Autopatcher
  • Kết nối an toàn
  • Lớp giao tiếp mạnh mẽ (về cơ bản tất cả các tính năng của Enets được cuộn lên trong một mục)
  • Cuộc gọi thủ tục từ xa
  • Âm thanh giao tiếp
  • Đột phá NAT

+1 cho ENet, tôi đã sử dụng nó một thời gian cho khách hàng và họ thích nó.
Len Holgate

Anh ta đang hỏi về đồng bộ hóa nhà nước - câu trả lời này không liên quan gì đến điều đó
BlueRaja - Danny Pflughoeft

-1, cùng lý do với BlueRaja
Jonathan Dickinson


0

Nếu bạn đi homebrew (như tôi đã làm), bạn sẽ học được rất nhiều - cũng là về những thứ bạn không muốn biết. Giống như NAT traversal. Theo caspin, Enet đang bỏ lỡ điều đó, nhưng bạn luôn có thể tìm thấy một số mã STUN mã nguồn mở hoạt động trong hầu hết các tình huống.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.