Game Online Realtime kiến trúc nào cho đúng?
xin chào mọi người mình đang làm một project nhỏ với socketio, đấy
là game bóng bàn. mình không biết kiến trúc nào cho đúng. mình có nghĩ
ra một vài kiịch bản như sau:
kịch bản 1:
2 client liên tục nhận vị trí của 2 cây vợt tự tính toán vị trí của qủa
bóng, server chỉ chịu trách nhiệm thông báo vị trí của 2 cây vợt cho 2
client.
ưu điểm: server hầu như k phải làm gì
nhược điểm: có thể phát sinh vấn đề tính toán sai lệch gữa 2 client dẫn đến lỗi
kịch bản 2:
-client gửi 2 vị trí của cả 2 vợt, bóng, sân, lên server
-server tính toán và trả lại frame tiếp theo cho client
ưu điểm: đảm bảo sự đồng bộ của 2 client, không phụ thuộc các yếu tố khách quan bên client
nhược điểm: server tính toán nhiều, sợ không đảm bảo tốc độ và thời gian thực vì cũng phải 20 đến 50 frame một giây.
mn cho mình hỏi là một game online thường có kiến trúc như thế nào để tối ưu ạ, ngoài 2 cách trên có cáchs nào tốt hơn không. hank all
Mình thấy các game có tương tác người chơi nhiều như các game FPS thì họ sẽ cho phía client xử lí (chẳng hạn như CrossFire). Còn các game cày cấp thì thường cho server xử lí.
Nếu chỉ là tính toán vị trí 2 cây vợt và bóng thì mình nghĩ cho client xử lí sẽ hay hơn. để xem có cao nhân nào vào phân tích xem. Bạn có một prototype nào chưa?
mới lên ý tưởng thôi bạn, dù sao cũng làm cho vui cho client xử lý còn thanh niên nào hack đc thì kệ . chứ cứ 2 thằng chơi server phục vụ 20 request/s . 20 thằng là 200/ request/s thì kể ra cũng hơi căng. server free nên cùi bắp lắm