Google App Engine có phải là nền tảng tốt cho MMO trực tuyến không?


10

Tôi đang xem xét một số ý tưởng tạo ra một trò chơi MMORPG quy mô lớn, dựa trên Java, đây là một dự án phụ / sở thích để giúp quá trình học tập của tôi

Tôi đã chơi với GAE và đã tạo ra một ứng dụng web đơn giản, tôi nghĩ đến việc sử dụng nó làm nền tảng của mình cho một trò chơi

Đây có phải là một ý tưởng tốt? Có trò chơi nào ngoài kia sử dụng một nền tảng như vậy không? Tôi không thể thấy bất kỳ giới hạn nào cho đến nay, ngoài Google có thể "sở hữu" nó hơn là bản thân tôi

Câu trả lời:


3

Sắp xếp, phụ thuộc vào độ trễ / tốc độ bạn cần.

Mỗi yêu cầu http (đến một máy chủ chuyên dụng) mất khoảng 300-600 ms. Trong công cụ ứng dụng trông giống như 600-900 ms hoặc thậm chí hơn (nếu bạn có nhiều truy vấn). Đồng thời, một kết nối duy nhất đến GAE phải kéo dài dưới 30 giây, vì vậy ...

Tất cả điều đó có nghĩa là bạn sẽ phải thực hiện bỏ phiếu chậm, có thể đủ tốt cho một số trò chơi theo lượt, không theo thời gian thực.

Nếu bạn muốn làm một trò chơi thời gian thực, bạn cần rời khỏi HTTP và đi đến TCP hoặc UDP (đặc biệt là UDP).

Phải nói rằng, nếu kết nối chậm / không theo thời gian thực đủ tốt cho trò chơi của bạn, GAE có quy mô khá rẻ và giải quyết được rất nhiều vấn đề (không giới hạn kích thước của db, không có vấn đề về thư rác với số lượng email lớn , Vân vân)


TCP không thực sự là một lựa chọn nếu bạn muốn thời gian thực.
o0 '.

4
^^ ^

* Đối với các giá trị khác nhau của thời gian thực.
DFectuoso

1
TCP xử lý thời gian thực tốt, nếu bạn quản lý các gói của mình đúng cách. Không có điểm nào trong việc gửi 10 gói đến cùng một đích trong vài mili giây, khi bạn có thể nhóm chúng lại với nhau.
Stephen Belanger

@Stephen: đúng rồi. sử dụng đúng kỹ thuật, bạn có thể đạt được tốc độ và độ tin cậy mà mối lo duy nhất còn lại sẽ là tốc độ kết nối.
Moshe Revah

3

Đây không hẳn là một MMO, nhưng đây là một bài viết tôi đọc gần đây về việc sử dụng App Engine làm máy chủ trò chơi:

http://gamesfromwithin.com/google-app-engine-as-back-end-for-iphone-apps

Tôi đã sử dụng GAE làm back-end cho một vài dự án của mình, không có dự án nào là MMO, nhưng tôi chắc chắn đánh giá cao nó là một nền tảng phát triển web mạnh, dễ làm việc nói chung và giá rẻ để thử nghiệm và bootstrap từ.

Như @DFectuoso chỉ ra, đối với một MMO thời gian thực, bạn sẽ gặp một số vấn đề khi sử dụng bất kỳ máy chủ web nào, đặc biệt là ít App Engine hơn. Tuy nhiên, MMO theo lượt và / hoặc xã hội hoàn toàn có thể sử dụng App Engine làm phần cuối duy nhất.

Cuối cùng, nó phụ thuộc vào kiến ​​trúc trò chơi của bạn. Có các chiến lược để thực hiện gần thời gian thực hoặc giả mạo thời gian thực trong đó máy chủ chính là máy chủ web như App Engine:

  • Bạn có thể thực hiện liên lạc ngang hàng thời gian thực, chỉ cập nhật máy chủ vào những thời điểm quan trọng.
  • Bạn có thể thử giao tiếp trong thời gian thực với các chiến lược như bỏ phiếu dài, gần đây còn được gọi là "yêu cầu sao chổi", trong đó bạn đưa ra yêu cầu cho máy chủ web và máy chủ không bao giờ "kết thúc" phản hồi dẫn đến yêu cầu rất dài / bỏ phiếu, nhưng cho phép máy chủ web liên tục đẩy dữ liệu mới khi có sẵn. (Hỗ trợ sao chổi sâu hơn là một tính năng sắp có trong Máy ứng dụng, theo lộ trình.)
  • Trong trường hợp của App Engine, bạn cũng có thể sử dụng XMPP / Jabber (giao thức IM mở) để liên lạc nhanh chóng (chỉ trong thời gian thực) với máy chủ trò chơi của bạn. Nó có thể không phải là một nơi tuyệt vời để xây dựng một trò chơi thời gian thực đầy đủ, nhưng có nhiều bot trò chuyện thú vị được viết với sự hỗ trợ XMPP của App Engine.

Đây là trình theo dõi vấn đề cho hỗ trợ Comet (vì tôi chưa thể nhúng liên kết vào bài đăng thực tế-- cần thêm điểm danh tiếng rõ ràng): code.google.com.vn/p/googl
WorldMaker
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.