2011-10-26 21 views
8

Tôi quan tâm đến việc sản xuất một số loại RPG nhiều người chơi như một trò chơi hoàn toàn dựa trên trình duyệt, với ít hoặc không có yêu cầu plugin. Đã thực hiện khá nhiều nghiên cứu tôi đã đạt được trong kế hoạch sau. Tôi biết rằng một số công nghệ mà tôi tham khảo ở đây không được chấp nhận trên tất cả các trình duyệt (cụ thể là IE) nhưng tôi sẵn sàng chấp nhận điều đó cho thời điểm này.Chiến lược mạng nhiều trình duyệt - điều này có vẻ giống như một giải pháp khả thi không?

Ngoài ra - Tôi biết rằng MMO là mục tiêu cao cả trong mọi trường hợp, nhưng đã thực hiện rất nhiều dự án nhỏ hơn trong quá khứ theo một hướng tương tự, tôi cảm thấy mình muốn cung cấp đi cuối cùng.

Vì vậy, heres một phác thảo thô, tôi muốn nghe ý kiến ​​của các vấn đề rõ ràng ai cũng có thể nhìn thấy trong sự sắp xếp này:

KHÁCH HÀNG: WebGL/Javascript (có lẽ three.js). Sử dụng bộ nhớ cục bộ của trình duyệt để giữ nội dung trò chơi, chấp nhận việc xóa bộ nhớ cache của trình duyệt sẽ xóa các phần tử này.

THÔNG ĐIỆP: thông báo mã hóa giữa máy khách/máy chủ sử dụng google protocol buffers, để thuận tiện và giảm kích thước. Gửi tin nhắn sẽ qua WebSocket.

TRÒ CHƠI GAME: chạy trên đầu trang gevent trong python (có vẻ là giải pháp tốt để xử lý nhiều đồng thời). Sẽ được xây dựng bằng cách sử dụng mô hình sharded, dựa trên thiết kế here:

DB SERVER: MySQL cho cơ sở dữ liệu, PHP diễn xuất Inbetween máy chủ trò chơi và DB.

CHI TIẾT: Tôi định cập nhật máy chủ trò chơi cho một khách hàng cá nhân khoảng 15-20 lần mỗi giây và sử dụng dự đoán phía máy khách để lấp đầy khoảng trống. Khách hàng có thể gửi đầu vào/tin nhắn quan trọng đến máy chủ trong vùng 30 khung hình/giây. Tôi muốn đi cho một kinh nghiệm đó là càng gần thời gian thực càng tốt, chứ không phải là theo lượt. Mối quan tâm chính của tôi là giao thức dựa trên TCP của WebSocket, liệu điều này có làm cho toàn bộ điều không thể?

Giải pháp này có vẻ thực tế với SO không?

cảm ơn rất nhiều,

Trả lời

1

Bạn thường nhận được 5MB dung lượng với API localStorage. Nếu bạn thực sự có một trò chơi 3D với âm thanh/âm nhạc, điều đó sẽ bị ăn nhanh thật nhanh bởi tài sản của bạn (như thế nào lớn là một mp3 chất lượng tốt những ngày này?). Bạn sẽ cần phải được siêu tích cực với nén tài sản của bạn và rất có thể phải đưa ra một cơ chế để dòng công cụ vào và ra khỏi lưu trữ địa phương trong khi trò chơi chạy.

Tôi sẽ hỏi tại sao bạn cần PHP giữa máy chủ trò chơi và cơ sở dữ liệu. Máy chủ trò chơi không thể nói trực tiếp với cơ sở dữ liệu và giúp bạn tiết kiệm một số công việc?

Chúc bạn may mắn với dự án của mình.

+0

Ah! Vâng thats một điều tôi didnt biết ngay lập tức, 5MB là một yếu tố khá hạn chế, do đó, có một số loại streaming sẽ được theo thứ tự sau đó.Đối với điều PHP, tôi nghĩ sẽ mất một số lượng tải giao dịch DB từ máy chủ trò chơi, để nó có thể tập trung vào việc phục vụ khách hàng nhanh nhất có thể và chỉ định định khối dữ liệu sẽ là được viết cho DB, mà không cam kết định dạng và tự ghi dữ liệu đó – bharling

+0

Yup, hãy thử xem CouchDB, hỗ trợ các cuộc gọi REST ngay lập tức. – Anders

Các vấn đề liên quan