Tài liệu này sử dụng các thuật ngữ sau (theo RFC 2119):
- phải và không được phép – đây là những yêu cầu khó mà tất cả trò chơi đều bắt buộc phải tuân thủ;
- nên và không nên – đây là những đề xuất không bắt buộc nhưng có thể được sử dụng khi quyết định cách xếp hạng hoặc lọc các trò chơi hiển thị cho người dùng. Ví dụ: nếu màn hình của người dùng ở chế độ ngang, GameSnacks có thể chọn chỉ đề xuất các trò chơi hỗ trợ tỷ lệ khung hình này.
- có thể – đây là các đề xuất không bắt buộc và sẽ không được dùng để lọc trò chơi trừ phi người dùng yêu cầu rõ ràng. Ví dụ: các tính năng trong tương lai có thể cho phép người dùng xem danh sách trò chơi có hỗ trợ phương thức nhập bằng gamepad.
Các yêu cầu sau đây áp dụng cho trò chơi và tài sản trong trò chơi của bạn:
Cấu trúc trò chơi
Trò chơi của bạn được tải lên dưới dạng một gói tệp bao gồm mã và tài nguyên thời gian chạy của chính trò chơi, tài sản tiếp thị để hiển thị trò chơi đó trong danh mục GameSnacks và tệp game.json
lưu trữ siêu dữ liệu mô tả trò chơi và liệt kê tất cả tài nguyên trong gói đó.
game.json
Tệp cấu hình chứa siêu dữ liệu cho trò chơi.
- Trò chơi của bạn phải bao gồm một tệp
game.json
chứa tất cả các trường bắt buộc. - Tệp này phải được đặt trong thư mục gốc của trò chơi.
Điểm nhập HTML
Tài liệu HTML tải trò chơi của bạn.
- Điểm nhập của bạn phải là một tệp HTML hợp lệ.
Tệp này phải bao gồm tối đa một phần tử
head
và một phần tửbody
.- Cả hai phần tử, nếu có, phải có cả thẻ mở và thẻ đóng.
Nội dung nằm ngoài các phần tử này và thuộc tính trên các phần tử này sẽ bị bỏ qua.
Thay vì đặt trực tiếp các thuộc tính trên phần tử
body
, bạn có thể dùng:onload
: Sự kiện tải củaWindow
style
: Định kiểu CSS
Files
Tất cả các tệp riêng lẻ trong gói bao gồm cả trò chơi và các tài sản tiếp thị liên quan trong gói đó đều phải tuân thủ những nội dung sau:
- Mỗi tệp phải nhỏ hơn 10 MiB.
- Tệp chỉ được được tham chiếu bằng đường dẫn tương đối.
- Đường dẫn chỉ được sử dụng
/
làm dấu phân cách thư mục. - Tên tệp phải chỉ sử dụng các ký tự không được đặt trước (RFC 3986).
- Tên tệp và tất cả đường dẫn phải viết thường.
Kích thước trò chơi
Kích thước của trò chơi là tổng kích thước của tất cả mã và tài nguyên được tải xuống thiết bị của người dùng.
- Kích thước của trò chơi không được vượt quá 100 MiB.
Yêu cầu về kỹ thuật
Trò chơi của bạn phải tuân thủ các yêu cầu kỹ thuật sau đây.
SDK GameSnacks
- Trò chơi của bạn phải được tích hợp với SDK dành cho nhà phát triển GameSnacks, bao gồm tất cả các giao diện bắt buộc.
- Trò chơi của bạn không được tải trực tiếp bất kỳ API quảng cáo nào (ví dụ: chèn một thẻ quảng cáo như adsbygoogle.js).
- GameSnacks sẽ tải tất cả các dịch vụ quảng cáo cần thiết cho bạn.
- Vui lòng xem các yêu cầu về việc kiếm tiền để biết thêm thông tin về cách hỗ trợ quảng cáo trong trò chơi của bạn.
Khả năng tương thích với trình duyệt
- Trò chơi của bạn phải sử dụng API Canvas hoặc WebGL để kết xuất.
- Trò chơi của bạn phải chạy đúng cách trên 2 phiên bản chính mới nhất của các trình duyệt sau:
- Chrome trên Android, iOS, Windows và macOS
- Safari trên iOS và macOS
- Firefox trên Android và Windows
- Edge trên Windows
- Trò chơi của bạn phải chạy đúng cách trong chế độ xem web trên các phiên bản mới nhất của hai bản phát hành Android và iOS chính gần đây nhất:
- WebView trên Android
- WKWebView trên iOS
- Nếu có thể, trò chơi của bạn nên được kiểm thử trên nhiều trình kết xuất web độc lập và được nhúng khác trên nhiều trình kết xuất web.
Dung lượng tối thiểu của thiết bị
Trò chơi của bạn phải chạy tốt trên các thiết bị cấp thấp. Để được hướng dẫn, những nội dung sau đây cho biết các chức năng tối thiểu của thiết bị cần thiết cho các trò chơi GameSnacks.
Trò chơi của bạn phải chạy ở tốc độ 30 khung hình/giây trở lên trên mọi thiết bị có các thông số kỹ thuật sau hoặc cao hơn:
- CPU: Qualcomm 215, Samsung Exynos 7570, Mediatek MT6737 hoặc tương tự
- RAM: 2 GiB
- GPU: Arm Mali-T720 MP1, Qualcomm Adreno 308 hoặc tương tự
Ví dụ về những điện thoại đáp ứng thông số kỹ thuật này bao gồm JioPhone Next, Nokia 1.4, LG K22, Samsung J2 Core và Motorola Moto E4
Kích thước tải xuống ban đầu
Kích thước tải xuống ban đầu là lượng dữ liệu sẽ được tải xuống ứng dụng để bắt đầu trò chơi.
- Tệp tải xuống ban đầu phải dưới 15 MiB.
- Dung lượng tải xuống ban đầu phải nhỏ hơn 5 MiB.
Yêu cầu về chức năng
Trò chơi của bạn phải tuân thủ các yêu cầu sau đây về chức năng.
Thời gian tải
Thời gian tải là thời gian cần thiết để chạy mã lúc đầu và bắt đầu trò chơi.
- Trò chơi của bạn phải hiển thị màn hình tải hoặc có khả năng tương tác trong chưa đầy 1 giây trên bất kỳ kết nối nào có tốc độ tối thiểu 10 Mb/giây.
- Trò chơi của bạn phải chơi được trong chưa đầy 15 giây trên mọi kết nối có tốc độ tối thiểu 10 Mb/giây.
Sự cố
- Trò chơi của bạn không được gây ra các sự cố có thể lặp lại một cách nhất quán.
- Trò chơi của bạn không được gây ra các sự cố có thể lặp lại một cách nhất quán trong những ứng dụng hoặc trang web nhúng trò chơi đó.
Tỷ lệ khung hình
GameSnacks sẽ tạo một khung để trò chơi của bạn kết xuất. Kích thước và tỷ lệ khung hình của khung này sẽ thay đổi tuỳ thuộc vào nền tảng phân phối, thiết bị và sự hiện diện của quảng cáo được đặt xung quanh trò chơi. Ví dụ: Khung này có thể thay đổi kích thước nếu người dùng đổi kích thước cửa sổ trình duyệt.
- Trò chơi của bạn nên sử dụng tất cả khu vực có sẵn trong khung hình cho nội dung tương tác mà không có khoảng đệm hoặc bộ đệm bổ sung.
- Trò chơi của bạn phải hỗ trợ tỷ lệ khung hình dọc 9:16.
- Trò chơi của bạn phải hỗ trợ tỷ lệ khung hình ngang 16:9.
- Trò chơi của bạn phải hỗ trợ tỷ lệ khung hình vuông 1:1.
- Lý tưởng nhất là trò chơi của bạn phải có khả năng thích ứng và hỗ trợ nhiều tỷ lệ khung hình dọc, ngang và vuông.
- Khi kích thước khung hình thay đổi, trò chơi của bạn phải đổi kích thước ngay lập tức để tuân thủ các yêu cầu này.
- Trò chơi của bạn phải chuyển đổi suôn sẻ sang kích thước mới.
- Trò chơi của bạn không được khoá hướng trình duyệt.
Tương tác trò chơi
- Trò chơi của bạn phải chơi được hoàn toàn bằng cách sử dụng tính năng nhập bằng cách chạm.
- Trò chơi của bạn phải hoàn toàn chơi được bằng cách sử dụng phương thức nhập bằng chuột.
- Trò chơi của bạn phải chơi được hoàn toàn bằng cách sử dụng phương thức nhập bằng bàn phím.
- Trò chơi của bạn có thể hoàn toàn chơi được bằng cách sử dụng phương thức nhập bằng gamepad.
- Tất cả các thành phần trên giao diện người dùng hiển thị trong trò chơi của bạn phải được triển khai và hoạt động đúng cách.
- Trò chơi của bạn không được chứa các chế độ điều khiển bị tắt. Nếu một tính năng không hoạt động, thì bạn phải xoá hoàn toàn tính năng đó khỏi giao diện người dùng.
- Điều này bao gồm lời nhắc về phần thưởng; chỉ hiển thị lời nhắc về phần thưởng nếu lệnh gọi lại
beforeReward
cho điểm chèn quảng cáo đó được gọi.
- Điều này bao gồm lời nhắc về phần thưởng; chỉ hiển thị lời nhắc về phần thưởng nếu lệnh gọi lại
- Trò chơi của bạn không được đưa ra lời nhắc chia sẻ trong trò chơi.
- Trò chơi của bạn không được cho thấy giao diện người dùng hoặc đường liên kết trong trò chơi đưa người dùng đến các trò chơi bên ngoài, trang web hoặc nội dung khác.
- Trò chơi của bạn phải thông báo rõ ràng cho người dùng khi họ đã hoàn thành cấp độ gần đây nhất hoặc kết thúc trò chơi.
- Trò chơi của bạn không được sử dụng những từ như "mua" hoặc "mua hàng" có thể gây nhầm lẫn với các tính năng mua hàng trong ứng dụng không được hỗ trợ cho các trò chơi GameSnacks.
- Nếu trò chơi có phản hồi xúc giác, người dùng phải tắt được tính năng này.
Khởi động trò chơi
Trò chơi của bạn phải phối hợp chính xác với thời gian chạy GameSnacks khi khởi động.
Giao diện Game
của GameSnacks cung cấp các hàm để báo hiệu trạng thái tải của trò chơi, bao gồm: firstFrameReady
khi bạn sẵn sàng vẽ lên màn hình lần đầu tiên và ready
khi người dùng có thể bắt đầu tương tác với trò chơi của bạn.
- Trò chơi của bạn phải gọi
firstFrameReady
khi khung hình đầu tiên của trò chơi đã sẵn sàng để hiển thị. - Trò chơi của bạn phải gọi
ready
khi đã sẵn sàng cho tương tác của người dùng. - Trò chơi của bạn không được gọi
ready
trong khi vẫn hiển thị các thành phần không tương tác, chẳng hạn như màn hình chờ hoặc màn hình tải.
Các nút điều khiển tắt tiếng và cách xử lý âm thanh
Trò chơi của bạn phải tuân thủ các chế độ kiểm soát âm thanh của nền tảng GameSnacks.
- Trò chơi của bạn không nên hiển thị nút tắt tiếng chung và nên dựa vào chế độ kiểm soát tắt tiếng của nền tảng GameSnacks để thực hiện việc này.
- Trò chơi của bạn phải tích hợp với Giao diện âm thanh
và phải tuân theo phương thức
audio.isEnabled
. - Trò chơi của bạn có thể có các nút điều khiển âm thanh chi tiết riêng biệt trong trò chơi, chẳng hạn như nhạc nền hoặc hiệu ứng âm thanh, nhưng vẫn phải tuân thủ các yêu cầu này.
Tạm dừng và tiếp tục
Trò chơi của bạn phải hỗ trợ tính năng tạm dừng và tiếp tục.
- Trò chơi của bạn phải tích hợp với các phương thức Giao diện trò chơi
onPause
vàonResume
để tạm dừng và tiếp tục chơi trò chơi. - Trò chơi của bạn không được sử dụng API Mức độ hiển thị trang web hoặc các API web tương tự.
- Trò chơi của bạn phải thông báo rõ ràng cho người dùng nếu bị tạm dừng.
- Trò chơi của bạn nên lưu tiến trình của người dùng khi bị tạm dừng.
Xử lý dữ liệu
Chỉ sử dụng các API lưu trữ GameSnacks để xử lý dữ liệu.
- Trò chơi của bạn chỉ được sử dụng giao diện Bộ nhớ để lưu dữ liệu trò chơi.
- Trò chơi của bạn không được sử dụng bất kỳ hình thức lưu trữ nào khác bao gồm cookie,
localStorage
,sessionStorage
vàIndexedDB
. - Trò chơi của bạn không được thu thập bất kỳ dữ liệu người dùng nào.
- Trò chơi của bạn không được thực hiện bất kỳ lệnh gọi hoặc yêu cầu dữ liệu bên ngoài nào đến hoặc từ bất kỳ máy chủ nào bằng bất kỳ giao thức nào.
- Trò chơi của bạn không được hiển thị thêm bất kỳ thoả thuận nào với người dùng, chính sách quyền riêng tư hoặc các thông báo khác về việc thu thập dữ liệu hoặc thông báo theo quy định.
Tiến trình lưu
Lưu tiến trình của người dùng và có thể khôi phục tiến trình của họ khi họ quay lại trò chơi.
- Trò chơi của bạn phải sử dụng giao diện Bộ nhớ để lưu tiến trình khi người dùng đã thực hiện tiến trình quan trọng, chẳng hạn như hoàn thành một cấp độ.
- Tổng kích thước của trò chơi đã lưu phải nhỏ hơn 3 MiB và phải dưới 500 KiB.
- Trò chơi của bạn phải khôi phục mọi tiến trình đã lưu khi trò chơi bắt đầu.
- Trò chơi của bạn phải khôi phục được tiến trình đã lưu từ các phiên bản trước của trò chơi.
Điểm cao
Lưu trữ điểm số cao nhất của người dùng hoặc theo dõi tiến trình của họ bằng một chỉ số khác.
- Nếu có điểm số, trò chơi của bạn phải theo dõi điểm số bằng cách sử dụng giao diện Giao diện điểm số.
- Nếu trò chơi không có điểm số, bạn nên theo dõi một chỉ số tiến trình thay thế, chẳng hạn như số cấp độ đã hoàn thành.
Nội dung trò chơi
Các yêu cầu sau đây áp dụng cho nội dung của trò chơi:
Giao diện người dùng của trò chơi
- Trò chơi của bạn phải hiển thị rõ ràng trên nhiều độ phân giải màn hình. Ví dụ: các phần tử trên giao diện người dùng không được bị mờ, vỡ nét hoặc bị kéo giãn.
- Trò chơi của bạn không được sử dụng các thành phần tạo điểm ảnh có độ phân giải thấp và bị mờ khi được điều chỉnh sang màn hình lớn hơn.
- Trò chơi của bạn không được sử dụng các biểu tượng có thể gây nhầm lẫn với các biểu tượng trên thanh thao tác GameSnacks.
- Trò chơi của bạn không được có nút thoát hoặc nút thoát trong trò chơi. Việc này sẽ được ứng dụng hoặc trang web nhúng trò chơi của bạn xử lý.
Bản địa hoá và khả năng truy cập
- Trò chơi của bạn phải hỗ trợ ngôn ngữ tiếng Anh.
- Trò chơi của bạn phải cố gắng hết sức để hỗ trợ người dùng tiếp cận. Bạn nên đáp ứng Nguyên tắc về khả năng hỗ trợ tiếp cận đối với nội dung web (WCAG), cấp độ AA.
- Văn bản trong trò chơi của bạn phải dễ đọc trên các thiết bị và kích thước màn hình. Xem WCAG 2.2 §1.4.3.
Nội dung hướng tới trẻ em
- Trò chơi của bạn không được nhắm đến trẻ em. Hãy xem phần Xác định xem nội dung của bạn có "dành cho trẻ em" hay không để biết thêm thông tin.
Quyền và giấy phép
- Trò chơi của bạn phải được cấp toàn bộ quyền sở hữu trí tuệ của bên thứ ba.
- Trò chơi của bạn không được vi phạm bất kỳ quyền về nhãn hiệu hoặc thương mại nào của bên thứ ba.
- Trò chơi của bạn phải có tất cả các quyền âm nhạc cần thiết.
- Trò chơi của bạn phải có tất cả các quyền cần thiết về nhân cách, bao gồm cả tên và hình ảnh.
Trò chơi của tôi sẽ xuất hiện ở đâu?
Chúng tôi phát hành các trò chơi GameSnacks trên nhiều nền tảng, cả trên các sản phẩm của Google lẫn các trang web cũng như ứng dụng của đối tác GameSnacks, trên cả thiết bị di động và máy tính. Một số ví dụ về nơi chúng tôi phát hành trò chơi GameSnacks có thể kể đến như Ứng dụng Google Play Games, trên các thiết bị Android và trang web gamesnacks.com. Đây là nơi xuất phát phần lớn lưu lượng truy cập của chúng tôi. Tuy nhiên, những vị trí nơi chúng tôi phát hành trò chơi không ngừng phát triển và chúng tôi luôn tìm cách mở rộng đối tượng cho các trò chơi GameSnacks. Vì vậy, theo thời gian, chúng tôi có thể sẽ thêm các nền tảng hoặc đối tác phân phối mới của Google. Thỉnh thoảng, chúng tôi cũng có thể chạy thử nghiệm khi làm việc với các nền tảng phân phối mới.
Kiếm tiền
GameSnacks sẽ kiếm tiền từ trò chơi của bạn và sẽ cung cấp cho bạn một phần doanh thu đó theo thoả thuận cấp phép dành cho nhà phát triển GameSnacks.
GameSnacks có thể tự động đặt quảng cáo tại các sự kiện tự nhiên trong trò chơi, chẳng hạn như đầu video, sự kiện tiếp theo và sự kiện cuối cấp. Bạn cũng có thể đặt thêm điểm chèn quảng cáo trong trò chơi (cả quảng cáo xen kẽ và có tặng thưởng) bằng cách sử dụng Giao diện quảng cáo SDK Nhà phát triển GameSnacks.
Những trò chơi có quá ít cơ hội kiếm tiền hoặc kiếm tiền kém có thể sẽ ít xuất hiện hơn hoặc không được phê duyệt để phân phối. Nguyên tắc chung là đảm bảo có cơ hội cho quảng cáo ít nhất một lần mỗi phút. Dữ liệu này bao gồm cả quảng cáo xen kẽ và quảng cáo có tặng thưởng mà bạn đặt, cũng như các điểm chèn quảng cáo mà GameSnacks tự động thiết lập cho bạn.
Tuy nhiên, điều này không có nghĩa là chúng tôi sẽ luôn hiển thị một quảng cáo. GameSnacks sẽ cân bằng kỹ lưỡng việc tải quảng cáo, mức độ tương tác và trải nghiệm người dùng. Do đó, bạn có thể tuỳ ý tạo điểm chèn quảng cáo ở bất kỳ vị trí nào phù hợp với trò chơi của mình (tức là nhiều lần mỗi phút) và để GameSnacks điều chỉnh tỷ lệ cuối cùng mà quảng cáo được hiển thị.
Yêu cầu về việc kiếm tiền:
Trò chơi của bạn phải cung cấp trải nghiệm chơi cốt lõi liên tục, không bị gián đoạn, với đủ cơ hội để hiển thị quảng cáo xen kẽ và quảng cáo có tặng thưởng phải được định cấu hình bằng cách sử dụng Giao diện quảng cáo.
Bạn không được đưa vào bất kỳ hình thức quảng cáo hoặc kiếm tiền nào khác. Điều này bao gồm quảng cáo trong trò chơi, khoản thanh toán, nội dung được tài trợ và nội dung lồng ghép sản phẩm, lời nhắc trên mạng xã hội cũng như đường liên kết đưa người dùng đến các trò chơi, trang web bên ngoài hoặc nội dung khác.
Bạn phải đảm bảo trò chơi của mình cung cấp đủ cơ hội hiển thị quảng cáo để cả bạn và các đối tác phân phối GameSnacks đều có thể tạo ra doanh thu bền vững. Có thể là do các sự kiện thông thường trong trò chơi (ví dụ: cấp tiếp theo) hoặc một cách rõ ràng bằng cách sử dụng các phương thức Giao diện quảng cáo tại những thời điểm thích hợp khác trong trò chơi.
Khi sử dụng các phương thức Giao diện quảng cáo để đặt quảng cáo trong trò chơi của mình, bạn phải tuân thủ tất cả chính sách về hành vi có tặng thưởng và quảng cáo xen kẽ có liên quan. Ngoài ra, hãy xem tập hợp các phương pháp hay nhất này để biết thêm các mẹo về cách định cấu hình quảng cáo trong trò chơi.
Nếu đặt quảng cáo xen kẽ trong trò chơi, bạn phải đảm bảo rằng các quảng cáo này xuất hiện tại các khoảng nghỉ tự nhiên trong trò chơi. Quảng cáo phải phù hợp với luồng trò chơi của bạn. Bạn không được chỉ kích hoạt quảng cáo xen kẽ ở giữa khoảng thời gian chơi trò chơi liên tục.
Nếu cơ chế trò chơi của bạn hỗ trợ loại quảng cáo này, bạn nên đặt quảng cáo có tặng thưởng. Những cơ hội phần thưởng này phải là không bắt buộc, bạn phải mô tả rõ ràng và bạn không được khuyến khích người dùng nhấp vào quảng cáo. Vui lòng xem chính sách về hành vi để biết đầy đủ các yêu cầu.