Chọn nền tảng máy chủ nào [đóng]


8

Tôi sẽ viết một máy chủ cho nhiều người chơi trực tuyến với các yêu cầu sau:

  • Trò chơi theo lượt khá đơn giản (nghĩ là một trò chơi bài) được chơi hoàn toàn trên máy chủ (lý do bảo mật)
  • Phải có khả năng chạy nhiều trò chơi (bảng) với 4 người chơi mỗi bàn, nhưng không yêu cầu hệ thống sảnh (máy chủ khác đảm nhiệm việc đó)
  • Có thể hỗ trợ càng nhiều người chơi cùng một lúc càng tốt; Có thể cần nhiều máy chủ
  • Trò chuyện giữa những người chơi
  • Kết nối ổ cắm với máy khách Flash / AIR
  • Phải có khả năng giao tiếp với các máy chủ khác (đối với tài khoản người chơi và như vậy)

Bây giờ, tôi đang xem xét hai lựa chọn:

  • Smartfox (hoặc tương đương)
  • Một giải pháp Java tùy chỉnh trong một cái gì đó như Tomcat

Tại sao lại là Smartfox?

  • Nó xử lý nhiều phòng và trò chuyện tự nhiên
  • Nó có lẽ có giải pháp cho các vấn đề chơi game nhiều người chơi nổi tiếng

Tại sao tùy chỉnh?

  • Smartfox có nhiều chức năng không cần thiết, không tốt cho hiệu năng
  • Smartfox giao tiếp với định dạng dựa trên XML, tôi có thể sử dụng định dạng nhị phân hiệu quả hơn.
  • Không biết việc chạy toàn bộ mô hình trò chơi trên máy chủ có thuận tiện với cơ chế mở rộng của Smartfox không
  • Nhiều phòng và trò chuyện dễ dàng thực hiện lại
  • Tomcat hoặc một thùng chứa nhẹ dễ triển khai hơn Smartfox
  • Hỗ trợ IDE tốt hơn để phát triển trên Tomcat (triển khai tự động, v.v.)

Bạn nghĩ sao? Những giả định của tôi có đúng không? Bạn có thêm cái gì nữa không? Tôi nên chọn tùy chọn nào (hoặc có thể hoàn toàn khác)?


Có thể tôi đang thiếu một cái gì đó, nhưng một "trò chơi bài" đơn giản đến mức bạn có thể viết nó từ đầu trong một khoảng thời gian không đáng kể và hiệu suất không bao giờ là vấn đề.
o0 '.

Câu trả lời:


3

Tôi chắc chắn sẽ đi với một giải pháp tùy chỉnh: mặc dù bạn có thể mất một chút thời gian trong thời gian ngắn, nhưng nó chắc chắn sẽ mở rộng quy mô tốt hơn nếu bạn cần nó, cộng với trải nghiệm bạn có được sẽ có thể tái sử dụng ồ ạt cho các trò chơi tiếp theo của bạn. BlazeDs nghe có vẻ là một công cụ tuyệt vời cho nhu cầu của bạn, nhưng viết lại một máy chủ trò chơi Java từ đầu không phải là một nỗ lực lớn, ví dụ như sử dụng Netty và Protobuf :)


'Netty và Protobuf' là gì?
Quazi Irfan


5

Về điểm của bạn để hỗ trợ một giải pháp tùy chỉnh:

Smartfox có nhiều chức năng không cần thiết, không tốt cho hiệu năng

Vì đây là một trò chơi "đơn giản, theo lượt", nên hiệu suất không có vấn đề gì.

Smartfox giao tiếp với định dạng dựa trên XML, tôi có thể sử dụng định dạng nhị phân hiệu quả hơn.

Một lần nữa, đối với các trò chơi theo lượt đơn giản, dễ phát triển có thể dễ dàng ưu tiên hơn hiệu quả định dạng, vì vậy trừ khi bạn muốn phát triển định dạng nhị phân hiệu quả - không.

Nhiều phòng và trò chuyện dễ dàng thực hiện lại

Đây không phải là một lý do tốt để bạn tự mình thực hiện chức năng này. Đó chỉ là một điều gì đó an ủi khi biết, nếu bạn quyết định đi theo con đường này.

Tomcat hoặc một container nhẹ dễ triển khai hơn Smartfox. Hỗ trợ IDE tốt hơn để phát triển trên Tomcat (triển khai tự động, v.v.)

Bạn phải cân nhắc xem bạn tiết kiệm được bao nhiêu thời gian bằng cách phát triển một giải pháp tùy chỉnh và triển khai nó nhanh, so với việc sử dụng một giải pháp hiện có và có thể thực hiện triển khai lâu hơn. Điều lạ lùng là thời gian phát triển sẽ bù đắp cho những lợi ích nhỏ mà việc triển khai nhanh hơn / dễ dàng hơn mang lại.

Tóm lại - Tôi khuyên bạn nên sử dụng một giải pháp hiện có, nếu có thể. Nó có khả năng giúp bạn tiết kiệm rất nhiều thời gian. Đối với giải pháp, đó là tùy thuộc vào bạn trước hiện có.


Về điểm hiệu suất của bạn: Có, trò chơi rất đơn giản, nhưng nó sẽ cần hỗ trợ nửa triệu người chơi trên càng ít máy chủ càng tốt (nếu khách hàng có mong muốn của mình)
Bart van Heukelom

Nửa triệu người chơi đồng thời? Âm thanh như bình luận của Google App Engine đáng để suy nghĩ thêm. Điều đó sẽ có thể mở rộng quy mô từ nguyên mẫu đến triển khai đầy đủ mà không có gì ngoài một hóa đơn lớn hơn.
drxzcl

@drxzcl Đúng rồi. Công cụ ứng dụng Google rất phù hợp cho các trò chơi theo lượt vì lý do khả năng mở rộng.
AturSams

3

Sau khi sử dụng cả hai SmartFox và ElectroServer khá rộng rãi, tôi luôn khuyên ElectroServer. Nó thực hiện tất cả các công cụ tương tự như SmartFox, nhưng chỉ chắc chắn hơn một chút và bao gồm hỗ trợ nhị phân.


1
bạn có ý nghĩa gì bởi hỗ trợ nhị phân?
dùng3689

2

Tôi thực sự khuyên bạn nên xem dự án Google App Engine .

Cả hai vì lý do lưu trữ và kỹ thuật. Nếu trò chơi của bạn không có nhịp độ nhanh thì đó sẽ là một nơi tốt để bắt đầu và khởi động và chạy, và có phạm vi để mở rộng quy mô.

Mã có thể bằng Python hoặc Java.

Niềm tự hào của sao Hải Vương là trên Google App Engine. Xem một cuộc phỏng vấn với Nhà phát triển ở đây .


3
Không có vẻ như nó hỗ trợ ổ cắm, chỉ có HTTP
Bart van Heukelom

2

Hãy nhìn vào máy chủ trò chơi nhỏ sau đây . Nó hỗ trợ một giao thức nhị phân. Lưu ý: Viết bởi tôi! Có hỗ trợ TCP và UDP, sử dụng jetlang để nhắn tin vm cực nhanh.


2

Bạn thực sự nên xem xét Firebase, một máy chủ trò chơi nhiều người chơi Java mã nguồn mở.

So với Smartfox, Firebase sử dụng giao thức nhị phân, không cồng kềnh với các tính năng và có hiệu suất cao.

Nếu bạn cuộn hệ thống của riêng mình, bạn sẽ phải lo tất cả mọi thứ, từ xử lý ổ cắm đến xử lý đồng thời. Với Firebase, bạn được đảm bảo một hành động tại một thời điểm, mỗi phòng.

Lưu ý : Firebase được Google mua lại và nó không còn có tùy chọn nguồn mở.

Hãy xem thử: http://www.cubeia.org/

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.