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

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

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

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

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

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

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

پایتون به شکل پروژه‌ای بازمتن توسعه یافته است و توسط بنیاد نرم‌افزار پایتون مدیریت می‌گردد. نسخهٔ 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: اگر این پست رو به صورت کامل خوندید و به دردتون خورد حتماً نظر بدید، اینجوری من بهتر می فهمم که این مطلب چقدر طرفداره!

پادسکت، این دفعه برای بازیسازان

پادکست چیست؟

پادکست جدیدترین تکنولوژی تولید و نشر محتوای صوتی در اینترنت است. به وسیله پادکست می‌توان صدای خود را در اینترنت منتشر کرد و می‌تواند یک رادیو آماتوری شخصی باشد.
واژه پادکست از طرف لغت‌نامه آمریکایی «آکسفورد» به عنوان واژه سال انتخاب شد. این لغت نامه پادکست را اینطور معرفی کرده است: «برنامه‌ای رادیویی که دیجیتالی ضبط شده و برای دانلود و قرار دادن در دستگاه‌های شخصی پخش صدا د در لغت نامه اینترنتی ویکی پدیا هم در توضیح کلمه پادکست اینطور آمده است:
پادکست یا پادپخش یکی از روش‌های انتشار پرونده بر روی اینترنت و نام عمومی نوعی برنامه‌ آوایی است که توسط کاربران معمولاً بر روی یک پخش کننده موسیقی دیجیتال و عموماً یک آی‌پاد به شکل یک فایل صوتی ساخته شده، با استفاده از اینترنت بر روی رایانه‌های خانگی و یا پخش‌کننده‌های دیجیتال پیاده می‌شود. این روش در سال ۲۰۰۴ محبوبیت و گسترش یافت.
به زبان ساده‌تر پادکست جدیدترین تکنولوژی برای انتشار صوت بر روی شبکه اینترنت است. اینترنت به عنوان رسانه‌ای با کاربردها و قابلیت‌های متنوع شناخته می‌شود و تا پیش از این هم امکان قرار دادن فایل‌های صوتی بر روی اینترنت و دریافت فایل صوتی متمایز می‌کند، استفاده از آر.اس.اس (RSS) به منظور جمع‌آوری اطلاعات پادکست هاست.
به عبارتی، شما در ابتدا نرم‌افزارهای خاصی را دریافت و بر روی سیستم‌تان نصب می‌کنید، بعد نام و آدرس پادکست‌های مورد علاقه‌تان را به این نرم‌افزار می‌دهید و هنگامی که شما به اینترنت متصل می‌ِشوید این نرم‌افزار به طور اتوماتیک به آدرس پادکست‌های مورد ر اینترنت گذاشته می‌شود.» علاقه شما سرمی‌زند و هر کدام که به روز شده باشند، فایل صوتی مروبط به آن را بر روی سیستم شما دانلود می‌کند و در پایان فایل‌های صوتی جدید را داخل دستگاه پخش موسیقی آی پاد شما می‌ریزد. این فرایند پس از مرحله اولیه تنظیمات کاملاً به طور اتوماتیک اتفاق می‌افتد و شما در هر زمان بدون نیاز به اتصال به اینترنت یا دسترسی به دستگاه کامپیوتر فقط به دستگاه پخش موسیقی می‌توانید پادکست‌های جدید را گوش کنید.
http://zoka.blogfa.com/post-۲.aspx

خوب، حالا که فهمیدید پادکست چیه و به چه دردی می خوره، می خوام اولین پادکست بازیسازی جهان رو معرفی کنم. کاری از برو بچه های بازی ساز ایرونی که البته هنوز خوب بین همه جا نیفتاده. جیپاد اسمی است که برای این پادکست در نظر گرفته شده. تا کنون دو شماره از GPod یا همون GamesPodcast منتشر شده و شماره سوم هم به زودی (تا دو سه هفته ی دیگه) به همراه ضمیمه ای جدید که فعلاً چیزی راجع بهش نمی گم منتشر خواهد شد.

در این پادکست به مباحثی نظیر معرفی انجین، اخبار روز بازی سازی، اخبار روز بازی های رایانه ای و نقد یا پیشنمایش جدیدترین بازی، مصاحبه با افراد برتر بازیسازی ایران، آموزش و … پرداخته میشود.

البته برای بالا بردن کیفیت صدا در دو شماره قبلی لینک های موجود حذف شدند و امکان اینکه این دو شماره رو الان برای دانلود قرار بدم وجود نداره، به زودی بعد از اصلاح لینک ها، من هم برای دانلود لینک میذارم.

در ضمن، فعلاً گروه کاری جیپاد در سایت طراحان ایرانی فعالیت می کنند و می تونید نظراتتون رو راجع به جیپاد در اون سایت و یا وبلاگ جیپاد بیان کنید.

در ضمن اگر تمایل به همکاری در این جیپاد دارید، در قسمت نظرات همینجا با من تماس بگیرید تا شما رو راهنمایی کنم.

لینک ها:

جیپاد طراحان پارسی