2012-06-13 24 views
11

Tôi nghĩ về công nghệ ngăn xếp cho dự án của tôi và tôi nghĩ về việc sử dụng ejabberd. Dự án sẽ giống như game nhập vai dungeon đa người dùng cổ điển, nơi người chơi sẽ di chuyển khắp thế giới từ vị trí này sang vị trí khác (vị trí trông giống hệt như phòng trò chuyện) và họ cũng sẽ tìm ra nhau cũng như sinh vật với AI ở chế độ theo lượt .Ejabberd là một lựa chọn tốt như một công nghệ cốt lõi cho MMORPG theo lượt?

Tôi chưa bao giờ sử dụng ejabberd, nhưng tôi có một số kinh nghiệm trong việc viết các ứng dụng máy chủ bằng cách sử dụng erlang.

Ejabberd có quá mức cần thiết cho loại trò chơi này không? Nó có rất nhiều tính năng mà tôi sẽ không cần bao giờ hết. Tuy nhiên nó là nổi tiếng để erlang phát triển và cũng rất ổn định và trưởng thành. Là ejabberd giá trị sử dụng nó như là loại lớp vận chuyển cho trò chơi trực tuyến của tôi, hoặc tôi nên phát minh ra bánh xe của riêng tôi, một cái gì đó nhỏ bé và đơn giản?

+0

bên cạnh việc liên kết người dùng với phòng trò chuyện/địa điểm, bạn sẽ sử dụng ejabberd nào khác? Nếu vậy thì có, điều đó nghe có vẻ quá mức cần thiết. –

+0

Ngoài ra tôi sẽ sử dụng nó để nhắn tin trò chuyện và tôi nghĩ rằng nó có thể sử dụng nó để cung cấp thông điệp hệ thống về trạng thái người chơi khác, chi tiết lần lượt, thay đổi hp, v.v. – asdf

+0

bạn đã xem xét 'RabbitMQ' http://www.rabbitmq.com/, nó cũng được sử dụng cho giao tiếp thời gian thực giữa các hệ thống máy chủ tự trị. –

Trả lời

12

Tôi có nhiều năm kinh nghiệm thương mại, sử dụng ejabberd cho những thứ như thế này. Vì vậy, quan điểm của tôi:

Ưu điểm:

  1. Nó chắc chắn có khả năng về mặt kỹ thuật.
  2. Rất dễ bị lúng túng.
  3. Rất dễ mở rộng và sửa đổi.
  4. Nếu bạn cập nhật thường xuyên, nó sẽ giải quyết hai khía cạnh thực sự quan trọng. A. an ninh mạng (điều này cực kỳ quan trọng đối với tôi); và B.properly thực hiện xác thực. Hai người này một mình là đủ lý do để sử dụng nó.
  5. Tốc độ cực nhanh.
  6. Danh sách này cung cấp cho bạn danh sách trò chuyện, danh sách bạn bè và bạn bè miễn phí.
  7. Nó cung cấp cho bạn MUC (phòng) miễn phí. Với tất cả những thứ như quyền được giải quyết khá tốt.

Nhược điểm:

  1. Không thực sự mong muốn tìm thấy bất kỳ tài liệu có thể sử dụng. Nguồn chủ yếu là người bạn duy nhất của bạn.
  2. Đừng thực sự mong đợi tìm một cộng đồng. Đó là một con đường cô đơn. Có một phòng - [email protected] nhưng nó rất yên tĩnh (và gần như trống rỗng). Hầu hết mọi người không có nhà phát triển, nhưng chỉ người dùng ejabberd. Danh sách gửi thư tốt hơn một chút, nhưng thường không đủ để tìm ra câu trả lời bạn tìm kiếm.
  3. Mã nguồn mỗi lần không phải là ví dụ tốt nhất của dự án erlang. Nếu bạn muốn tìm hiểu làm thế nào để viết phần mềm erlang lớn, mô đun, phân phối, tốt hơn có một cái nhìn tại một cái gì đó như Riak.
  4. API nội bộ không ổn định (chúng thay đổi khá nhiều với bản phát hành). Vì lý do này, tôi khuyên bạn nên viết phần mềm của mình dưới dạng một ứng dụng riêng biệt, kết nối với ejabberd như một thành phần XMPP bên ngoài. Vì vậy, bạn sẽ được đảm bảo rằng bạn giao tiếp qua một giao thức ổn định (XMPP). Tất nhiên, bạn không thể thoát khỏi việc phải viết một số nội dung là tốt. Các mô-đun xác thực và danh sách bạn bè (danh sách bạn bè) là các mô-đun đầu tiên được lưu ý. Sự kết hợp này khá khó để duy trì và cập nhật, đặc biệt nếu bạn cần tải mã nóng, nhưng đó là giải pháp tốt nhất cho tôi. Cố gắng giữ mã "in-ejabberd" ở mức tối thiểu khả thi.
  5. Điều đó đang được nói, chỉ có một (đối với kiến ​​thức của tôi) thư viện XMPP erlang có thể sử dụng được. Nó được gọi là exmpp và được phát triển bởi cùng một công ty như ejabberd (ProcessOne). Nó chưa được coi là ổn định.Tôi đã sử dụng nó trong một thời gian, và bây giờ không có vấn đề gì, nhưng bạn không bao giờ biết. Nó cũng hầu như không có giấy tờ (hoặc là, khi tôi đang học nó).
Các vấn đề liên quan