2012-11-22 30 views
5

Tôi đang tạo một máy chủ cho trò chơi của mình và tôi nghĩ rằng có thể nên thử scala và akka. Tôi đọc tài liệu một chút một cách nhanh chóng và tôi đã đi đến một ý tưởng về kiến ​​trúc. Nhưng trước khi làm bất cứ điều gì tôi nghĩ tôi có thể hỏi những người dùng cao cấp hơn nếu tôi đang đi một con đường tốt.Kiến trúc máy chủ trò chơi và Akka

Về cơ bản máy chủ trò chơi của tôi nhận được Array [Byte] với hookup: http://backchatio.github.com/hookup/ (websocket!) Từ máy khách và lưu trữ một số lượng nhất định của "bên". Nó được cho là giải mã Array [Byte] thành dữ liệu có cấu trúc nhiều hơn với sBinary, sau đó diễn giải chúng bằng cách kết hợp dữ liệu có cấu trúc với bên mà nó được cho là được gửi đi.

Vì vậy, tôi đi đến kiến ​​trúc này: Một diễn viên chính nhận mảng [Byte] (master! ArrayByte) và ủy quyền cho diễn viên chuyên ngành giải mã chúng và gửi chúng trở lại với tư cách là dữ liệu có cấu trúc hơn nhận dữ liệu có cấu trúc đó cho họ thông dịch viên và hiểu trạng thái của trò chơi tương ứng được giữ trong Bản đồ bộ nhớ giao dịch phần mềm [Id, Party], sau đó anh ta gửi lại đơn đặt hàng mà anh ta nhận được. order: Order) nếu bên nói rằng đó là một lệnh hợp lệ cho khách hàng mà bây giờ có thể giả định thứ tự của mình là chính xác và giải thích nó trong phiên bản của riêng mình của bên.

+0

thay vì STM, tại sao không sử dụng một diễn viên cho mỗi trò chơi và có trạng thái trò chơi trong diễn viên? Tôi hiện đang viết một trò chơi cờ vua với websockets, play and akka và nó hoạt động tốt cho tôi. –

Trả lời

1

Có thể bạn muốn xem Akka IO để tận dụng lợi thế của IO không chặn cho gói dữ liệu của bạn và Akka Finite State Machine để triển khai trạng thái trò chơi của bạn.

Chúng có thể hữu ích cho loại nội dung bạn muốn làm.

+0

Tôi thực sự cần websockets vì ứng dụng Android của tôi cần nó. Tôi không thực sự thấy làm thế nào tu sử dụng FSM ở đây, plz soi sáng cho tôi. – Atol

+0

Tôi đang đọc ngay bây giờ rằng 'hookup' có lựa chọn tốt cho các giao thức hiệu quả tiêu chuẩn, vì vậy tôi đoán bạn đúng về' Akka IO'. Về 'FSM', thay vào đó, tôi nghĩ rằng nó có thể được sử dụng để thực hiện trạng thái trò chơi mà không cần đến' STM', vì sự nhất quán của nhà nước được đảm bảo bởi mô hình của diễn viên 'FSM'. Nhưng có thể bạn đã biết về 'Akka FSM' và có lý do chính đáng để chọn không tham gia. –

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