ساخت بازی با پایتون

مهمترین سرگرمی همه ما در کودکی بازی ها بوده اند. بازی ها به ما کمک کرده اند تا مهارت های فیزیکی و فکری خودمان را گسترش دهیم. بازی ها بهترین شبیه سازی از دنیای واقعی هستند که می توانیم زندگی کردن را در آن ها تمرین کنیم. حتی رفتار کردن با دوست و دشمن را نیز به ما می آموزند. آن ها بهترین، جذاب ترین و در عین حال موثرین ترین روش برای آموزش مهارت ها هستند.وقتی بازی مورد علاقه خود را انجام می دهیم وارد دنیای دیگری می شویم؛ دنیایی که شاید در آن لحظه برای ما واقعی تر از دنیای خودمان باشد. خود را جای شخصیت های آن ها می گذاریم، جای آن ها می جنگیم، عشق می ورزیم، شکست می خوریم و پیروز می شویم. در این دنیا همه ناممکن ها ممکن می شود و شاید برای همین، دل کندن از آن ها سخت است.بازی ها قدمتی به درازای تاریخ دارند و در همه فرهنگ ها و ملت ها دیده می شوند و نشان دهنده فرهنگ و افکار هر ملتی هستند. بازی ها دارای قوانین ویژه ای هستند. این قانون ها آن ها را از دیگر بازی ها متفاوت می کند. به عنوان نمونه قوانین بازی شطرنج با بازی دوز متفاوت است و هم چنین شکل آن ها نیز با هم تفاوت دارد. بازی ها با اهداف گوناگونی انجام می شوند مانند سرگرمی، زورآزمایی، آموزشی یا کسب درآمد و غیره. بازی ها ترکیبی از هنر، خلاقیت، ادبیات، روانشناسی و حتی دانش ریاضی و فیزیک نیز هستند. آن ها متکی بر مهارت های فکری، فیزیکی و یا شانس هستند؛ مانند بازی هایی که با تاس انجام می شوند.می توان برای هر بازی سه چیز را در نظر گرفت:بازیکن هاقوانین بازیمحیط بازیمی دانیم که بازی ها به طور کلی دو دسته هستند: بازی های کامپیوتری و بازی های دنیای واقعی. همه بازی های کامپیوتری به طور مستقیم و نامستقیم با کدنویسی ساخته شده اند و همه کدها با یک زبان برنامه نویسی نوشته و اجرا می شوند. در این مقاله قصد داریم بفهمیم که چگونه می توان با زبان جذاب و پرکابرد پایتون بازی بسازیم.ساخت بازی با پایتونبرای ساخت بازی با پایتون راه های زیادی وجود دارد. از آن جا که همه ما کوتاه ترین راه را بیش تر دوست داریم، در این مقاله pygame را خواهیم آموخت.پای گیم یک کتابخانه منبع باز Python برای ساخت برنامه های چندرسانه ای است. هم چنین pygame یک wrapper یا بستار کننده Python برای کتابخانه SDL است. SDL سر نام Simple DirectMedia Layer است. کار SDL این است که دسترسی به سیستم های سخت افزاری چندرسانه ای سیستم مانند صدا، فیلم، ماوس و صفحه کلید را فراهم می کند. pygame یک کتابخانه ترکیبی از C ،Python، Native و OpenGL است. ویژگی مستقل از سکو یا cross-platform بودن SDL و pygame اجازه می دهد برای هر پلتفرمی، بازی ها و برنامه های چندرسانه ای بنویسیم.مزیت های Pygame نسبت به سایر کتابخانه هادر مقایسه با سایر کتابخانه های پایتون برای بازی سازی دارای مزیت های است:کار با آن ساده است.برای بازی سازی با پایتون شناخته شده تر است و جامعه برنامه نویسان بیش تری دارد.کراس پلتفرم یا مستقل از platform است و می تواند در لینوکس ویندوز و مک نوشته و اجرا شود.نیاز به یک سیستم پیچیده برای شروع کار نداریم.از پردازنده های چند هسته ای سیستم به راحتی می توان استفاده کرد.برای عملکردهای اصلی از کد بهینه شده C و Assembly استفاده می کند.ساده و قابل حمل است.حجم کد کمی دارد.سایر کتابخانه ها برای بازی سازی با پایتونهمان طور هم که در پیش گفتم تنها راه برای بازی سازی با پایتون pygame نیست. می توان از کتابخانه های زیر هم برای این کار استفاده کرد.کتابخانه PyKyr :PyKyra یکی از سریع ترین چهارچوب های توسعه بازی برای پایتون است که هم بر اساس SDL و هم موتور Kyra ساخته شده است. این فریم ورک، از ویدئو با فرمت MPEG، از MP3 ،Ogg Vorbis ،Wav، تصاویر و موارد دیگر نیز پشتیبانی می کند.2. کتابخانه Pyglet :Pyglet یک کتابخانه چند رسانه ای منبع باز یا open source برای پایتون است. pyglet یک کتابخانه نیرومند پایتون برای توسعه بازی ها و سایر برنامه های چند رسانه ای است. می توان از آن در ویندوز، Mac OS X و Linux استفاده کرد. از پنجره سازی، مدیریت رویداد، گرافیک OpenGL، بارگذاری تصاویر و فیلم ها و پخش صدا و موسیقی پشتیبانی می کند. Pyglet در Python 3. 5+ اجرا می شود. .3. کتابخانه PyOpenGL :PyOpenGL یک کتابخانه گرافیکی است که توسط سیستم عامل های جمله ویندوز، لینوکس و MacOS پشتیبانی می شود. PyOpenGL با تعداد زیادی از کتابخانه های GUI خارجی Python مانند PyGame، PyQt، Raw XLib قابل استفاده است. 4. کتابخانه Kivy :Kivy یک کتابخانه پایتون منبع باز و مستقل از سکو یا cross-platform برای توسعه سریع برنامه ها است. Kivy روی لینوکس، ویندوز، سیستم عامل X، اندروید، iOS و Raspberry Pi اجرا می شود و می تواند از بیش تر پروتکل ها و دستگاه ها از جمله WM_Touch، WM_Pen، Mac OS X Trackpad و Magic Mouse، Mtdev، Linux Kernel HID و TUIO استفاده کند. 5. کتابخانه Panda3D :Panda3D یک موتور منبع باز و کاملا رایگان برای بازی های سه بعدی، تجسم سازی، شبیه سازی، آزمایش و موارد دیگر است. Panda3D شامل ابزارهای خط فرمان برای پردازش و بهینه سازی است. Panda3D از بسیاری از کتابخانه های third-party معروف مانند Bullet، Assimp، OpenAL و FMOD و موارد دیگر پشتیبانی می کند. معرفی کتاببرای آشنایی بهتر و گسترش دانش خود در pygame می توانید کتاب های زیر را بخوانید:Invent Your Own Computer Gameswith Python. Al SweigartGame DevelopmentUsing Python. James RProgram Arcade Games: With Pythonand Pygame. Paul CravenPythonCrash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming. Eric MatthesPython and Tkinter Programming. John Grayson