Người chơi chơi trên nhiều thiết bị và cài đặt một trò chơi nhiều lần trên cùng một thiết bị. Do đó, họ luôn cần bắt đầu trò chơi từ trạng thái tiến trình gần đây nhất. Để đạt được điều này, bạn phải triển khai một giải pháp lưu vào đám mây trong trò chơi của mình.
Để đáp ứng các nguyên tắc về trải nghiệm người dùng của chương trình Google Play Games Level Up, trò chơi của bạn cần triển khai một giải pháp Lưu vào đám mây gồm 2 phần:
Lưu vào đám mây
Lưu trạng thái chơi của người chơi vào đám mây. Truy xuất mã này khi họ bắt đầu trò chơi. Dịch vụ Trò chơi đã lưu của Dịch vụ trò chơi của Play cung cấp một dịch vụ cho việc này, nhưng bạn có thể sử dụng bất kỳ giải pháp lưu vào đám mây nào mà bạn chọn.
Giải quyết xung đột cho nhiều trạng thái trò chơi
Nếu người dùng có nhiều tài khoản hoặc nếu có xung đột giữa dữ liệu trò chơi đã lưu trên thiết bị của họ và trong đám mây, thì bạn cần có chính sách giải quyết xung đột. Thông thường, người dùng sẽ quyết định cách giải quyết những xung đột này. Chính sách giải quyết xung đột của bạn phải giải quyết các trường hợp chính sau đây:
- Nhiều tài khoản trên mỗi người dùng: Xử lý các trường hợp mà một người dùng tương tác với ứng dụng bằng nhiều tài khoản.
- Xung đột về trạng thái: Giải quyết những điểm khác biệt giữa trạng thái trò chơi cục bộ và trạng thái trò chơi được lưu trên đám mây.
Tài khoản khách vãng lai
Khi một người chơi trên tài khoản khách đăng nhập và liên kết với một Player ID có tiến trình đã lưu vào đám mây, trò chơi của bạn có thể vô tình ghi đè dữ liệu quan trọng trong quá khứ. Nếu người chơi có tài khoản khách cục bộ với tiến trình đáng kể và bản sao lưu trên đám mây của Tài khoản trong trò chơi (IGA) đã chơi gần đây nhất được liên kết với Dịch vụ trò chơi của Play, thì trò chơi của bạn không được tự động ghi đè dữ liệu cục bộ. Thay vào đó, hãy nhắc người chơi chọn giữa hai trạng thái.
Bạn có 2 lựa chọn:
- Cách 1: Duy trì quy trình hiện tại, trong đó tiến trình trên đám mây được khôi phục. Một thông báo cảnh báo sẽ xuất hiện để cho biết hệ thống đã phát hiện thấy một tài khoản hiện có và tiến trình của tài khoản đó sẽ được sử dụng.
- Lựa chọn 2 (Đề xuất): Hiển thị một thông báo cho người chơi biết rằng hệ thống đã phát hiện thấy một tài khoản hiện có có tiến trình. Việc liên kết tài khoản khách sẽ thay thế tiến trình trên đám mây bằng tiến trình hiện tại của khách. Thông báo này xuất hiện cho cả tiến trình đã lưu trên đám mây và tiến trình đã lưu cục bộ để người chơi có thể đưa ra quyết định sáng suốt.
Trò chơi đã lưu
Dịch vụ Trò chơi đã lưu cung cấp cho bạn một cách thuận tiện để lưu tiến trình chơi vào máy chủ của Google. Trò chơi của bạn có thể truy xuất dữ liệu trò chơi đã lưu, cho phép người chơi quay lại và tiếp tục chơi tại thời điểm lưu gần nhất trên bất kỳ thiết bị nào.
Dịch vụ này mang lại một số lợi ích chính cho cả người chơi và nhà phát triển:
- Đồng bộ hoá dữ liệu trò chơi trên nhiều thiết bị. Ví dụ: người chơi có thể bắt đầu một trò chơi trên điện thoại Android và tiếp tục chơi liền mạch trên máy tính bảng mà không bị mất tiến trình.
- Đảm bảo tính lưu trữ dữ liệu. Người chơi có thể tiếp tục chơi trò chơi ngay cả khi thiết bị của họ bị mất, bị hỏng hoặc đổi sang một mô hình mới hơn.
Để tìm hiểu cách triển khai trò chơi đã lưu cho nền tảng của bạn, vui lòng xem phần Triển khai ứng dụng.
Kiến thức cơ bản về Trò chơi đã lưu
Một trò chơi đã lưu thường bao gồm hai phần:
- Nhị phân Blob không theo cấu trúc - có thể đại diện cho bất kỳ dữ liệu nào bạn chọn, trò chơi của bạn sẽ chịu trách nhiệm phân tích cú pháp và ghi vào trò chơi đó.
- Siêu dữ liệu theo cấu trúc – các thuộc tính bổ sung được liên kết với dữ liệu tệp nhị phân, cho phép Dịch vụ trò chơi của Google Play hiển thị Hình ảnh trò chơi đã lưu trong giao diện người dùng (UI) danh sách Trò chơi đã lưu mặc định, và trình bày thông tin hữu ích trong Ứng dụng Google Play Games (chẳng hạn như dấu thời gian của lần cập nhật gần đây nhất).
Một trò chơi có thể ghi số lượng Trò chơi đã lưu bất kỳ cho một người chơi, tuỳ thuộc vào các quy định hạn chế về kích thước tệp, do đó, không cần phải giới hạn người chơi trong một tệp lưu.
Giải quyết xung đột
Trong quá trình sử dụng dịch vụ Trò chơi đã lưu, trò chơi của bạn có thể gặp phải xung đột khi cố gắng lưu dữ liệu. Những xung đột này có thể xảy ra khi người dùng chạy nhiều phiên bản ứng dụng của bạn trên các thiết bị hoặc máy tính khác nhau. Ứng dụng của bạn phải có khả năng giải quyết các xung đột này theo cách mang lại trải nghiệm người dùng tốt nhất.
Thông thường, xung đột dữ liệu xảy ra khi một phiên bản của ứng dụng không thể truy cập dịch vụ Trò chơi đã lưu trong khi cố gắng tải hoặc lưu dữ liệu đó. Đại thể cách tốt nhất để tránh xung đột dữ liệu là luôn tải dữ liệu mới nhất từ dịch vụ này khi ứng dụng của bạn khởi động hoặc tiếp tục, đồng thời lưu dữ liệu vào dịch vụ với tần suất hợp lý. Tuy nhiên, không phải lúc nào bạn cũng có thể tránh được tình trạng xung đột dữ liệu. Ứng dụng của bạn sẽ cố hết sức để xử lý các xung đột nhằm bảo toàn dữ liệu của người dùng để họ có trải nghiệm tốt nhất.
Ảnh bìa
Dịch vụ Trò chơi đã lưu cung cấp trải nghiệm người dùng trực quan ngoài các tính năng liên tục. Bạn nên liên kết hình ảnh đại diện với các tệp lưu tương ứng. Nếu bạn đang sử dụng giao diện người dùng (UI) của danh sách Trò chơi đã lưu mặc định do SDK Play Games cung cấp trong trò chơi của mình, thì giao diện người dùng sẽ hiển thị các ảnh bìa này. Ảnh bìa cũng có thể xuất hiện trong ứng dụng Google Play Games.
Thông tin mô tả
Bạn có thể cung cấp một đoạn văn bản với nội dung mô tả ngắn gọn về một trò chơi cụ thể đã lưu. Phần mô tả này sẽ hiển thị trực tiếp cho người chơi và tóm tắt trạng thái mà trò chơi đã lưu thể hiện; ví dụ như "Chiến đấu với quái vật Goblins trong rừng tối".
Giới hạn kích thước
Bạn không bị tính phí cho dữ liệu trò chơi đã lưu trong Google Cloud, nhưng mỗi tệp trò chơi đã lưu có kích thước tối đa là 3 MB.
Hỗ trợ ngoại tuyến
Trò chơi của bạn vẫn có thể đọc và ghi vào Trò chơi đã lưu khi thiết bị của người chơi không có kết nối mạng, nhưng nó không thể đồng bộ hoá với dịch vụ trò chơi của Google Play cho đến khi có kết nối mạng. Sau khi kết nối trở lại, Dịch vụ trò chơi của Google Play sẽ cập nhật không đồng bộ dữ liệu trò chơi đã lưu trên các máy chủ của Google.
Giới hạn
Dịch vụ trò chơi của Google Play thực thi các giới hạn về kích thước đối với dữ liệu tệp nhị phân và kích thước ảnh bìa lần lượt là 3 MB và 800 KB.
Siêu dữ liệu Trò chơi đã lưu
Siêu dữ liệu theo cấu trúc cho một trò chơi đã lưu chứa các thuộc tính sau:
| Thuộc tính | Mô tả |
|---|---|
| Mã nhận dạng | Một chuỗi duy nhất do Dịch vụ trò chơi của Google Play tạo ra cho trò chơi đã lưu này. Sử dụng mã này để tham chiếu đến trò chơi đã lưu trong ứng dụng trò chơi của bạn. |
| Tên | Tên ngắn do nhà phát triển cung cấp cho trò chơi đã lưu, chẳng hạn như "Lưu vị trí 1" hoặc "PlayerName_Save1". Người chơi sẽ không nhìn thấy thông tin này. |
| Mô tả | Mô tả do nhà phát triển cung cấp cho trò chơi đã lưu. |
| Sửa đổi lần cuối | Dấu thời gian tính bằng mili giây do Dịch vụ trò chơi của Google Play tạo vào thời điểm trò chơi đã lưu được cập nhật lần cuối. |
| Thời gian chơi | Thời gian do nhà phát triển cung cấp (tính bằng mili giây) để hiển thị trên trò chơi đã lưu. Giá trị này phải thể hiện thời lượng người chơi đã chơi trò chơi đã lưu tương ứng. Ví dụ: Giá trị thời gian đã chơi là 3600000 sẽ hiển thị trong Dịch vụ trò chơi của Google Play là "1 giờ". |
| Ảnh bìa | Đây là một thuộc tính không bắt buộc do nhà phát triển cung cấp chứa thông tin về ảnh bìa. |
Triển khai dịch vụ
Để tìm hiểu cách triển khai trò chơi đã lưu cho nền tảng của bạn, hãy xem các tài nguyên sau: