כתיבת משחק דפדפן בפייתון

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

היי רן,

אשמח אם תוכל לספק לי את הרקע שלך כדי שאוכל להכווין אותך קצת יותר טוב. מה אתה כבר יודע לעשות? :slight_smile:

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

באופן גס – משחקי דפדפן שכאלו, כמו הרבה אתרי אינטרנט אחרים, מחולקים לרוב ל־2 חלקים:

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

לדוגמה –

  1. בצד הלקוח יופיע טופס ההתחברות.
  2. כשהשחקן ימלא את פרטיו וילחץ על הכפתור “התחבר”, צד הלקוח ישלח לצד השרת בקשת התחברות עם פרטי השחקן שמנסה להתחבר.
  3. צד השרת יבדוק האם יש במאגר שלו (“מסד הנתונים”) שחקן עם הפרטים שנשלחו, ואם שם המשתמש והסיסמה תואמים למה שקיים במאגר.
  4. אם כן – צד השרת ישלוף את כל הנתונים על־אודות השחקן וישלח אותם חזרה לצד הלקוח.
  5. למשתמש יוצג בדפדפן (צד הלקוח) הפרטים שאוחזרו בצד השרת.

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

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

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

  1. כדי לוודא שיש לך בסיס איתן בתכנות – בנה משחק שדומה לאיקרים, אבל שאפשר לשחק בו רק בקונסול
  2. כדי להתחיל עם בניית אתרים – בנה אתר אינטרנט קטן שיש בו רק צד לקוח (נניח: דף אינטרנט שמראה ספירה ב"Live" עד יום ההולדת שלך)
  3. כדי ללמוד על השילוב ביניהם – בנה אתר אינטרנט קטן עם צד לקוח וצד שרת פשוט (נניח: מחשבון שמחשב את הפתרון של התרגיל החשבוני בצד השרת)
  4. כדי ללמוד על התקשורת ביניהם – בנה אתר אינטרנט קטן עם צד לקוח וצד שרת REST־י (נניח: אתר לניהול רשימת קניות). אתה יכול להוסיף פה מסד נתונים בצד השרת אם תרצה, או לשמור את זה לפרויקט קטן אחר.

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

בהצלחה!
– ים

2 לייקים

תודה רבה על התשובה המפורטת היא עזרה לי מאוד.

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

תודה רבה רבה!
רן זוארי

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

אם זה לא מה שבקשת - אז מה כן?