דלג לתוכן
English

Colossal Cave Adventure

הגדרה

⁦Colossal Cave Adventure⁩ הוא משחק הרפתקה טקסטואלי שוויל קראותר (⁦Will Crowther⁩) כתב בשנים 1975–1976 על מחשב ⁦PDP-10⁩ בחברת ⁦BBN⁩. הוא שאב השראה מהמערות שחקר בעצמו, במערכות המערות ⁦Mammoth⁩ ו-⁦Flint Ridge⁩ בקנטקי. דון וודס (⁦Don Woods⁩) הרחיב אותו בהרבה ב-1977. השחקן מקליד פקודות קצרות של פועל ושם עצם, כמו ⁦GET LAMP⁩, והמשחק מזהה אותן לפי חוקים קשיחים שנכתבו מראש, בלי שום למידה. המשחק התפשט ברשת ⁦ARPANET⁩ והשפיע על הדור הבא של משחקי ההרפתקה, ובהם ⁦Zork⁩ ו-⁦Adventureland⁩.

💡 דוגמה

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

ממערה אמיתית למחשב PDP-10

וויל קראותר עבד בחברת ⁦BBN⁩ (‏⁦Bolt, Beranek and Newman⁩‏) בקיימברידג' שבמסצ'וסטס. בין היתר כתב קוד בשפת סף (אסמבלי) עבור הנתבים המקוריים של רשת ⁦ARPANET⁩. ⁦Rick Adams⁩ מרכז באתר שלו את הקוד של המשחק ואת תולדותיו. לפי האתר הזה, קראותר כתב את הגרסה המקורית בשפת ⁦Fortran⁩ על מחשב ⁦DEC PDP-10⁩, אחרי שנישואיו הסתיימו ב-1975. המשחק שחזר את המערות שהוא עצמו חקר במערכות ⁦Mammoth⁩ ו-⁦Flint Ridge⁩ בקנטקי, והוסיף להן רכיבים ממשחקי תפקידים פנטסטיים. האתר ⁦if50.substack.com⁩ מביא קטעים מהקוד המקורי ומסביר אותם. לפיו, כבר הגרסה הראשונה כללה ננס עם גרזן שתוקף את השחקן ובורח, שער נעול שנפתח במפתחות, וציפור שמבריחה נחש. לפי ויקיפדיה, הגרסה הזאת מ-1976 כללה כ-700 שורות קוד ועוד 700 שורות נתונים, 66 "חדרים" (מיקומים) ואוצר מילים של 193 מילים בלבד.

המנתח: פועל ושם עצם, ותו לא

השחקן תקשר עם המשחק בפקודות של מילה אחת או שתיים: פועל ואחריו שם עצם, כמו ⁦GET LAMP⁩, או קיצורי כיוון כמו ⁦E⁩ למזרח. הקיצורים האלה הפכו למוסכמה בהרפתקאות הטקסט שבאו אחריו. קראותר הוסיף גם מילת קסם, ⁦XYZZY⁩. בגרסה המקורית היא שימשה קיצור דרך לבדיקות, והיא מעבירה את השחקן מיד בין שני מיקומים קבועים במשחק. מאז החביאו משחקים ותוכנות רבים פקודת "⁦xyzzy⁩" משלהם, כמחווה. חשוב להבהיר: לא הייתה כאן הבנת שפה במובן של היום. המנתח השווה את המילה שהוקלדה לרשימה סגורה וקבועה מראש של פעלים ושמות עצם מוכרים. זו התאמת תבניות נוקשה. היא אב קדמון רחוק של זיהוי הכוונות הסטטיסטי של מודלי השפה, ושונה ממנו מאוד.

דון וודס מכפיל את המשחק

לפי האתר של ⁦Rick Adams⁩, ב-1976 עבד דון וודס במעבדת הבינה המלאכותית של סטנפורד (‏⁦SAIL⁩‏), ומצא עותק של התוכנה של קראותר באחד ממחשבי האוניברסיטה. ויקיפדיה, לעומת זאת, כותבת רק שוודס מצא את המשחק על מחשב בבית הספר לרפואה של סטנפורד. לפי ויקיפדיה, חלק מקובצי המקור שלו התגלו ב-2005 בגיבוי ישן של חשבון הסטודנט שלו במעבדת ה-⁦AI⁩. כלומר, המקורות לא מסכימים לגמרי על המחשב שבו מצא את המשחק. כך או כך, וודס שלח דואר אלקטרוני לקראותר לכל כתובת ⁦ARPANET⁩ אפשרית, וקיבל את אישורו. אחר כך הוא הכפיל בפועל את גודל המשחק. לפי ויקיפדיה ולפי ⁦if50.substack.com⁩, הוא הוסיף פיראט שגונב אוצרות, ניקוד ותנאי ניצחון (להחזיר את האוצרות אל פני האדמה), אפשרות לשמור משחק ולחזור אליו, ושעות הפעלה מוגבלות שמנהלי מערכת יכלו לקבוע. הוא גם בנה מערכת כללית של כלים לנוזלים, במקום בקבוקון מים בודד. לצד המבוך המקורי של קראותר, המבוך המפורסם של "מעברים מפותלים שכולם נראים אותו דבר", הוסיף וודס מבוך שני, שבו כל חדר מתואר אחרת. הוא הוסיף גם משחקי מילים, כמו צדפה ענקית שהופכת לאוסטרה ענקית. התוצאה הסופית כללה כ-3,000 שורות קוד, 140 מיקומים, אוצר מילים של 293 מילים ו-53 חפצים.

איך המשחק התפשט

הגרסה של קראותר התפשטה ברשת ⁦ARPANET⁩ בלי שהוא התכוון לכך. אנשים התקינו אותה בלילות על מחשבי מחקר, בלי לדווח לצוות המחשוב. ג'ים גילוגלי (⁦Jim Gillogly⁩) העביר את המשחק מ-⁦Fortran⁩ לשפת ⁦C⁩ עבור ⁦Unix⁩, בחברת ⁦Rand Corporation⁩. לפי ויקיפדיה זה קרה ב-1977 (באתר של ⁦Rick Adams⁩ מצוין 1976). גרסאות ⁦Unix⁩ רבות מריצות עד היום צאצאים של הגרסה הזאת. את המשחק הפיצה גם ⁦DECUS⁩, קבוצת המשתמשים של ⁦DEC⁩. גרסה של מיקרוסופט הייתה בין המשחקים שיצאו עם השקת ה-⁦IBM PC⁩ ב-1981. לפעמים השתמשו בו אפילו כדי לבדוק חומרה, כי הוא הפעיל חלקים רבים ומגוונים של הקוד.

ההשפעה: Zork, Adventureland ו-SHRDLU

ויקיפדיה מתארת את המשחק כיצירת הסיפורת האינטראקטיבית הראשונה שהייתה מוכרת בהיקף רחב. בזכות זה הוא גם נתן את שמו לז'אנר כולו (‏⁦Adventure game⁩‏). ב-2019 נכנס המשחק להיכל התהילה העולמי של משחקי מחשב (⁦World Video Game Hall of Fame⁩). לפי אותו מקור, חוקר הסיפורת האינטראקטיבית גרהם נלסון (⁦Graham Nelson⁩) כתב שבחמש השנים שעד 1982 "כמעט כל משחק שנוצר היה עוד '⁦Advent⁩' אחד". ההשפעה הישירה ביותר הייתה על שניים. הראשון הוא צוות ב-⁦MIT⁩ שרצה לבנות מנתח שפה מתקדם יותר מהמנתח של שתי המילים של ⁦Colossal Cave Adventure⁩, וכך נולד ⁦Zork⁩. השני הוא סקוט אדמס, שכתב ב-1978 את ⁦Adventureland⁩. גם מערכת ⁦SHRDLU⁩, שקדמה לו (1968–1970), כבר ניסתה לנהל שיחה בשפה טבעית על עולם מדומה. אבל לפי הערך על ⁦SHRDLU⁩ באתר זה, רק עם ⁦Colossal Cave Adventure⁩ קיבל הז'אנר צורה מוכרת ונפוצה. ההשפעה הזאת ממשיכה גם היום. הרפתקאות טקסט חזרו בלבוש חדש בכלים כמו ⁦AI Dungeon⁩, שמבינים כל משפט חופשי ולא רק פועל ושם עצם. אבל ה"הבנה" הזאת שונה מיסודה: היא מבוססת על הסתברויות שנלמדו מכמויות עצומות של טקסט, ולא על רשימה קבועה מראש של מילים מוכרות, כמו זו של ⁦Colossal Cave Adventure⁩ עצמו.

📬 הגיליון השבועי של Wiki-AI

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

שאלות נפוצות ❓

מי כתב את ⁦Colossal Cave Adventure⁩, ומתי?

וויל קראותר (⁦Will Crowther⁩) כתב את הגרסה המקורית ב-1975–1976, על מחשב ⁦PDP-10⁩ בחברת ⁦BBN⁩. דון וודס (⁦Don Woods⁩) הרחיב אותה ב-1977, ובפועל הכפיל את גודלה.

מה עושה מילת הקסם ⁦XYZZY⁩ במשחק?

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

המנתח של המשחק היה בינה מלאכותית במובן של היום?

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

איך המשחק השפיע על ⁦Zork⁩ ו-⁦Adventureland⁩?

צוות ב-⁦MIT⁩ רצה מנתח שפה מתקדם יותר מהמנתח של שתי המילים של ⁦Colossal Cave Adventure⁩, ובעקבותיו בנה את ⁦Zork⁩. סקוט אדמס כתב בהשפעתו את ⁦Adventureland⁩ ב-1978.

שתפו:וואטסאפטלגרם

מצאתם טעות בערך, או שיש לכם מקור שכדאי להוסיף? כתבו לנו