Hero image

Làm thế nào để thiết kế trò chơi nhiều người chơi của bạn sao cho có thể mở rộng quy mô?

Trên trang này, bạn sẽ tìm thấy những yếu tố quan trọng cần xem xét khi xây dựng và thiết kế một trò chơi nhiều người chơi có khả năng phục hồi và mở rộng.

Trang web này đã được dịch bằng máy để thuận tiện cho bạn. Chúng tôi không thể đảm bảo tính chính xác hoặc độ tin cậy của nội dung được dịch. Nếu bạn có thắc mắc về tính chính xác của nội dung được dịch, vui lòng tham khảo phiên bản tiếng Anh chính thức của trang web.

Nắm vững cách khởi chạy trò chơi nhiều người chơi của bạn

Nắm vững cách khởi chạy trò chơi nhiều người chơi của bạn

Trong hội thảo trực tuyến theo yêu cầu của chúng tôi, Kỹ sư Đối tác Chính Aaron Moon sẽ thảo luận về cách làm chủ việc ra mắt trò chơi nhiều người chơi – từ kiến ​​trúc máy chủ đến thử nghiệm khả năng mở rộng.

Hoặc, hãy đọc tiếp bên dưới để hiểu rõ hơn về:

  • Thiết kế kiến ​​trúc trò chơi có khả năng mở rộng
  • Thiết kế vòng lặp trò chơi của bạn để có thể mở rộng quy mô
  • Tại sao hệ thống backend của bạn lại quan trọng?

Làm thế nào để thiết kế kiến ​​trúc trò chơi có khả năng mở rộng?

Đơn giản hóa kiến ​​trúc của bạn

1. Đơn giản hóa kiến ​​trúc của bạn

Yếu tố then chốt trong thiết kế kiến ​​trúc trò chơi là xem xét hiệu quả ngay từ giai đoạn đầu. Việc tập trung quá sớm vào các chỉ số, ghi nhật ký, đo lường từ xa và kiếm tiền có thể dẫn đến sự phình to quá mức trong kiến ​​trúc trò chơi. Việc nhồi nhét tất cả những thứ đó vào máy chủ trò chơi của bạn trong quá trình hoạt động thực tế có thể làm giảm lợi tức đầu tư (ROI) và tăng tổng chi phí sở hữu.

Thay vào đó, hãy bắt đầu với một sản phẩm khả thi tối thiểu (MVP) càng sớm càng tốt. Hãy đảm bảo máy chủ hoạt động, máy khách vận hành, mã mạng và hệ thống ghép trận được hoàn thiện, rồi từ đó xây dựng tiếp. Bạn cũng nên cân nhắc việc lựa chọn nhà cung cấp dịch vụ lưu trữ từ sớm – họ có thể cung cấp các giải pháp và cơ sở hạ tầng có sẵn, giúp bạn tiết kiệm thời gian phát triển.

Tránh thiết kế máy chủ trò chơi phức tạp.

2. Tránh thiết kế máy chủ trò chơi phức tạp.

Khi nói đến thiết kế trò chơi của bạn, sự đơn giản trông như thế nào? Hình ảnh trên cho thấy một thiết kế phức tạp không chỉ bao gồm một máy chủ trò chơi mà còn nhiều quy trình phụ trợ khác trên cùng một máy, bao gồm các hệ thống ghép trận, ghi nhật ký và các chương trình thực thi đo lường.

Sự phức tạp này không nhất thiết trở nên rõ ràng cho đến khi bạn bắt đầu thử nghiệm trên quy mô lớn, đó là lúc bạn có thể nhận ra rằng những thứ này không hoạt động tốt với nhau khi có hàng nghìn người chơi. Ngoài ra, các dịch vụ phụ trợ có thể không có cơ chế bảo vệ tài nguyên, do đó chúng có thể bắt đầu chiếm dụng tài nguyên của máy và ảnh hưởng đến hiệu suất của người chơi. Giữ mọi thứ đơn giản có thể giúp giảm thiểu những vấn đề này.

Hãy áp dụng thiết kế máy chủ trò chơi đơn giản.

3. Hãy áp dụng thiết kế máy chủ trò chơi đơn giản.

Về thiết kế máy chủ trò chơi, đơn giản là đóng gói mọi thứ vào một phiên bản máy chủ duy nhất, chẳng hạn như một tệp thực thi duy nhất, và hệ thống ghép trận mạnh mẽ (có thể được lưu trữ trên một dịch vụ phụ trợ thay vì trên một máy chủ). Bằng cách đó, khi một trong các máy chủ trò chơi bị lỗi, nó sẽ không ảnh hưởng đến những người chơi khác và khu vực bị ảnh hưởng vẫn nhỏ. Ở quy mô lớn, nếu máy chủ trò chơi của bạn được thiết kế như vậy mà gặp sự cố, nó sẽ không ảnh hưởng đến trải nghiệm của người chơi.

Đặt tiến trình chạy máy chủ trò chơi của bạn làm tiến trình cha.

4. Đặt tiến trình chạy máy chủ trò chơi của bạn làm tiến trình cha.

Để giảm thiểu rủi ro về chi phí, không nên để các tiến trình phụ trợ như gỡ lỗi, giám sát và ghép trận trên cùng một máy. Nếu bạn gặp trường hợp máy chủ trò chơi bị lỗi và bạn có các máy chủ đám mây được dùng để mở rộng quy mô, thì các tiến trình phụ trợ sẽ bị "mắc kẹt" ở trạng thái "ma". Chúng vẫn đang tiêu tốn tài nguyên, gây tốn kém chi phí cho studio của bạn, và bạn không có cách nào để tắt chúng đi.

Thay vào đó, hãy cân nhắc việc biến các quy trình phụ trợ như ghép trận và gỡ lỗi thành các quy trình con của máy chủ trò chơi – hãy giữ cho mọi thứ đơn giản. Khi đó, nếu máy chủ trò chơi bị sập, các tiến trình con cũng sẽ bị mất theo, thay vì vẫn tiếp tục chạy ngầm. Trong trường hợp này, nếu máy chủ ngừng hoạt động, bạn có thể khởi tạo một máy chủ khác mà không cần tốn thêm tài nguyên và chi phí liên quan đến các tiến trình "bị lỗi thời".

Thiết kế vòng lặp trò chơi của bạn để có thể mở rộng quy mô

Bạn nên lưu ý cách vòng lặp trò chơi của bạn tương tác với cơ sở hạ tầng, và cách cơ sở hạ tầng hỗ trợ trò chơi của bạn. Ví dụ, nếu trò chơi của bạn có sảnh chờ và hệ thống ghép trận, thì cần phải có lý do để người chơi tham gia và rời khỏi các sảnh chờ đó, cũng như các phiên chơi từ các sảnh chờ đó.

Hãy suy nghĩ về kiểu thiết kế phiên chơi mà bạn đang sử dụng – bạn đang xây dựng một trò chơi liên tục như MMO, hay một trò chơi ngắn hạn với thời gian chạy khởi động lại mỗi lần? Mỗi thiết kế vòng lặp trò chơi đều có thể tiềm ẩn rủi ro và phần thưởng. Dưới đây là một số yếu tố quan trọng cần xem xét khi thiết kế các phiên chơi game ngắn, dài và liên tục.

Những điều cần cân nhắc khi chơi game trong thời gian dài

Trong các trò chơi nhiều người chơi với các phiên chơi kéo dài, có thể xảy ra các vấn đề như rò rỉ bộ nhớ, mức sử dụng RAM tăng cao, và nhiều vấn đề khác – những vấn đề này có thể không xuất hiện cho đến khi bạn chạy trò chơi ở quy mô lớn.

Dưới đây là một số rủi ro liên quan đến các phiên chơi game kéo dài:

  • Tấn công DDoS: Vì địa chỉ IP của phiên chơi game không thay đổi với mô hình phiên chơi game liên tục, nên có khả năng xảy ra các cuộc tấn công DDoS.
  • Chi phí điện toán đám mây cao: Việc duy trì một trò chơi luôn hoạt động, hoặc gần như luôn hoạt động, đòi hỏi rất nhiều nguồn lực và chi phí – ngay cả khi người chơi không chơi trò chơi đó.
  • Sự gián đoạn do việc vá lỗi: Việc cập nhật có thể khó quản lý, vì có thể có những trận đấu đang diễn ra cần phải kết thúc để cập nhật trò chơi, dẫn đến trải nghiệm chơi game kém.

Những điều cần cân nhắc khi chơi game ngắn

Vẫn còn những rủi ro và những điều cần cân nhắc về trải nghiệm người chơi đối với các phiên chơi ngắn. Ngay cả khi trò chơi hai người chơi của bạn chỉ kéo dài hai phút, việc tạo điều kiện cho hàng trăm nghìn (hoặc hơn) trận đấu diễn ra đồng thời có thể tốn kém và tiềm ẩn rủi ro.

Dưới đây là một số điều cần cân nhắc cho các phiên chơi game ngắn:

  • Tải trọng máy chủ phía sau cao: Việc liên tục gọi API đến máy chủ phụ trợ để hỗ trợ các phiên chơi game ngắn có thể tạo ra tải trọng rất lớn, vì vậy hệ thống cần phải có khả năng phục hồi cao.
  • Gây áp lực lớn lên cơ sở hạ tầng: Khi máy chủ khởi động lại giữa các phiên ngắn, bạn có thể thấy CPU và RAM tăng đột biến vào đầu quá trình tải – điều này có thể tốn kém.
  • Cần có hệ thống mai mối mạnh mẽ: Với các buổi gặp mặt ngắn, bạn cần một người điều phối hiệu quả để xử lý các yêu cầu ghép cặp cho các buổi gặp mặt mới, kết nối lại và nhiều hơn nữa.
  • Chất lượng dịch vụ (QOS): Bạn cần một nhà cung cấp cho phép bạn gửi cho máy khách trò chơi của mình danh sách địa chỉ IP theo thời gian thực để xác định khu vực máy chủ dựa trên dữ liệu và thông tin đo lường thực tế, thay vì vị trí vật lý.
  • Cần có các chỉ số và dữ liệu đo từ xa: Nếu có sự cố xảy ra, người chơi thường có xu hướng bỏ cuộc và bắt đầu một phiên chơi khác hơn là báo cáo lỗi. Nếu bạn không thu thập được số liệu và dữ liệu từ những phiên chơi ngắn đó, bạn có thể bỏ lỡ những vấn đề đang xảy ra trong trò chơi.

Dưới đây là những ưu điểm và nhược điểm của các trò chơi ngắn theo từng phiên:

Ưu điểm :

  • Không cần ổn định hóa trong thời gian chạy dài.
  • Giúp vá lỗi nhanh hơn
  • Dễ dàng thu nhỏ quy mô
  • Không có trạng thái chờ
  • Việc ghi nhật ký cho mỗi phiên giúp việc khắc phục sự cố dễ dàng hơn.

Nhược điểm :

  • Nhiều lệnh gọi lại hơn, điều này có nghĩa là tải trọng ở quy mô lớn hơn.
  • Chi phí điện toán đám mây cho việc khởi động lại hệ thống ở quy mô lớn không hề nhỏ.
  • Điều kiện cuộc đua
  • Tăng đột biến MEM/CPU khi khởi động
  • Việc ghép đôi trở nên phức tạp hơn.
  • Các vấn đề về hiệu suất máy có thể bị che giấu.

Những điều cần cân nhắc đối với các phiên chơi game kéo dài

Trong các trò chơi nhiều người chơi có tính liên tục (như game MMO), có thể phát sinh một số vấn đề và rủi ro nhất định. Ví dụ, việc hỗ trợ các tình huống như chuyển đổi người chơi giữa các máy chủ đòi hỏi một hệ thống máy chủ mạnh mẽ hơn – bao gồm cả các máy chủ đắt tiền và ổ cứng dung lượng lớn.

Dưới đây là một số yếu tố cần xem xét khi thiết kế phiên chơi game kéo dài:

  • Việc lập ngân sách có thể là một vấn đề đáng lo ngại: Để đảm bảo các phiên làm việc liên tục hoạt động hiệu quả, cần có các hệ thống máy chủ phụ trợ mạnh mẽ hơn, vì vậy bạn cần tính toán chi phí bảo trì dựa trên số lượng người dùng để hiểu xem thiết kế phiên làm việc này có phù hợp với bạn hay không.
  • Điện toán đám mây có thể không khả thi: Do yêu cầu cao của một phiên chơi game liên tục, điện toán đám mây có thể quá tốn kém đối với dự án của bạn.
  • Chất lượng mạng vô cùng quan trọng: Độ trễ và việc quản lý độ trễ sẽ quyết định sự thành công hay thất bại của phiên chơi game liên tục đối với người chơi, vì vậy việc kiểm tra mạng lưới của bạn sớm và kỹ lưỡng là điều cần thiết để mang lại trải nghiệm tốt cho người chơi.
  • Việc vá lỗi rất khó khăn và tiềm ẩn nhiều rủi ro: Thời gian ngừng hoạt động do bảo trì không bao giờ là trải nghiệm tốt cho người chơi – ngay cả khi điều đó là cần thiết để cải thiện trải nghiệm tổng thể. Việc thông báo cho cộng đồng về thời gian bảo trì là rất quan trọng. Bạn cũng có thể cân nhắc việc chạy nhiều phiên bản trò chơi cùng lúc và cập nhật dần các bản vá lỗi theo thời gian.

Dưới đây là những ưu điểm và nhược điểm của các trò chơi dựa trên phiên chơi liên tục:

Ưu điểm :

  • Máy chủ luôn hoạt động.
  • Có thể rút ngắn vòng chơi game.
  • Giảm tải cho máy chủ của bạn

Nhược điểm :

  • Khó thiết kế hơn
  • Sự bất ổn theo thời gian
  • Dọn dẹp phiên
  • Thiết kế trạng thái chờ là cần thiết.
  • Cần phải biết cách mai mối.
  • Việc thử nghiệm A/B có thể mất nhiều thời gian hơn.

Kiểm thử tình huống, hay khả năng phục hồi sau hỗn loạn

Chuẩn bị sẵn sàng cho những vấn đề tiềm ẩn về trải nghiệm người chơi trên quy mô lớn là một ý tưởng hay. Việc khởi chạy, vận hành và cập nhật một trò chơi nhiều người chơi có thể rất hỗn loạn, vì vậy điều quan trọng là phải thực hiện kiểm tra tình huống để đánh giá khả năng "chống chịu hỗn loạn" và đảm bảo rằng hệ thống máy chủ của trò chơi được thiết lập để xử lý những sự hỗn loạn đó.

Ví dụ, điều gì sẽ xảy ra nếu tất cả mọi người đều bị văng ra khỏi trò chơi và cố gắng quay lại chế độ ghép trận cùng một lúc? Việc tìm hiểu phản ứng của hệ thống phụ trợ đối với tình huống đó và thiết lập nó để xử lý vấn đề đó có thể giúp bạn tránh được những rắc rối (và bảo vệ danh tiếng của bạn) về lâu dài.

Chuẩn bị cập nhật trò chơi của bạn

Chuẩn bị cập nhật trò chơi của bạn

Rất có thể bạn sẽ phải cập nhật bản vá lỗi cho trò chơi của mình trong quá trình khởi chạy. Đó là lý do tại sao việc xây dựng cơ sở hạ tầng với khả năng vá lỗi trong quá trình sản xuất và ra mắt sản phẩm là rất quan trọng. Điều này có thể giúp giảm thiểu sự hỗn loạn trong ngày ra mắt và việc vá lỗi tức thời, đồng thời hạn chế tác động đến người chơi.

Một cách để giải quyết vấn đề này là chạy nhiều phiên bản trò chơi cùng lúc. Tuy nhiên, bạn cũng cần đảm bảo rằng cơ sở hạ tầng của mình có thể xử lý nhiều phiên bản khác nhau. Ngoài ra, bạn cũng cần một môi trường thử nghiệm (sandbox) với tất cả các phiên bản khác nhau.

Nếu bạn đã tích hợp khả năng cho phép nhiều phiên bản chạy đồng thời, thì sẽ không có thời gian ngừng hoạt động hoặc gián đoạn nào đối với người chơi khi bạn cập nhật.

Kiểm tra khả năng mở rộng để đảm bảo ra mắt chế độ chơi nhiều người thành công.

Kiểm tra vảy da thường xuyên là rất quan trọng, vì vậy việc tìm một nhà cung cấp có thể giúp bạn thực hiện việc này nên là một yếu tố quan trọng cần cân nhắc khi lựa chọn dịch vụ.

Một trong những yếu tố quan trọng cần kiểm tra khả năng mở rộng là phân vùng và chống phân mảnh máy chủ. Việc phân mảnh máy chủ là một yếu tố quan trọng cần xem xét về chi phí. Về cơ bản, trước tiên bạn nên sử dụng các máy chủ bằng kim loại giá rẻ. Khi số lượng người chơi biến động, bạn cũng nên nhanh chóng loại bỏ các máy chủ đám mây đắt tiền hơn, điều này sẽ tiết kiệm chi phí hơn.

Game Server Hosting (Multiplay) giúp tránh việc phân bổ tài nguyên cho các máy chủ đắt tiền hơn, cho phép chúng tôi loại bỏ chúng nhanh hơn khi số lượng người chơi giảm.

Khả năng hệ thống của chúng tôi thực hiện điều này phụ thuộc vào thời gian tồn tại của trận đấu bạn đã chọn. Thời gian trận đấu ngắn hơn cho phép chúng ta nhanh chóng kết thúc việc phân bổ tài nguyên trên các máy tính đắt tiền. Các trận đấu kéo dài hơn có nghĩa là chúng ta không thể tắt máy móc cho đến khi trận đấu kết thúc.

Lên kế hoạch cho tựa game nhiều người chơi tiếp theo của bạn.

Bạn đã sẵn sàng xây dựng trò chơi nhiều người chơi tiếp theo của mình chưa? Dưới đây là một vài nguồn tài liệu để bạn bắt đầu – tìm hiểu thêm về việc mở rộng quy mô với Game Server Hosting , xem hội thảo trực tuyến theo yêu cầu của chúng tôi về Game Server Hosting và Matchmaker, và khám phá các giải pháp chơi nhiều người mà chúng tôi cung cấp bên dưới.