בנושא הזה נסביר איך לשלב את Android Performance Tur (טיונר), שנקרא גם ספריית כוונון Fork, כדי להקליט ולהעלות נתוני זמן רינדור פריים מ-Native (C ו-C++ ).
למידע על מנוע המשחק של Unity, אפשר לעיין בדף מדריך ל-Unity
רקע
רכיב מרכזי בחוויית המשחק הוא ביצועי הרינדור. רינדור התוצאה של שני הנתונים הבאים היא:
- קצב פריימים: תדירות הציור של פריים.
- הגדרות של איכות גרפית: רמת הדיוק שבה המסגרת מוצגת, כולל דיוק הסימולציה וגם גרפיקה.
כשמדובר במשחקים, ביצועי רינדור טובים מוגדרים כך:
- הצגת קצב פריימים יציב ועקבי (כלומר, עיבוד פריימים בתדירות הרצויה).
- עיבוד פריימים בתדירות הגבוהה ביותר האפשרית, תוך שמירה על יציבות, בדרך כלל 30 או 60 FPS, בהתאם לסוג המשחק.
- הגדלה מקסימלית של רמת הפירוט עבור משתמש, בהינתן גודל המסך שלו דחיסות תוך כדי השגת קצב פריימים יציב ורצוי.
הספרייה של Android בתחום קצב הפריימים מגבילה חלק גדול הבדלים בזמני הפריימים, דבר שמספק קצב פריימים יציב למשחקים. השאר השונות בזמני הפריימים נובעת מרמת הפירוט המוצגת במהלך של הגיימפליי והיכולות הגרפיות של המכשיר. באמצעות Android Performance Tur (טיונר) מאפשר לך לאתר את הזמנים במהלך הגיימפליי כשזמן רינדור הפריים איטי או מהיר יותר מהיעד, ולהתאים בין הבעיות האלה הזדמנויות:
- הגדרות ספציפיות של איכות
- סצנות ספציפיות במשחק
- דגמי מכשירים ספציפיים או מפרטי מכשירים
הקלטה והעלאה של נתונים
הספרייה Tuning Fork מסתמכת על אחד פונקציות של שנתות בתרשים נקראת כל פריים באמצעות ספריית קצב הפריימים של Android. בספרייה, נתוני הסימון האלה נצברים בהיסטוגרמות, ולאחר מכן מדי פעם שהועלו ל-Google Play דרך נקודת קצה (endpoint) מסוג HTTP. כל סימן וי מתועד בתור משויך למפתח כלי נגינה, הערה, ההגדרות שאתם מציינים בפרוטוקול של מאגר נתונים זמני.
מקשים של כלי נגינה
מקש כלי נגינה מציין את המקום במסגרת המקור של הסימון, וזהו
מספר שלם שצריך להעביר לכל קריאה לפונקציה של סימן האישור. קצב הפריימים ב-Android
הספרייה משתמשת בקבוצה מוגדרת מראש של מפתחות כלים, שמוגדרת ב-swappy_common.h
.
תוכלו גם להגדיר מפתחות כלי נגינה משלכם אם לא תשתמשו בקצב הפריימים
לספרייה.
הערות
הערות מספקות מידע הקשרי לגבי מה שהמשחק שלך עושה כאשר תיבת הסימון מתועדת. לדוגמה, הערה יכולה לזהות כל אחד הבאים:
- רמת המשחק הנוכחית
- 'בוס גדול' מופיעה במסך
- כל מידע רלוונטי אחר על מצב המשחק
הערות מוגדרות על ידי הפרוטוקול com.google.tuningfork.Annotation
מאגר נתונים זמני. כדי להגדיר את ההערה הנוכחית, מעבירים סריאליזציה
הודעה שהגדרתם ל
TuningFork_setCurrentAnnotation()
לאחר מכן, כל נתוני הסימון הבאים משויכים להערה הזו עד
מוגדרת. לפניכם דוגמה להגדרת אב-טיפוס של הערות:
import "tuningfork.proto"
enum Level {
INVALID_LEVEL = 0;
Level_1 = 1;
Level_2 = 2;
Level_3 = 3;
}
message Annotation {
optional Level level = 1;
}
פרמטרים של איכות
פרמטרים של איכות משפיעים על הביצועים ועל הדיוק הגרפי של
משחקים, כמו רמת פירוט ברשת, רזולוציית טקסטורה ויישור קצוות
. בדומה להערות, פרמטרים של איכות מוגדרים באמצעות
הודעה במאגר הנתונים הזמני של הפרוטוקול com.google.tuningfork.FidelityParams
. אלה הפרטים
דוגמה להגדרת אב של פרמטרים של דיוק:
import "tuningfork.proto"
message FidelityParams {
int32 texture_quality_level = 1;
int32 shadow_resolution = 2;
float terrain_details_percent = 3;
int32 post_processing_effects_level = 4;
}
באתחול Tuning Fork, מעבירים המרה (סריאליזציה) של הפרמטרים שהמשחק משתמש בהם. תוכלו לשנות את הפרמטרים האלה אם, לדוגמה, המשתמש משנה את הגדרות הרינדור של המשחק, ואת הנתונים הבאים שהועלו משויך לפרמטרים החדשים.
כדי שמערכת Google Play תוכל להבין את הפרמטרים של ההערות ורמת הדיוק שתגדירו, קובץ מאגר הנתונים הזמני של הפרוטוקולים חייב להיות בחבילה בתוך ה-APK של המשחק, יחד עם הגדרות האתחול. בנוסף, תצטרכו לספק ערכי ברירת מחדל לשילובים נפוצים של פרמטרים של דיוק את ה-APK כדי לפלח את הנתונים לפיהם בממשק המשתמש של Google Play. מידע נוסף זמין במאמר הבא: מגדירים רמות איכות.
תקורה של הזיכרון והמעבד (CPU)
כל הזיכרון שמשמש את ספריית Tuning Fork מוקצה ב- אתחול כדי למנוע הפתעות במהלך המשחק. גודל הנתונים תלוי במספר המקשים של הכלי, במספר ההערות האפשריות מספר הקטגוריות בכל היסטוגרמה; הוא מכפלה של כל הפעמים בייטים לכל קטגוריה. קיימים גם שני עותקים של כל ההיסטוגרמות כדי לאפשר באופן עם אגירת נתונים כפולה.
השליחה מתבצעת בשרשור נפרד ולא חוסמת שיחות עם סימונים. אם לא חיבור זמין להעלאה, החומרים שנשלחו נמצאים בתור להעלאה במועד מאוחר יותר.
אין תקורת עיבוד קטנה לקריאה לפונקציית סימון: פשוט מחשבת אינדקס למערך קטגוריות ההיסטוגרמה ומגדילה של מספרים שלמים.
משלבים את ספריית Tuning Fork
מדריך השילוב הזה מחולק לשניים. החלק הראשון מתאר כיצד כדי להריץ בדיקה מקצה לקצה באמצעות אפליקציית הדגמה ו-Google Play Console. החלק השני מתאר איך לשלב את ספריית Tuning Fork ב-toolchain ואיך להשתמש בפונקציות שהספרייה מספקת. לוחצים על כדי להתחיל, לוחצים על הקישור הבא שלמטה.