Trò chơi AWS: Phần phụ trợ

Tram Ho

Backend của game có những đặc điểm gì khi lên cloud

Người chơi sẽ không tương tác trực tiếp với backend của game, nhưng backend của game chính là cái cung cấp các tính năng cho sự trải nghiệm của người chơi game. Tuy các game khác nhau về nhu cầu, nhưng hầu hết đều có chung 3 thành phần: 1 gateway kết nối đến dịch vụ của bạn, dịch vụ game, và server. Backend của game thường cung cấp các tính năng như:

  • Tính năng của game
  • Xác thực người dùng
  • Thành tựu người chơi
  • Các hoạt động kinh tế trong game
  • Bảng xếp hạng

Lợi ích của các backend game dựa trên cloud

Đưa game lên cloud cho nhiều lợi ích như dễ dàng cân bằng tải, linh hoạt và bảo mật. Điều này cũng giúp phòng chống gian lận và cho 1 trải nghiệm người dùng ổn định.

Cải thiện cân bằng tải

Backend có thể hỗ trợ cân bằng tải bằng cách điều chỉnh theo như cầu request.

Cải thiện độ linh hoạt

Backend giúp cải thiện độ linh hoạt và cho phép bạn cùng lúc đó có thể thiết kế, phát triển tính năng mới cho game.

Cải thiện bảo mật

Các lĩnh vực bảo mật cần xem xét khi phát triển trò chơi bao gồm thông tin tài khoản người chơi và chi tiết thanh toán tài chính. Triển khai các biện pháp kiểm soát an toàn trong phần phụ trợ trò chơi của bạn.

Cung cấp trải nghiệm nhất quán

Cung cấp trải nghiệm nhất quán và đáng tin cậy hơn giúp tăng mức độ trung thành và giữ chân người chơi.

**Ngăn chặn gian lận **

Phần phụ trợ có thể giúp ngăn ngừa gian lận. Bạn có thể thiết kế các thành phần để phát hiện và ngăn chặn những kẻ gian lận.

Thách thức của Game backend

Nếu phần phụ trợ đã được định cấu hình là một ứng dụng nguyên khối xử lý tất cả logic của trò chơi, thì điều này có thể gây khó khăn cho bạn trong việc bảo trì, cập nhật các tính năng mới và triển khai. Một thách thức phổ biến khác là nhu cầu về phần phụ trợ để xử lý các biến động lưu lượng một cách hiệu quả.

Từ nguyên khối đến vi dịch vụ

Bạn có thể sử dụng phương pháp vi dịch vụ với kiến trúc phụ trợ của mình cho các dịch vụ và thành phần đáp ứng các chức năng khác nhau. Mỗi trường hợp sử dụng mà địa chỉ phụ trợ của bạn có thể tận dụng công nghệ tốt nhất cho công việc. Họ có thể mở rộng quy mô độc lập với nhau khi cần thiết. Và chúng dễ bảo trì hơn nhiều vì cơ sở mã nhỏ hơn nhiều.

Biến động đường truyền thông tin

Ngay cả đối với các trò chơi không phải lúc nào cũng có lưu lượng truy cập cao, lưu lượng truy cập có thể dao động và chương trình phụ trợ phải có khả năng điều chỉnh tương ứng để đáp ứng điều này. Bằng cách lưu trữ phần phụ trợ trò chơi của bạn trên đám mây, bạn có thể sử dụng các dịch vụ AWS cung cấp khả năng mở rộng. Điều này giúp bạn đỡ tốn công sức thủ công hơn và mang lại trải nghiệm trò chơi tốt hơn cho người chơi của bạn.

Xác thực người dùng

Dịch vụ xác thực xác thực danh tính của người chơi khi họ chơi trò chơi. Điều này thường xảy ra bằng cách đăng nhập chúng vào hệ thống xác thực của chính nhà phát triển hoặc nhà cung cấp danh tính bên thứ ba. Sau khi người chơi đã được xác thực, các yêu cầu trong tương lai mà họ thực hiện thông qua ứng dụng khách trò chơi của mình sẽ có thể xác định chính xác trạng thái trò chơi và dữ liệu cần cập nhật của ai.

Sử dụng Amazon Cognito, bạn có thể nhanh chóng thêm đăng ký người dùng, đăng nhập và kiểm soát quyền truy cập vào trò chơi của mình. Nó mở rộng quy mô cho hàng triệu người dùng và hỗ trợ đăng nhập với các nhà cung cấp nhận dạng xã hội và nhà cung cấp nhận dạng doanh nghiệp khác nhau.

Thành tựu người chơi

Thành tích là một công cụ tuyệt vời để giữ cho người chơi của bạn gắn bó với trò chơi. Khi người chơi tiến bộ trong trò chơi, một hệ thống thành tích có thể được sử dụng để theo dõi các mốc quan trọng và thành tích. Ví dụ: người chơi có thể kiếm được thành tích cho các hành động như đạt điểm cao mới, vượt qua một số cấp độ nhất định, đăng nhập vào trò chơi trong một số ngày nhất định, v.v.

Nhà phát triển có thể sử dụng dịch vụ Amazon API Gateway để tạo, xuất bản, duy trì, giám sát và bảo mật API ở mọi quy mô.

Sử dụng API Gateway, bạn có thể tạo API RESTful và API WebSocket hỗ trợ các ứng dụng giao tiếp hai chiều theo thời gian thực. Cổng API hỗ trợ khối lượng công việc được chứa trong bộ chứa và không có máy chủ ngoài các ứng dụng web.

Các hoạt động kinh tế trong game

Nền kinh tế trong trò chơi của bạn sẽ được liên kết chặt chẽ với cấu trúc phần thưởng của nó. Tùy thuộc vào trò chơi của bạn, người chơi có thể nhận và chi tiêu tiền ảo, tiền thật hoặc kết hợp cả hai. Ngoài ra, trò chơi của bạn có thể bao gồm nhiều hình thức tiền tệ trong trò chơi, điều này có thể giúp trò chơi trở nên thú vị và hấp dẫn hơn đối với người chơi.

Khi sử dụng dịch vụ AWS Lambda, bạn có thể chạy mã mà không cần cung cấp hoặc quản lý máy chủ.

Khi sử dụng Lambda, bạn chỉ trả tiền cho thời gian tính toán mà bạn sử dụng. Phí chỉ áp dụng khi mã của bạn đang chạy. Bạn cũng có thể chạy mã cho hầu hết mọi loại ứng dụng hoặc dịch vụ phụ trợ, tất cả đều không cần quản trị.

Ghép trận

Trong các trò chơi nhiều người chơi, một hệ thống mai mối được sử dụng để tập hợp những người chơi lại với nhau trong các trận đấu. Tùy thuộc vào thông số kỹ thuật của trò chơi của bạn, người chơi có thể được ghép thành cặp hoặc đội lớn hơn. Khi bạn đang thiết kế chương trình phụ trợ cho trò chơi của mình, hãy xem xét cách người chơi nên được kết nối, ngoài bất kỳ logic nào khác cần được đưa vào quy trình mai mối.

Amazon GameLift FlexMatch là dịch vụ mai mối có thể tùy chỉnh dành cho trò chơi nhiều người chơi. Với Flexmatch, bạn có thể xây dựng một bộ quy tắc tùy chỉnh để xác định giao diện của trận đấu nhiều người chơi cho trò chơi của bạn và xác định cách đánh giá và chọn người chơi tương thích cho mỗi trận đấu. Bạn cũng có thể tùy chỉnh các khía cạnh chính của quy trình ghép cặp, bao gồm tinh chỉnh thuật toán ghép cặp để phù hợp với trò chơi của bạn.

Bảng xếp hạng

Khi người chơi tiến bộ trong trò chơi của bạn, bảng xếp hạng có thể được sử dụng để hiển thị thành tích của họ. Tùy thuộc vào trò chơi của bạn, người chơi có thể so sánh điểm số của mình với điểm số của bạn bè hoặc với tất cả người chơi trên toàn thế giới. Bảng xếp hạng có thể tăng mức độ tương tác và giữ chân người chơi, đặc biệt đối với những người chơi bị thu hút bởi sự cạnh tranh.

Amazon ElastiCache là một dịch vụ bộ nhớ đệm mà bạn có thể sử dụng để tăng tốc hiệu suất của các ứng dụng và cơ sở dữ liệu của mình.

ElastiCache cũng có thể được sử dụng làm kho lưu trữ dữ liệu chính cho các trường hợp sử dụng như lưu trữ phiên, bảng xếp hạng trò chơi, phát trực tuyến và phân tích. Nó tương thích với Redis và Memcached.

Hồ sơ người chơi

Hồ sơ người chơi là danh tính chính mà người chơi của bạn sẽ mang theo trong suốt trò chơi. Nó có thể bao gồm các chi tiết như hình đại diện, thông tin cá nhân, tùy chọn người dùng, v.v. Hồ sơ người chơi cũng có thể giúp thúc đẩy cảm giác kết nối và cộng đồng trong trò chơi của bạn.

Amazon DynamoDB là một cơ sở dữ liệu NoSQL có khóa-giá trị, không có máy chủ.

Nó được thiết kế để chạy các ứng dụng hiệu suất cao ở mọi quy mô. Các tính năng của nó bao gồm bảo mật tích hợp, sao lưu liên tục và sao chép đa vùng tự động.

DynamoDB không có máy chủ, nghĩa là bạn không cần cung cấp, vá lỗi hoặc quản lý máy chủ. Bạn cũng không cần cài đặt, bảo trì hay vận hành phần mềm.

Hợp lý hóa việc triển khai nhiều thành phần trò chơi

Trong một số trường hợp, bạn có thể cần duy trì một số môi trường cho từng ứng dụng trò chơi đồng thời quản lý khả năng mở rộng quy mô. Khi bạn đang thiết kế chương trình phụ trợ cho trò chơi của mình, bạn nên xem xét liệu việc triển khai một giải pháp có thể hợp lý hóa việc triển khai và mở rộng quy mô của nhiều thành phần trò chơi có mang lại lợi ích hay không.

Bạn có thể sử dụng dịch vụ AWS Elastic Beanstalk để triển khai và thay đổi quy mô các ứng dụng và dịch vụ web. Nó tương thích với Java, .NET, PHP, Node.js, Python, Ruby, Go và Docker, ngoài các máy chủ quen thuộc như Apache, Nginx, Pasbah và Dịch vụ thông tin Internet (IIS).

Sau khi tải mã của bạn lên, Elastic Beanstalk sẽ tự động xử lý việc triển khai, từ cung cấp dung lượng, cân bằng tải, tự động thay đổi quy mô đến theo dõi tình trạng của ứng dụng. Bạn vẫn có toàn quyền kiểm soát các tài nguyên AWS cung cấp năng lượng cho ứng dụng của mình và có thể truy cập các tài nguyên cơ bản bất kỳ lúc nào.

Giải pháp Đường ống phân tích trò chơi AWS

Bằng cách sử dụng giải pháp serverless, nhà phát triển trò chơi có thể tập trung vào việc thu thập thông tin chi tiết thay vì dành thời gian quản lý cơ sở hạ tầng. Giải pháp là IaC, giúp triển khai nhanh chóng. Sau khi được triển khai, bạn có thể nhập và lưu trữ lâu dài dữ liệu trên quy mô lớn. Nó cũng cung cấp sự linh hoạt để chọn bất kỳ công cụ phân tích nào bạn muốn.

Giải pháp có bốn phần chính:

  1. Nhập: Phần đầu tiên nhập dữ liệu trò chơi từ nhà sản xuất dữ liệu của bạn, bao gồm ứng dụng khách trò chơi, máy chủ trò chơi cũng như các ứng dụng và dịch vụ hỗ trợ khác.
  2. Lưu trữ: Tiếp theo, dữ liệu phát trực tuyến được nhập vào Amazon S3 để tích hợp hồ dữ liệu và phân tích tương tác.
  3. Xử lý và phân tích: Sau đó, bằng cách sử dụng phân tích phát trực tuyến, bạn có thể xử lý các sự kiện trong thời gian thực và tạo số liệu cho trò chơi của mình. Nhóm hoặc nhà phát triển trò chơi của bạn có thể phân tích chỉ số dữ liệu trong CloudWatch và các sự kiện thô trong Amazon S3.
  4. Trực quan hóa: Cuối cùng, bảng điều khiển được sử dụng để trực quan hóa nó.

Năm trụ cột giám sát và khả năng quan sát

Có năm trụ cột chính có thể giúp bạn hiểu các khía cạnh khác nhau của giám sát và khả năng quan sát. Những trụ cột này là:

MetricsLogsVisualizationAlertsTracing
Metrics are numeric data measured at various time intervals, such as request rate, error rate, duration, and CPU.Logs are timestamped records of discrete events in your game, such as a failure, an error, or a state transformation.Visualization is the process of converting metrics to a visual format for fast, intuitive interpretation, like dashboards.Monitoring systems observe metrics with thresholds and can send alerts if metrics fall outside expected bounds.Tracing is the act of following a single request end to end throughout your game composed of multiple microservices.
Use CloudWatch.Use Amazon CloudWatch Logs.Use CloudWatch dashboards.Use CloudWatch alarms.Use AWS X-Ray.

Quản lý chi phí cơ sở hạ tầng trò chơi của bạn

Có ba công cụ chính trong bảng điều khiển để quản lý chi phí cơ sở hạ tầng trò chơi của bạn.

AWS Cost ExplorerAWS Cost and Usage ReportAWS Budgets
Use the AWS Cost Explorer tool to visualize your cost drivers and usage trends for your game’s infrastructure. You can explore your usage and costs using visual graphs or reports. You can view your game’s cost data for up to the last 12 months and forecast how much you might spend in the next 12 months.The AWS Cost and Usage Report (AWS CUR) cost tool contains the most comprehensive set of cost and usage reports available. You can receive reports that break down your game costs by hour, day, or month, service, or tags you define. You can also customize your reports, deliver them to an S3 bucket, and update them up to 3 times a day.You can use the AWS Budgets tool to turn on simple or complex usage tracking. You can create a cost budget to plan how much you want to use a particular service. You can set up notifications for when you hit a certain amount or ever perform an action.

Kết bài

Vậy là mình đã giới thiệu tóm tắt và tổng quan nhất về AWS triển khai cho game như thế nào. Rất mong có thể cung cấp 1 phần kiến thức nào đó cho các bạn

Bài viết có sử dụng google dịch 1 vài phần do mình lười nên có 1 số chỗ câu cú lủng củng. Rất mong các bạn thông cảm.

Nguồn: https://explore.skillbuilder.aws/learn/public/learning_plan/view/1570/aws-for-games-learning-plan-cloud-game-development

Bonus ảnh chụp Credly của mình

screencapture-credly-earner-earned-2023-06-03-09_16_57.png

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo