شروع کار بازی نویسی با پایتون

لوگوي پايتون
لوگوي پايتون

با سلام خدمت دوستان و بازديدکنندگان محترم،

از اين همين حالا بخش برنامه نويسي هم به وبلاگ اضافه شد و از اين به بعد بيشتر راجع به برنامه نويسي و در ضمن بازي سازي مي نويسم.

چون تصميم گرفتم بيشتر سراغ نوشتن پيرامون موراد و کارهاي مورد علاقه ام بپردازم:

پایتون زبان برنامه‌نویسی تفسیری و سطح بالا ، شی‌گرا و یک زبان برنامه‌نویسی تفسیری سمت سرور قدرتمند است که توسط گیدو ون روسوم در سال ۱۹۹۰ ساخته شد. این زبان در ویژگی‌ها شبیه پرل، روبی (رابی)، اسکیم، اسمال‌تاک و تی‌سی‌ال است و از مدیریت خودکار حافظه استفاده می‌کند.

نقل شده از ویکی فارسی سایت تخصصی پایتون به زبان فارسی

پایتون به شکل پروژه‌ای بازمتن توسعه یافته است و توسط بنیاد نرم‌افزار پایتون مدیریت می‌گردد. نسخهٔ 2.4.2 این زبان در تاریخ ۲۸ سپتامبر ۲۰۰۵ منتشر شد.

تاريخچه

نوشتن این زبان برای اولین بار در سال 1990 توسط فردی به نام گویدو ون رسوم کلید خورد. پایتون در یک محیط آموزشی ایجاد و توسعه یافته است . یعنی در کریسمس سال ۱۹۹۸ (میلادی) در موسسه ملی تحقیقات ریاضی و رایانه (CWI) شهر آمستردام. در آن زمان گیدو یک محقق در CWI بود و در زمان بیکاری خود بر روی پروژه شخصی خود یعنی پایتون کار می کرد . اولین نسخه عمومی از پایتون در ماه فوریه سال ۱۹۹۱ منتشر شد . برای مدتی نسبتاً طولانی پایتون توسط موسسه ملی تحقیقات و ابتکارات (CNRI) واقع در رستون ایالات متحده‌ امریکا توسعه می‌یافت . تا اینکه در سال 2000تیم توسعه دهنده پایتون به آزمایشگاه های پایتون منتقل شدند . نام پایتون از برنامه مورد علاقه سازنده آن یعنی مونتی پایتون که یک برنامه کمدی انگلیس بود گرفته شده است .

ويژگي ها

شيء گرايي

پایتون یک زبان برنامه‌نویسی شی‌گرا است و از ویژگی های پیشرفته‌ایی چون وراثت، چند شکلی، سربار گزاری عملگر و … پشتیبانی می کند. یک از ویژگی‌های پایتون که لقب چسب را برای پایتون به ارمغان آورده امکان استفاده از کد ها و کلاس‌های نوشته شده در زبانهای دیگری چون سی‌پلاس‌پلاس و‮‮ جاوا‬ است ‮که در حقیقت ‬کار‮ ‬چسباندن‮ ‬قطعات‮ ‬کد‮ ‬جدا‮ ‬و‮ ‬فقط‮ ‬نوشتن‮ ‬بدنه‮ ‬اصلی‮ ‬به‮ ‬عهده‮ ‬ پایتون ‬است‮ ‬.

آزاد

پایتون یک زبان برنامه‌نویسی آزاد و بازمتن هست.‮ می‌توانید متن آن و خود برنامه را از اینترنت دریافت یا در توسعه آن همکاری کنید .

قابليت حمل

چون پایتون با زبان قابل حمل ‏سی‮ ‬نوشته‮ ‬شده‮ ‬می‮ ‬تواند‮ ‬به‮ ‬صورت‮ ‬مجازی‮ ‬بر‮ ‬روی‮ ‬هر‮ پردازش‌گردی‮ همگردانی ‬و‮ ‬اجرا‮ ‬شود‮ ‬.‮ ‬ماشین‮ ‬مجازی (مفسر پایتون)‮ متن برنامه‮ ‬را‮ ‬خوانده‮ ‬و‮ ‬هم‌زمان‮ ‬تفسیر‮ ‬کرده‮ ‬و‮ ‬اجرا‮ ‬می‮ ‬کند‮‬.‮ ‬پس‮ ‬شما‮ ‬می‮ ‬تونید‮ ‬یک‮ ‬برنامه را‮ در ویندوز ‬بنویسید‮ ‬و‮ ‬سپس‮ ‬بدون‮ ‬تغییر‮ ‬روی‮ لینوکس ‬یا‮ مکینتاش‬ یا‮ ‬هر‮ سیستم عامل ‬و‮ سخت‌افزار ‬دیگری‮ ‬که‮ ‬ پایتون ‬روی‮ ‬آن‮ ‬نصب‮ ‬باشد‮ ‬اجرا‮ ‬کنید‮ ‬.‮

قدرتمند

پایتون زبانی چند رگه است که از زبان‌های برنامه‌نویسی تفسیری‮ (برای مثال : تی‌سی‌ال، اسکیم، پرل‮) ‬و‮ ‬زبان‌های‮ ‬سیستمی‮ (‬برای‮ ‬مثال‮‬:‮ سی‌پلاس‌پلاس، سی ‬و جاوا‮) ‬مشتق‮ ‬شده‮‬.‮ ‬بنابراین‮ ‬تمام‮ ‬سادگی‮ ‬و‮ ‬راحتی‮ ‬کار‮ زبان‌های برنامه‌نویسی تفسیری‮ ‬و‮ ‬ویژگی‬‌ها‮ ‬و‮ ‬قدرت‮ ‬زبانهای‮ ‬سطح‮ ‬پایین‮ ‬را‮ ‬داراست‮ ‬.‮

دروني سازي و گسترش

این ویژگی یکی از پرکاربرد ترین و قوی ترین ویژگی های پایتون می باشد . شما می توانید قطعه از کد را در زبانی چون ‮سی‌پلاس‌پلاس، سی ‬و جاوا ‬نوشته سپس ‬از آن‮ ‬در‮ ‬برنامه‮ ‬نوشته‮ ‬شده‮ ‬با‮ ‬پایتون‮ ‬استفاده‮ ‬کنید‮‬.‮ ‬و‮ ‬یا‮ می توان ‬از‮ ‬توابع‮ ‬کتابخانه‮ای ‬و‮ ‬کامپوننت‮ ‬هایی‮ ‬چون‮ ‬COM API‮ ماژول) با برنامه نویسی معمولی هر زبان متفاوت می باشد . می توان از کد های پایتون در زبانهای دیگر نیز استفاده کرد (درونی سازی) ‬استفاده‮ ‬کرد‮ ‬.‮ البته نوع این نوع برنامه نویسی (درونی سازی)

سهولت در يادگيري

بی شک و حداقل از نظر بسیاری از برنامه نویسان پایتون این زبان یکی از آسان ترین زبان ها برای یادگیری و استفاده می باشد و از آن به عنوان یک زبان سریع برنامه نویسی یاد می کنند . این زبان نیازی به [[کامپایلر ]] ندارد و شما مستقیما می توانید پس از نوشتن کد و با یک دستور آن را اجرا کنید . دستورات این زبان بسیار نزدیک به زبان انسان می باشد . برای مثال برنامه Hello World ‬را‮ ‬که‮ ‬اولین‮ ‬برنامه‮ ‬ساده‮ ‬می‮ ‬باشد‮ ‬را‮ ‬در‮ ‬دو‮ ‬زبان‮ سی و‮ پایتون ‬مقایسه‮ ‬کنید‮ ‬:

Hello World در سی

#include <stdio.h>
int main()
{
	printf(" Hello world ");
	return 0;
}

Hello World در پایتون

print "Hello World !!"

برخی از برنامه های نوشته شده با پایتون

  • بیتتورنت (BitTorrent ) : نرم افزاری برای جستجوی فایل های به اشتراک گذاشته شده و …
  • بلندر (‌Blender) : یک نرم افزار 3 بعدی و اپن سورس بسیار معروف
  • چندلر (Chandler) : مدیر اطلاعات شخصی شامل تقویم ، میل ، کار های روزلنه ، یادداشت ها و …
  • Civilization IV : یک گیم کامپیوتری بر مبنای پایتون که از boost.python استفاده می کند
  • میلمن (Mailman) : یکی از معروفترین نرم افزار های مرتبط با ایمیل
  • Kombilo : مدیر پایگاه داده و مرورگرگیم های go
  • موین موین (MoinMoin) : یکی از قدرتمندترین و معروفتریم ویکی های موجود
  • پلون (Plone) : یک ابزار مدیریتی محتوایی اپن سورس ، قدرتمند و کاربر پسند
  • پورتاژ (Portage) : قلب توزیع جنتو . یک مدیر بستهای سیستم لینوکس
  • زوپ (zope) : یک پلاتفورم شی گرای مبتنی بر وب . زوپ شامل یک سرور نرم افزار به همراه پایگاه داده شی گرا و یک رابط مدیریتی درونی مبتنی بر وب می باشد
  • اس پی ای (SPE) : یک IDE رایگان ، اپن سورس برای سیستم عامل های ویندوز ، لینوکس ، مک که از wxGlade(طراحی رابط کاربر),PyChecker (دکتر کد) Blender(3D) پشتیبانی می کند .

این نوشته (پایتون) بخشی از کتاب پایتون می باشد .

خوب، مطلب بالا رو حتماً خوندید؟ پس دیگه الان تقریباً مواردی باب آشنایی با پایتون میدونید! برای آشنایی بیشتر و یادگرفتن اون می تونید به همین منبعی که من ازش استفاده کردم برید و مطالب اونجا رو بخونید. اینجا

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

برای مطالب امروز و روز های بعد فعلاً اینها رو داشته باشید، پست بعد در ادامه اینها خواهد بود:

قرار اینجا چی یاد بگیریم؟
چگونگی نوشتن بازی های رایانه ای بوسیله زبان برنامه نویسی پایتون. با استفاده از کتابخونه های زیر:
-PyGame
و
-PyOpenGL
ما کارمون رو با مباحثی پیرامون چگونگی نصب پایتون و کتابخانه ها و همچنین مروری کوتاه پیرامون نحوه برنامه نویسی پایتون و نکات پایه ای پای گیم (از این به بعد برای سهولت در نوشتن بجای پای گیم از پ.گ استفاده می کنم) شروع می کنیم و کم کم ساخت بازی های دو بعدی و سه بعدی رو شروع می کنیم.
حتماً خیلی دوست دارید بدونید این آموزش ها رو چه کسانی نوشته اند؟
آموزش های آتی توسط دو فرد به نام های Geoff Howland و Rene Dudfield نوشته شده است. بهتر نیست قبل از شروع مقاله بعدی اسم این دو نفر رو گوگل کنیم تا راجع بهشون اطلاع پیدا کنیم و بهتر بشناسیمشون؟
خوب حتماً می دونید پایتون چیه و حتماً تا حالا فهمیدید که چرا ما پایتون رو برای بازی سازی انتخاب کردیم (اگر جستجو کردید و چیز بدرد بخوری پیدا نکردید همینجا بیان کنید تا با هم فکری هم دیگه نکات جالبی رو برای افرادی هم که نمی دونند بدست بیاریم)
نصب پایتون و شروع به کار با آن:
خوب وقتشه شعار رو کنار بزاریم و واقعاً شروع کنیم… همینطور که می دونید اکثر افراد از دو سیستم عامل محبوب ویندوز و لینوکس استفاده می کنند (در ایران)
ویندوز
این فایل ها رو بگیرید:
خود پایتونپای گیمچند مثال برای کار – حجم فایل ها زیاد نیست…
سیستم عامل لینوکس
پایتون به صورت پیشفرض در اکثر توزیعات لینوکس نصب میشه و بسته به نوع توزیع و بسته های شناخته شده در آن (deb or rpm) خودتون در سایت هایی نظیر GetDeb و غیره و با گوگل کردن به راحتی PyGame رو پیدا کنید.
خوب حتماً می دونید چطوری پایتون رو اجرا کنید پس دیگه توضیح نمی دم (ویندوزی ها از استارت منو IDLE رو پیدا کنند (GUI پایتون))
نظرتون راجع به اجرای این چند خط کد چیه؟

import pygame
print dir(pygame)
print dir()

خوب import از پایتون می خواد که اون ماژول رو بارگزاری کنه.
این کد هم بعدها زیاد به درد می خوره:

help(pygame.Rect)

اجرای مثال ها
در command prompt ویندوز این کدها را بنویسید:

set PATH=%PATH%;c:\Python24\
cd «\Program Files\Pygame-Docs\examples»
python chimp.py

توجه کنید که مسیر مثال ها به این بستگی داره که شما کجا اونها را از جالت فشرده زیپ خارج کرده باشید. شاید شما بخواید خط set رو توی autoexec.bat تون قرار بدید تا لازم نباشه هر دفعه برای استفاده از پایتون این رو بنویسید.
کابران سیستم عامل لینوکس هم از کدهایی نظیر زیر استفاده می کنند:

cd /usr/share/doc/python2.4-pygame/examples/
python chimp.py

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

مطالب این پست تا حدودی ترجمه از این سایت و استفاده از دانسته های قبلی خودم بود.

پ.ن: در صورتی که پیرامون این آموزش مشکلی داشتید می توانید مشکلات خودتون رو در این تاپیک از سایت دنیای آینده مطرح کنید. اما در صورتی که سوال شما پیرامون خود پایتون هستش می تونید به فروم تخصصی پایتون به فارسی مراجعه کنید. در ضمن، سوالات پیرامون نصب این ها در لینوکس رو هم می تونید در سایت هایی نظیر اوبونتوی ایران، تکنوتاکس و وبلاگ های مرتبط با لینوکس بپرسید.  برخی از وبلاگ های خوب در این زمینه: اوبونتو بلاگ , مداد آی تی، کافه ی گنو و لینوکس، آموزش لینوکس و … .

پ.ن2: لطفاً فقط به مطالب من اکتفا نکنید، اگر واقعاً می خواید بازی نویسی با پایتون رو یاد بگیری خودتون هم جستجو کنید و حتی ما رو هم از نتایجتون خبر کنید.

پ.ن3: اگر این پست رو به صورت کامل خوندید و به دردتون خورد حتماً نظر بدید، اینجوری من بهتر می فهمم که این مطلب چقدر طرفداره!

Advertisements

10 پاسخ به “شروع کار بازی نویسی با پایتون

  1. نمیدونستم پایتون خوشت میاد !
    خیلی زبان باحالیه ، خوشبختانه بیشتر چیز هاش آماده است و خیلی شبیه انگلیسیه ، متاسفانه سی ، پدر آدم رو در میاره ، یه جمع هم باید براش تعریف کنی !

    آقا ما رو یادت میاد ؟ همون قضیه آنتی هری پاتر ، موافقی تبادل لینک کنیم ؟
    – – – – – – – – – – =
    نه یادم نمیاد کی؟ هری پاتر چیه؟ تبادل لینک چیه؟ من اینجا چیکار می کنم؟!
    بی شوخی، جوابت رو فرسنادم!
    مصطفی

  2. سلام چطوري؟تازه با اين وب آشنا شدم.تو گوگل ريدر اد كردم خيلي خوشم اومده.واقعا كه كنجكاوري.زودبه زود آپ كن كه ما هم زود به زود از مطالبت استفاده كنيم 😀 چه جالب،جابلاگي هم كه داري.ايول.
    – – – – – – – =
    ممنون از نظرتون،
    سعی خودم رو می کنم که زودتر آپدیت کنم ولی چه کنم که بعضی وقت ها سرم شلوغه!
    مصطفی

  3. يه چيز خيلي جالب!چرا توي تمام آموزش هايي كه تا حالا خوندم،چه از اون html ,php , VB همشون اولين قدمش نوشتن كلمه ي hello world! است هميشه هم علامت تعجب هم داره.خيلي اين موضوع جالبه. 😀 چرا نمينويسن مثلا hello admin يا بنويسن i hate you 😀 😀
    راستي لينكت كردم.حال كن چه خوب آنلاينيم.تا نظر دادي نظرتو خوندم.آنلايني رو حال ميكني/؟ 😀
    – – – – – =
    می خوای عوضش کنم بنویسم Print «I love Satrap!!!!!???!?!?!?!?»
    جالب میشه ها!
    مصطفی

  4. سلام
    جالب بود.لینکت کردم .منو با نام جوک, اس ام اس, لطیفه لینک کن

    موفق باشی

    – – – – – – – =
    امکان ارسال کامنت در وبلاگتون نداشتم! با یاهو پیام فرستادم…
    اینجا هم می گم که لینکتون کردم!
    با تشکر
    مصطفی

  5. آقا اون هری پا پتی همونی بود که گفتی باعث بی دینی میشه دیگه !
    منم لینکت کردم ! اما چرا فعلا با عنوان جام جهان نما ؟

  6. تاکیدش به خاطر زیبایششه ، البته خیلی کیفیتش پایینه ، چون زیادی فشرده اش کردم .
    آفرین رفیق ! بهتره با نام جام جهان نما لینک کنی !
    سرعت منم تا چند روز دیگه میاد به شدت پایین ولی خب … با سرعت پایین اصلا نمیشه دانلود کرد که بخواییم ۹ مگ دانلود کنیم ! اما من گفتم بازم ۹ مگ بهتر از ۱۱۲ مگ هست !

    – – – – – – – – =
    والا اینو خوب اومدی… من یه کافی نت نزدیک خونمون سراغ دارم، با اینکه سرعتش 512، با 512 های دیگه خیلی فرق می کنه! سرعت دانلودش خیلی بالایه! تازه اگر حجم دانلودت کمتر از 10 مگابایت باشه، پولی براش نمی گیره!
    یه چند چیز دیگه هم فشرده کن به 10 برسون برم دانلود رایگان!
    مصطفی

  7. بابا بازي سازيو بي خيال،اصلا حال نميده همون برنامه نويسي خدايي يه چيز ديگس،بازي سازي خيلي حوصله سربره

    – – – – – – – – =
    نه بابا، بازی سازی عشقه!
    البته توی کشور ما اینطور جا افتاده که به عنوان بازیساز باید همه کار ها از نوشتن سناریو تا طراحی مرحله، مدلها، برنامه نویسی و … رو خودت انجام بدی! وگرنه بازی سازی کلی کیف میده!
    همینطور که می دونید دومین صنعت پول درآر در جهان و در کشور های پیشرفته در این صنعت هست!
    البته این که بازی سازی عشقه نظر منه ها!!! (میترسم به خاطر همین کلمه عشق، وبلاگ فیـ.ـلـ.ـتـ.ـر بشه!
    مصطفی

  8. دوستان، به علت اینکه سرم بیش از حد شلوغه، معلوم نیست ادامه آموزش تا چند روز دیگه باشه…
    ولی سعی می کنم خود وبلاگ رو به زودی آپدیت کنم…
    با تشکر
    مصطفی

  9. آره خب بابا كيف كه ميده ولي گروه از كجا؟؟؟؟تو فرض كن:
    2100 بايد تري دي استديو مكس بلد باشه
    10000 مايا
    10000 فوتوشاپ
    20000 تا برنامه نويس
    1000 تا صدا گذار
    1000 تا طراح
    سرت گيج نميره خدايي؟؟راستي يه كتابايي ديدم كه فكر كنم بازي هاي ساده باهاش ميشه ساخت كه بودن علم برنامه نويسي نوشته بود.خيلي جالب بود

  10. لازم نیست از همون اول Assassins Creed بسازیم که! از یه مینی گیم شروع میشه و کم کم تعداد افراد اضافه می شن!
    در ضمن… اگر قرار باشه که اینقدر بازیمون خوب باشه که بخواد به خارج بره هم یا باید لایسنس مایا و مکس و اون انجین مورد نظر رو بخریم یا از انجین ها و نرم افزار های متن باز/آزاد استفاده کنیم! مثلاً از بلندر و OGRE و … .
    مصطفی

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s