תכנות משחקים
היה לי זמן פנוי אז החלטתי לתרום מאמר קטן אני קצת קופץ בין נושאים, גם כי המאמר אמור להיות מעבר מהיר על הכל, וגם כי אין לי כוח להתחיל לחשוב על הכל.
תכנות, מתבצע בעזרת שפות תכנות (סתם לזרום: C, פסקל, אסמבלי, ג'אווה וכו'). בעיקרון, ניתן להשתמש בכל שפת תכנות לבניית משחקים, ועם זאת השפה הפופולארית ביותר הינה C/C++, ועבור פלטפורמות יחודיות Java מאוד נפוצה (לדוגמא GameBoy או טל' סלולאריים). על מנת לתכנת בשפת תכנות, יש קודם ללמוד אותה - ומומלץ ללמוד לעומק. אז כדי שניתן יהיה להריץ את מה שכתבת, צריך מהדר (Compiler), או אם זו שפה שאינה עוברת הידור (כמו ג'אווה), אז את סביבת הריצה המתאימה. כשניגשים לתכנת משחק, בדר"כ מומלץ לעשות זאת בעזרת ספריות משחקים (או כדי לפרק לגורמים - ספריות גרפיקה, מוסיקה, טיפול קלט וכו') וזאת כדי לחסוך לך את הטרחה של לכתוב הכל מחדש, וגם לפעמים כדי לאפשר Portability. ספרייה שאני ממליץ עליה מאוד למתחילים (וגם בינוניים) שמתכנתים ב-C או C++ היא Allegro. לאלו אשר רוצים לתכנת על OpenGL (שוב, C או C++) יש את SDL, עליה אני מפתח כיום את המשחק שלי. כמובן שיש את DirectX SDK המהולל, אם המשחק מיועד לחלונות בלבד. יש הרבה אחרות, אולי טובות לא פחות. שאלה שחוזרת על עצמה היא איך בכלל ניגשים לכתוב משחק. התשובה היא, בגדול - כותבים איתחול כותבים לולאת משחק כותבים סיום לולאת משחק טיפוסית תיראה כך: { בדוק קלט וקלוט אותו. עדכן את העולם לפי הקלט. עדכן את התצוגה לפי העולם. חזור חלילה עד שהתקבל הקלט המתאים. } כך לולאת המשחק שלי נראית:
היה לי זמן פנוי אז החלטתי לתרום מאמר קטן אני קצת קופץ בין נושאים, גם כי המאמר אמור להיות מעבר מהיר על הכל, וגם כי אין לי כוח להתחיל לחשוב על הכל.
while(!done) { handle_mouse(); done=handle_kbd(); if(SDL_GetTicks()-ticks>(1000/60)) { //60 FPS menu_update_button_status(); units_update_actions(); units_update(); bullets_update(); effects_update(); ticks=SDL_GetTicks(); continue; } update_output(first_run); first_run=0; SDL_GL_SwapBuffers(); // Swap the backbuffers to the foreground ++fps_count; }
זה כמובן לא מחייב, וסתם ניתן כדי לתת דוגמא כללית. זהו. עכשיו אני הולך לאכול. תרגישו חופשי לשאול.