הדרישות של GameSnacks

במסמך הזה נעשה שימוש במונחים הבאים (לפי RFC 2119):

  • חובה ואסור – אלו דרישות מורכבות שחובה לציית להן בכל המשחקים.
  • מומלץ ולא מומלץ – אלה המלצות שלא חובה אבל אפשר להשתמש בהן כשאנחנו מחליטים איך לדרג או לסנן את המשחקים שמוצגים למשתמשים. לדוגמה, במקרה שהמסך של המשתמש הוא בפורמט אופקי, יכול להיות שהמלצות GameSnacks ימליצו רק על משחקים שתומכים ביחס הגובה-רוחב הזה.
  • ייתכן – הצעות אלה אינן נדרשות ולא ישמשו לסינון משחקים, אלא אם המשתמש ביקש אותו באופן מפורש. לדוגמה, תכונות עתידיות עשויות לאפשר למשתמש להציג רשימה של משחקים שתומכים בקלט gamepad.

הדרישות הבאות חלות על המשחק והנכסים שלו:

מבנה המשחק

המשחק מועלה כחבילה של קבצים שכוללת את הקוד ומשאבי זמן הריצה של המשחק עצמו, את הנכסים השיווקיים להצגתו בקטלוג של GameSnacks, וקובץ game.json שבו מאוחסנים מטא-נתונים שמתארים את המשחק ומפרטים את כל המשאבים בחבילה.

game.json

קובץ התצורה המכיל את המטא-נתונים של המשחק.

  • המשחק חייב לכלול קובץ game.json שמכיל את כל שדות החובה.
  • הקובץ חייב להיות בתיקיית השורש של המשחק.

נקודת כניסה בפורמט HTML

מסמך ה-HTML שטוען את המשחק.

  • נקודת הכניסה חייבת להיות קובץ HTML חוקי.
  • הקובץ חייב לכלול לכל היותר רכיב head אחד ורכיב body אחד.

    • שני הרכיבים, אם קיימים, חייבים לכלול גם תג התחלה וגם תג סיום.
    • המערכת תתעלם מתוכן מחוץ לרכיבים ולמאפיינים האלה ברכיבים האלה.

      במקום להגדיר את המאפיינים ישירות באלמנט body, תוכלו להשתמש ב:

Files

כל הקבצים בחבילה, כולל המשחק והנכסים השיווקיים המשויכים אליו, צריכים לעמוד בדרישות הבאות:

  • כל קובץ חייב להיות קטן מ-10MiB.
  • חובה להפנות לקבצים רק באמצעות נתיבים יחסיים.
  • הנתיבים חייבים להשתמש רק ב-/ כמפריד הספרייה.
  • שמות קבצים חייבים לכלול רק תווים לא שמורים (RFC 3986).
  • שמות קבצים וכל הנתיבים חייבים להיות באותיות קטנות.

גודל המשחק

גודל המשחק הוא הגודל הכולל של כל הקוד והמשאבים שהורדתם למכשיר של המשתמש.

  • גודל המשחק לא יכול להיות יותר מ-100MiB.
    • זה כולל את כל הקבצים הרשומים ב-files ב-game.json ולא נכסים שיווקיים.

דרישות טכניות

המשחק שלך חייב לעמוד בדרישות הטכניות הבאות.

SDK של GameSnacks

  • המשחק שלכם חייב להיות משולב ב-GameSnacks Developer SDK כולל את כל הממשקים הנדרשים.
  • אסור שהמשחק יטען ישירות ממשקי API של מודעות (למשל, החדרת תג מודעות כמו adsbygoogle.js).
    • פלטפורמת GameSnacks תטען את כל שירותי הפרסום הנדרשים בשבילכם.
    • למידע נוסף על תמיכה במודעות במשחק, כדאי לעיין בדרישות למונטיזציה.

תאימות דפדפן

  • כדי לעבד את המשחק, חובה להשתמש ב-Canvas API או ב-WebGL.
  • המשחק חייב לפעול באופן תקין בשתי הגרסאות העיקריות העדכניות ביותר של הדפדפנים הבאים:
    • Chrome ב-Android, ב-iOS, ב-Windows וב-macOS
    • Safari ב-iOS וב-macOS
    • Firefox ב-Android וב-Windows
    • Edge ב-Windows
  • המשחק חייב לפעול בצורה תקינה בתצוגות אינטרנט בגרסאות האחרונות של שתי הגרסאות העיקריות האחרונות של Android ו-iOS:
    • WebView ב-Android
    • WKWebView ב-iOS
  • כדאי לבדוק את המשחק שלכם במגוון רחב של כלי רינדור אינטרנט מוטמעים ועצמאיים אחרים, ככל האפשר.

יכולות מינימליות של המכשיר

המשחק שלך חייב לפעול היטב במכשירים פשוטים. ההנחיות הבאות הן אלה שמעידות על יכולות המכשיר המינימליות שנדרשות למשחקי GameSnacks.

  • המשחק שלכם חייב לפעול בקצב של 30fps או יותר בכל מכשיר עם המפרטים הבאים או טובים יותר:

    • מעבד: Qualcomm 215 , Samsung Exynos 7570 , Mediatek MT6737 או מכשירים דומים
    • RAM: 2 GiB
    • GPU: Arm Mali-T720 MP1, Qualcomm Adreno 308 או פונקציות דומות

    דוגמאות לטלפונים שתואמים למפרט הזה: JioPhone Next, Nokia 1.4, LG K22, Samsung J2 Core ו-Motorola Moto E4

גודל הורדה ראשונית

גודל ההורדה הראשוני הוא כמות הנתונים שיורדו ללקוח כדי להתחיל את המשחק.

  • ההורדה הראשונית חייבת להיות פחות מ-15MiB.
  • ההורדה הראשונית צריכה להיות פחות מ-5MiB.

דרישות פונקציונליות

המשחק צריך לעמוד בדרישות הפונקציונליות הבאות.

זמן טעינה

זמן הטעינה הוא הזמן שנדרש להרצה הראשונית של הקוד ולהתחלת המשחק.

  • המשחק חייב להציג מסך טעינה או להיות אינטראקטיבי תוך פחות משנייה בכל חיבור במהירות של 10Mbps לפחות.
  • המשחק חייב להיות זמין להפעלה תוך פחות מ-15 שניות בכל חיבור של לפחות 10Mbps.

קריסות

  • המשחק שלכם אסור לגרום לקריסות שחוזרות על עצמן באופן עקבי.
  • המשחק שלכם לא יכול לגרום לקריסות שניתנות לשחזור באופן עקבי באפליקציות או באתרים שמטמיעים אותו.

יחס גובה-רוחב

פלטפורמת GameSnacks תיצור מסגרת למשחק שלך לעיבוד בה. הגודל ויחס הגובה-רוחב של המסגרת הזו ישתנו בהתאם למשטח ההפצה, למכשיר ולנוכחות של מודעות הממוקמות מסביב למשחק. גודל המסגרת יכול להשתנות אם, לדוגמה, משתמש משנה את גודל חלון הדפדפן.

  • צריך להשתמש בכל השטח הזמין בתוך המסגרת כדי ליצור תוכן אינטראקטיבי – ללא מרווח פנימי נוסף או מילוי נוסף.
  • המשחק שלכם חייב לתמוך ביחס גובה-רוחב של 9:16 לאורך.
  • צריך לתמוך במשחק ביחס גובה-רוחב של 16:9 לרוחב.
  • המשחק שלכם צריך לתמוך ביחס גובה-רוחב של ריבוע של 1:1.
  • במצב אידיאלי, המשחק צריך להיות רספונסיבי ולתמוך במגוון רחב של יחסי גובה-רוחב לאורך, לרוחב וריבוע.
  • כשגודל הפריים משתנה, הגודל של המשחק חייב להיות מיידי כדי לעמוד בדרישות האלה.
    • המשחק שלכם אמור לעבור בצורה חלקה לגודל החדש.
  • המשחק שלך אסור לנעול את כיוון הדפדפן.

אינטראקציה במשחק

  • חייב להיות כל מה שצריך כדי לשחק במשחק באמצעות קלט מגע.
  • חייב להיות אפשרות לשחק לגמרי במשחק באמצעות קלט העכבר.
  • מומלץ שיהיה אפשר לשחק לגמרי במשחק באמצעות קלט מקלדת.
  • יכול להיות שאפשר לשחק לגמרי במשחק באמצעות קלט של gamepad.
  • חובה להטמיע את כל רכיבי ממשק המשתמש שמוצגים במשחק ולפעול כראוי.
  • אסור שהמשחק יכלול פקדים מושבתים – אם תכונה מסוימת לא זמינה, צריך להסיר אותה לגמרי מממשק המשתמש.
    • הדבר כולל הנחיות לתגמול. צריך לעבד בקשה לתגמול רק אם מתבצעת קריאה חוזרת (callback) של beforeReward להפסקה למודעה הזו.
  • אסור להציג הנחיות לשיתוף בתוך המשחק.
  • המשחק אסור להציג קישורים בתוך ממשק המשתמש או בתוך המשחק שמעבירות את המשתמשים למשחקים, לאתרים או לתכנים חיצוניים אחרים.
  • המשחק שלך חייב להיות ברור למשתמש אחרי שהוא מסיים את השלב האחרון או מסיים את המשחק.
  • אסור שהמשחק יכלול מילים כמו "buy" (קנייה) או "purchase" (רכישה), שעלולות להתבלבל עם תכונות של רכישה מתוך האפליקציה שלא נתמכות במשחקי GameSnacks.
  • אם המשחק כולל משוב פיזי, המשתמשים חייבים להשבית אותו.

הפעלת המשחק

התיאום של המשחק צריך להיות תואם לסביבת זמן הריצה של GameSnacks בזמן ההפעלה. ממשק GameSnacks Game מספק פונקציות שמציינות את מצב הטעינה של המשחק, כולל: firstFrameReady כשמוכנים להציג את המשחק במסך בפעם הראשונה, ready ומתי המשתמש יכול להתחיל אינטראקציה עם המשחק.

  • המשחק שלכם חייב לקרוא firstFrameReady כשהפריים הראשון של המשחק מוכן לעיבוד.
  • המשחק חייב להתקשר אל ready כשהוא יהיה מוכן לאינטראקציה של המשתמשים.
  • המשחק שלכם לא יכול לקרוא ל-ready בזמן שעדיין מוצגים רכיבים לא אינטראקטיביים, כמו מסכי פתיחה או מסכי טעינה.

השתקה של אמצעי הבקרה והטיפול בצלילים

המשחק שלכם צריך לפעול בהתאם לפקדי הסאונד של פלטפורמת GameSnacks.

  • במשחק שלכם לא אמור להציג לחצן השתקה כללי, ובמקום זאת צריך להסתמך על אמצעי הבקרה להשתקה של פלטפורמת GameSnacks.
  • המשחק חייב להשתלב עם ממשק האודיו וחייב לפעול בהתאם לשיטה audio.isEnabled.
  • ייתכן שלמשחק יהיו פקדי אודיו מפורטים נפרדים במשחק, למשל מוזיקת רקע או אפקטים קוליים, אבל הוא חייב לעמוד בדרישות האלה.

השהיה והמשך

המשחק צריך לתמוך בהשהיה ובהמשך.

  • המשחק חייב להשתלב עם ממשק המשחק onPause ועם השיטות onResume להשהיה ולהמשך של המשחק.
  • במשחק אסור להשתמש ב-Web Page Visibility API או בממשקי API דומים באינטרנט.
  • המשחק שלכם חייב להיות מיידע את המשתמש באופן ברור אם הוא מושהה.
  • המשחק שלך אמור לשמור את התקדמות המשתמש כשהוא מושהה.

טיפול בנתונים

רק נעשה שימוש בממשקי ה-API של האחסון של GameSnacks לטיפול בנתונים.

  • במשחק חובה להשתמש רק בממשק האחסון לשמירת נתוני משחק.
  • אסור להשתמש באחסון כלשהו במשחק, כולל קובצי Cookie, localStorage, sessionStorage ו-IndexedDB.
  • המשחק שלכם לא יכול לאסוף נתוני משתמשים.
  • המשחק שלכם אסור לבצע שיחות חיצוניות או בקשות לקבלת נתונים מאף שרת באמצעות פרוטוקול כלשהו.
  • אסור להציג הסכמי משתמש, מדיניות פרטיות או הודעות אחרות שקשורות לאיסוף נתונים או לתקנות.

ההתקדמות נשמרת

אפשר לשמור את ההתקדמות של המשתמש ולאפשר לו לשחזר את ההתקדמות כשהוא יחזור למשחק.

  • המשחק שלכם חייב להשתמש בממשק האחסון כדי לשמור את ההתקדמות כשהמשתמשים התקדמו באופן מהותי, כמו השלמת שלב.
  • הגודל הכולל של המשחק השמור חייב להיות קטן מ-3MiB וצריך להיות קטן מ-500KiB.
  • המשחק שלכם חייב לשחזר כל התקדמות שנשמרה כשהמשחק יתחיל.
  • למשחק חייב להיות אפשרות לשחזר את ההתקדמות שנשמרה מגרסאות קודמות שלו.

תוצאות גבוהות

אפשר לשמור את הציון הגבוה ביותר של המשתמש או לעקוב אחר ההתקדמות שלו באמצעות מדד אחר.

  • אם במשחק יש תוצאות, חובה לעקוב אחריהן באמצעות ממשק הניקוד.
  • אם אין ניקוד במשחק, כדאי לעקוב אחרי מדד התקדמות חלופי, כמו מספר הרמות שהושלמו.

תוכן המשחק

הדרישות הבאות חלות על התוכן של המשחק שלכם:

ממשק המשתמש של המשחק

  • המשחק שלכם חייב להיות מוצג בצורה ברורה ברזולוציות מסך שונות. לדוגמה, רכיבים בממשק המשתמש אסור להיות מטושטשים, מפוקסלים או מתוחים.
  • המשחק לא אמור להשתמש בנכסים דיגיטליים עם רסטר ברזולוציה נמוכה שנראים מטושטשים כשמתאימים אותם למסכים גדולים יותר.
  • במשחק אסור להשתמש בסמלים שעלולים להתבלבל לבין סמלים שמופיעים בסרגל הפעולות של GameSnacks.
  • המשחק אסור לכלול לחצני יציאה או יציאה מתוך המשחק. זה יטופל על ידי האפליקציה או האתר שמטמיעים את המשחק.

לוקליזציה ונגישות

  • המשחק שלכם חייב לתמוך באנגלית.
  • צריך להשקיע מאמצים רבים כדי שהמשחק יהיה נגיש. אנחנו ממליצים לעמוד בהנחיות לנגישות בתוכן באינטרנט (WCAG), רמה AA.
  • הטקסט במשחק חייב להיות קריא בכל המכשירים ובכל הגדלים של המסכים. מידע נוסף זמין במאמר WCAG 2.2 §1.4.3.

תוכן לילדים

זכויות והסדרת הזכויות

  • המשחק שלכם חייב להסדיר באופן מלא את זכויות הקניין הרוחני של צד שלישי.
  • המשחק שלכם אסור להפר זכויות כלשהן של צד שלישי על סימנים מסחריים או זכויות על לבוש.
  • המשחק שלכם חייב להיות בעל כל זכויות המוזיקה הנדרשות.
  • למשחק חייבים להיות כל זכויות האישיות הנדרשות, כולל שם ודמות.

איפה יוצגו המשחקים שלי?

אנחנו מפרסמים משחקי GameSnacks במגוון פלטפורמות, גם במוצרי Google וגם באתרים ובאפליקציות של שותפי GameSnacks, גם בנייד וגם במחשב. דוגמאות למקומות שבהם אנחנו מפרסמים משחקי GameSnacks כוללות את אפליקציית Google Play Games, במכשירי Android ואת האתר gameSnacks.com. בשלב זה, רוב התנועה שלנו מגיעה מהמקום. עם זאת, המיקומים שבהם אנחנו מפרסמים משחקים מתפתחים כל הזמן, ואנחנו תמיד שואפים להרחיב את קהל הצופים של משחקי GameSnacks. לכן עם הזמן אנחנו עשויים להוסיף פלטפורמות חדשות או שותפי הפצה חדשים של Google. מעת לעת אנחנו עשויים גם להריץ ניסויים בזמן העבודה עם פלטפורמות הפצה חדשות.

מונטיזציה

פלטפורמת GameSnacks תייצר הכנסות מהמשחק שלך ותספק לך חלק מההכנסה הזו לכל הסכם רישיון למפתחים של GameSnacks.

פלטפורמת GameSnacks יכולה למקם מודעות באופן אוטומטי באירועי משחק טבעיים, כמו מודעות לפני הסרטון (pre-roll), אירועים נוספים או אירועים ברמת הסוף. אתם יכולים גם למקם הפסקות נוספות למודעות במשחק (מודעות מעברון ומודעות מתגמלות) באמצעות ממשק המודעות של GameSnacks Developer SDK.

יכול להיות שמשחקים עם מעט מדי הזדמנויות לייצר הכנסות או לייצר הכנסות ממשחקים לא ייפגעו בתדירות נמוכה יותר, או שהם לא יאושרו להפצה. כלל אצבע טוב הוא לוודא שיש הזדמנות להציג מודעה לפחות פעם בדקה. היכולת הזו כוללת גם מודעות מעברון וגם מודעות מתגמלות שאתם מציבים, וגם את ההפסקות למודעות שמערכת GameSnacks מגדירה עבורכם באופן אוטומטי.

עם זאת, זה לא אומר שתמיד נציג מודעה. פלטפורמת GameSnacks תמצא את האיזון העדין שבין כמות המודעות, משך השימוש במשחק וחוויית המשתמש. לכן, תוכלו ליצור הפסקות למודעות בכל מקום שבו הן מתאימות למשחק (כלומר, יותר מפעם בדקה) ולאפשר ל-GameSnacks לשנות את הקצב הסופי של הצגת המודעות.

דרישות המונטיזציה:

  • מהלך המשחק (gameplay) העיקרי צריך להיות רציף וללא הפסקות, וצריכה להיות כמות מספיקה של הזדמנויות להציג מודעות מעברון ומודעות מתגמלות, שחובה להגדיר באמצעות ממשק המודעות.

  • אסור לכלול שום צורה אחרת של קידום מכירות או מונטיזציה. האיסור הזה כולל מודעות בתוך המשחק, תשלומים, חסויות ופרסום סמוי, הודעות ובקשות מרשתות חברתיות וקישורים שמעבירים את המשתמשים למשחקים, לאתרים או לתכנים חיצוניים אחרים.

  • אתם חייבים לוודא שהמשחקים מספקים מספיק הזדמנויות להציג מודעות, כך שגם לכם וגם לשותפי ההפצה של GameSnacks תהיה אפשרות לייצר הכנסות מהמשחק לטווח הארוך. באופן אורגני כתוצאה מאירועים רגילים במשחק (למשל, השלב הבא) או באופן מפורש, באמצעות שימוש בשיטות של ממשק המודעות ברגעים מתאימים אחרים במהלך המשחק.

  • כשמשתמשים בשיטות של ממשק המודעות כדי למקם מודעות במשחק, חייבים לפעול בהתאם לכל הדרישות הרלוונטיות של מודעות המעברון ושל המדיניות בנושא התנהגות מתוגמלת. עיינו גם בשיטות המומלצות האלה כדי לקבל טיפים נוספים להגדרת מודעות בתוך משחקים.

  • אם אתם ממקמים מודעות מעברון בתוך המשחק, עליכם לוודא שהן מתרחשות בהפסקות טבעיות במהלך המשחק. המודעות חייבות להשתלב בזרימה של המשחק. אסור להפעיל מודעות מעברון באמצע משחק מתמשך.

  • אם מנגנוני המשחק שלכם תומכים בכך, כדאי לכם להציב מודעות מתגמלות. ההזדמנויות האלה לקבלת תגמולים חייבות להיות אופציונליות, חובה לתאר אותן בבירור ואסור לעודד את המשתמש ללחוץ על מודעות. הדרישות המלאות מפורטות במדיניות ההתנהגות.