יום שלישי, 8 ביולי 2025

איך כתבתי את המשחק פונג בשעה

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

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

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




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


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


קוד המקור זמין בגיטהאב: https://github.com/barakbl/pong
מוזמנים להוריד ולשחק. בקובץ ה README יש הוראות הרצה של הקוד, שגם אותם כתב לי ה AI כמובן :) 


אין תגובות:

הוסף רשומת תגובה