معرفی Pygame

?What is Pygame

what-is-pygame

این سری آموزشی برای کسانی است که با برنامه نویسی پایتون آشنایی دارند و علاقمند به گسترش دانش خود در بازی سازی هستند. در این دوره، با مقدمات بازی سازی با pygame، که یک کتابخانه پایتون است، آشنا می شویم و سپس دانسته های خود را در قالب چندین پروژه پیاده خواهیم کرد.

بازی چیست؟

مهمترین سرگرمی همه ما در کودکی بازی ها بوده اند. بازی ها به ما کمک کرده اند تا مهارت های فیزیکی و فکری خودمان را گسترش دهیم. بازی ها بهترین شبیه سازی از دنیای واقعی هستند که می توانیم زندگی کردن را در آن ها تمرین کنیم. حتی رفتار کردن با دوست و دشمن را نیز به ما می آموزند. آن ها بهترین، جذاب ترین و در عین حال موثرین ترین روش برای آموزش مهارت ها هستند.

وقتی بازی مورد علاقه خود را انجام می دهیم وارد دنیای دیگری می شویم؛ دنیایی که شاید در آن لحظه برای ما واقعی تر از دنیای خودمان باشد. خود را جای شخصیت های آن ها می گذاریم، جای آن ها می جنگیم، عشق می ورزیم، شکست می خوریم و پیروز می شویم. در این دنیا همه ناممکن ها ممکن می شود و شاید برای همین، دل کندن از آن ها سخت است.

بازی ها قدمتی به درازای تاریخ دارند و در همه فرهنگ ها و ملت ها دیده می شوند و نشان دهنده فرهنگ و افکار هر ملتی هستند. بازی ها دارای قوانین ویژه ای هستند. این قانون ها آن ها را از دیگر بازی ها متفاوت می کند. به عنوان نمونه قوانین بازی شطرنج با بازی دوز متفاوت است و هم چنین شکل آن ها نیز با هم تفاوت دارد. بازی ها با اهداف گوناگونی انجام می شوند مانند سرگرمی، زورآزمایی، آموزشی یا کسب درآمد و غیره. بازی ها ترکیبی از هنر، خلاقیت، ادبیات، روانشناسی و حتی دانش ریاضی و فیزیک نیز هستند. آن ها متکی بر مهارت های فکری، فیزیکی و یا شانس هستند؛ مانند بازی هایی که با تاس انجام می شوند.

می توان برای هر بازی سه چیز را در نظر گرفت:

  1. بازیکن ها
  2. قوانین بازی
  3.  محیط بازی

می دانیم که بازی ها به طور کلی دو دسته هستند: بازی های کامپیوتری و بازی های دنیای واقعی. همه بازی های کامپیوتری به طور مستقیم و نامستقیم با کدنویسی ساخته شده اند و همه کدها با یک زبان برنامه نویسی نوشته و اجرا می شوند. در این مقاله قصد داریم بفهمیم که چگونه می توان با زبان جذاب و پرکابرد پایتون بازی بسازیم.

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

برای ساخت بازی با پایتون راه های زیادی وجود دارد. از آن جا که همه ما کوتاه ترین راه را بیش تر دوست داریم، در این سری آموزشی pygame را خواهیم آموخت.

Pygame یک کتابخانه منبع باز Python برای ساخت برنامه های چندرسانه ای است. هم چنین pygame یک wrapper یا بستار کننده Python برای کتابخانه SDL است. SDL سر نام Simple DirectMedia Layer است. کار SDL این است که دسترسی به سیستم های سخت افزاری چندرسانه ای سیستم مانند صدا، فیلم، ماوس و صفحه کلید را فراهم می کند. برای آشنایی بیش تر با SDL می توانید به لینک مراجعه کنید. pygame یک کتابخانه ترکیبی از C ،Python، Native و OpenGL است. ویژگی مستقل از سکو یا cross-platform بودن SDL و pygame اجازه می دهد برای هر پلتفرمی، بازی ها و برنامه های چندرسانه ای بنویسیم.

مزیت های Pygame نسبت به سایر کتابخانه ها

pygame در مقایسه با سایر کتابخانه های پایتون برای بازی سازی دارای مزیت های است:

  1. کار با آن ساده است.
  2. برای بازی سازی با پایتون شناخته شده تر است و جامعه برنامه نویسان بیش تری دارد.
  3. cross-platfrom یا مستقل از platform است و می تواند در لینوکس ویندوز و مک نوشته و اجرا شود.
  4. نیاز به یک سیستم پیچیده برای شروع کار نداریم.
  5. از پردازنده های چند هسته ای سیستم به راحتی می توان استفاده کرد.
  6. برای عملکردهای اصلی از کد بهینه شده C و Assembly استفاده می کند.
  7. ساده و قابل حمل است.
  8. حجم کد کمی دارد.

سایر کتابخانه ها برای بازی سازی با پایتون

همان طور هم که در پیش گفتم تنها راه برای بازی سازی با پایتون pygame نیست. می توان از کتابخانه های زیر هم برای این کار استفاده کرد.

  1. PyKyr :PyKyra یکی از سریع ترین چهارچوب های توسعه بازی برای پایتون است که هم بر اساس SDL و هم موتور Kyra ساخته شده است. این فریم ورک، از ویدئو با فرمت MPEG، از MP3 ،Ogg Vorbis ،Wav، تصاویر و موارد دیگر نیز پشتیبانی می کند.
  2. Pyglet :Pyglet یک کتابخانه چند رسانه ای منبع باز یا open source برای پایتون است. pyglet یک کتابخانه نیرومند پایتون برای توسعه بازی ها و سایر برنامه های چند رسانه ای است. می توان از آن در ویندوز، Mac OS X و Linux استفاده کرد. از پنجره سازی، مدیریت رویداد، گرافیک OpenGL، بارگذاری تصاویر و فیلم ها و پخش صدا و موسیقی پشتیبانی می کند. Pyglet در Python 3. 5+ اجرا می شود. برای آشنایی بیش تر با Pyglet روی لینک کلیک کنید.
  3. PyOpenGL :PyOpenGL یک کتابخانه گرافیکی است که توسط سیستم عامل های جمله ویندوز، لینوکس و MacOS پشتیبانی می شود. PyOpenGL با تعداد زیادی از کتابخانه های GUI خارجی Python مانند PyGame، PyQt، Raw XLib قابل استفاده است. برای آشنایی بیش تر با PyOpenGL روی لینک کلیک کنید.
  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 استفاده کند. برای آشنایی بیش تر با Kivy روی لینک کلیک کنید.

  5. Panda3D :Panda3D یک موتور منبع باز و کاملا رایگان برای بازی های سه بعدی، تجسم سازی، شبیه سازی، آزمایش و موارد دیگر است. Panda3D شامل ابزارهای خط فرمان برای پردازش و بهینه سازی است. Panda3D از بسیاری از کتابخانه های third-party معروف مانند Bullet، Assimp، OpenAL و FMOD و موارد دیگر پشتیبانی می کند. برای آشنایی بیش تر با Panda3D روی لینک کلیک کنید.

معرفی کتاب

برای آشنایی بهتر و گسترش دانش خود در pygame می توانید کتاب های زیر را بخوانید:

  • Invent Your Own Computer Gameswith Python. Al Sweigart
  • Game DevelopmentUsing Python. James R
  • Program Arcade Games: With Pythonand Pygame. Paul Craven
  • PythonCrash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming. Eric Matthes
  • Python and Tkinter Programming. John Grayson

تصویر این کتاب ها در زیر آمده است.

کتاب های آموزش pygame

در پایان باید به این نکته اشاره کنم که برای آغاز این سری آموزشی باید یک درک مقدماتی از پایتون و مفاهیم آن داشته باشید. همچنین باید پایتون را در سیستم خود نصب کرده باشید. در صورت تمایل به یادگیری مفاهیم ابتدایی پایتون، می‌ توانید دوره ویدیویی آموزش مقدماتی پایتون را که بصورت رایگان در سایت روکسو منتشر شده است، مشاهده کنید.

نکته بعدی این است که pygame با بیش تر نسخه های پایتون کار می کند. در این سری آموزشی از پایتون نسخه 3. 8. 3 استفاده شده است.

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری بازی‌سازی با پایتون توصیه می‌کند:
نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.