יום שישי, 18 בנובמבר 2011

עוד משחק?



עוד משחק?










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


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






"...האם אנחנו שוברים את התחושות האלה, או שאנחנו מעדיפים לשמר אותן..."










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


"אנחנו רוצים לשמר את תחושת ההנאה מהמשחק"








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


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


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


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


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


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




"סצינת מעבר, שמצד אחד נותנת לו לנוח קצת, אבל מצד שני מעוררת מחדש את העניין שלו במשחק"


אפשר לנסח את זה ככלל אצבע שיהיה נכון במרבית המקרים.  שאומר שאם השלבים נגמרים מהר מאוד, עדיף להקטין את זמן ההמתנה במידת האפשר. ואם השלבים ארוכים מאוד, אז האתנחתה ביניהם יכולה להיות דווקא טובה.
אם ניקח לדוגמה משחק שאני משחק עכשיו אנצ'רטד 3, שהוא אגב משחק מעולה שקיבל ממוצע ציונים מאוד גבוה. אז במשחק יש קטעי אקשן מצויינים, אבל מצד שני גם ארוכים ומתישים לפעמים. מצאתי את עצמי שמח להגיע ל cut scene רק על מנת לנוח קצת. אבל פה קורה משהו מעניין. אחרי שהשחקן התעייף מלשחק בקטע אקשן, הוא מקבל סצינת מעבר, שמצד אחד נותנת לו לנוח קצת, אבל מצד שני מעוררת מחדש את העניין שלו במשחק. הסצינה מקדמת את הסיפור, מציגה פרטים מסויימים על מה שהולך לקרות בקטע האקשן הבא  ופתאום השחקן כבר קצת שוכח את זה שהוא התעייף מקטע האקשן, פשוט כי מעניין אותי מה עומד להתרחש הלאה. 


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




"אפשר לעשות פשוט restart"






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


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


יכול להיות שהרעיון הזה נשמע לכם "אלים" מידי. אחרי הכל, שום מידע, שום הפסקה, פשוט לזרוק את השחקן ל"מים העמוקים"? ובכן, אם זה נעשה בצורה טובה, ובמקרים המתאימים, לא רק שזה לא יפריע לשחקן. הוא אפילו לא ישים ממש  לב. אני מציע לכם לשחק ולראות מה קורה כשאתם משחקים במשחק Cut the Rope, ונכשלים בשלב. במשחק הזה, אם איבדתם את הממתק, אין שום צורך להמשיך את השלב. במקרה הזה קורת התרחשות מאוד מהירה,  יש לנו את ההתאכזבות של הלטאה החמודה, ואז פייד מהיר למסך לבן וחזרה, ותוך שנייה אנחנו באותה נקודה שהתחלנו, אפילו לחיצה על המסך אינה נדרשת. וזה קורה כל כך מהר וכל כך בטבעיות, שהייתי צריך לחזור לשחק את זה ולראות מה הם בדיוק עשו שם, כי פשוט לא זכרתי. 


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






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


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


"מה שקורה במעבר משאיר את השחקן בתחושה שהוא היה בה בעת ששיחק"




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


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


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


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


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


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


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


מן הסתם, להעביר את fruit ninja לקינקט היה רעיון אדיר, מה יותר טוב מלתת לשחקן להזיז את הידים במהירות כדי לחתוך פירות על המסך, גם כייף, גם אינטואיטיבי, והאמת שגם קצת מעייף in a good way - אבל כל זה סבבה. ובכל זאת המפתחים עשו טעות אחת קטנה לכאורה, אבל קריטית, הם השאירו את מנגנון השליטה בתפריטים, זהה לזה של המשחק באיפון. 


"בלי להגזים - זו חוויה די נוראית. ולמרות שנהניתי יחסית לשחק במשחק, השטות הזאת גרמה לי לעזוב אותו די מהר."


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

בלי להגזים - זו חוויה די נוראית. ולמרות שנהניתי יחסית לשחק במשחק, השטות הזאת גרמה לי לעזוב אותו די מהר. 


היו לי עוד כמה דוגמאות בנושא, רעות וטובות. אבל בין Angry Birds, ל  Cut the Rope ל Fruit Ninja - נראה לי שמצינו. הנושא הזה הוא רק חלק קטן מהמכלול של הנושאים שקשורים לחווית משתמש טובה במשחק. אבל אני רואה אותו כמאוד חשוב, כיוון שלפעמים אנחנו כל כך מתאמצים לתת לשחקן חוויה טובה צבעונית וכיפית בתוך הגיים פלי, שאנחנו שוכחים כמה חשוב זה פשוט לדאוג שהוא גם ישאר עם ההרגשה הזאת..



2 תגובות:

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

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

    בהצלחה, שפי

    השבמחק