بخش اول –قسمت دوم: آشنایی با محیط کار
این پنجره رو چندین هزار(!) بار دیدید اما آیا دقت کردید جریان مادر و بچه ها دقیقاً این جا برقراره ؟!! (عزیزانی که این موضوع براشون گنگ می زنه پست دوم من را بخوانند!) قسمت های مختلف عکس رو با عدد مشخص کردم.
1-مشخصات کلی آبجکت(=شئ) یا همون بچه(!) مثل اسم بچه ، قیافه ی بچه ، شماره ی کفش !! و این جور چیزا !
2-Events :اتفاق هایی که اگر برای یک بچه بیفته باید تغییراتی روش اعمال بشه (مثلاً اتفاق ِ کثیف شدن لباس!)
3-Actions: عکس العمل هایی که مادر(!)(همون مفسر) در برخورد با اتفاقی خاص مثل کثیف شدن لباس بچه ها از خودش نشون میده. (برای هر اتفاق فرق می کنه)
3.1- دسته بندی اتفاق ها توی این قسمت خاکستریه مثلاً عمل های حرکتی ، عمل های چرخشی! ، عمل های گردشی !!!!(فقط همون اولی رو جدی بگیرید!!!)
3.2-جایی هست که ما باهاش خیلی کار داریم! ولی هنوز خیلی وارد جزئیات نمی شیم!
شرط می بندم که تا حالا این موضوع رو اینجوری نگاه نکرده بودین!
اسکریپت ها رو کجا باید بنویسیم؟ خوب یک جواب منطقی اینه که اسکریپت ها باید یه کاری (عکس العملی ) انجام دهند پس باید در قسمت Actions گذاشته بشن.ولی همین طوری که نمی شه یک عکس العمل ایجاد کرد همون طور که از اسمش معلومه باید یک عمل باشه تا عکس العمل معنی پیدا کنه .پس حتماً یک Event باید قبلش ایجاد شده باشه .
نکته1: Event های Empty یا رویداد هایی که عکس العملی برای اون ها در نظر گرفته نشده به طور خود کار از لیست Events حذف می شوند.
نکته2:ترتیب در لیست رویداد ها مهم نیست امّا در لیست Actions ها اهمیت دارد.
بعد از ایجاد یک Event به تب کنترل برید و توی زیر قسمتcode دو تا گزینه برای ایجاد یک اسکریپت داره یکی Execute code و Execute script حالا فرق این دو تا چیه به زبان ساده عرض می کنم ( البته نه مثل قبل!):
1- Execute code: اگر قرار باشه مفسر اسکرپتی را برای 1 آبجکت اجرا کنه بهتره ما از همین یکی استفاده کنیم امّا:
2- Execute script : گاهی وقتا پیش می یاد که برای بیش تر از 1 آبجکت (مثلاً 70-80 تا! و یا حتی بیشتر) باید یک اسکریپت اجرا بشه. در این حالت بهترین راه اینه که شما یک اسکریپت مادر بنویسد (از منوی Resources گزینه ی Create Script را انتخاب کنید یا کنترل + آلت + Cرو بزنید)و به همه ی آبجکت ها بگید در صورتی که فلان اتفاق افتاد ، همه برید اسکریپت شماره ی فلان رو اجرا کنید . این جوری لازم نیست که 70- 80 بار یک اسکریپت رو برای همه ی آبجکت ها تایپ کنید و هم از سنگین شدن و زیاد شدن حجم بازی جلوگیری میشه .
یاد آوری : 70 – 80 تا آبجکت یعنی 70 – 80 تا شئ مختلف در گیم میکر، شما یک شئ یا آبجکت می سازید و از روی آن نمونه هایی در Room قرار می دهید که همه رفتار های مشابهی دارند به هر یک از این نمونه ها instance of object یا نمونه ای از ک آبجکت گفته می شود . این خاصیت خوبی است که شما می توانید مثلاً برای ساخت Enemy های یک بازی platform فقط یک آبجکت بسازید و از آن نمونه های زیادی در بازی قرار دهید هر کدام از این نمونه ها (instance) همان رفتار آبجکت اصلی را دارد در حقیقت کپی ای از همان آبجکت است.
با انتخاب گزینه ی اول Execute code و یا ایجاد یک اسکریپت بزرگ (Create Script از منوی Resources) پنجره ای باز میشه که محیط برنامه نویسی GML همین جاست! و حالا حالا ها خیلی این جا کار داریم! فقط یک معرفی جزئی از بخش های این قسمت می کنم.
1- این قسمت نوار ابزار (شاید !) هست .از سمت چپ به راست:
ذخیره ی تغییرات،پرینت، undo که البته 32 بار بیشتر نیست و می تونید ار قسمت
File>Preferences>Script and Code> Number of Undo:
می تونید تعداد آندو ها رو تغییر بدید.
بعد از آندو ، ردو،بریدن ، رونوشت(فارسی کردن اینا جالبه! منظورم همون کپیه!)،چسباندن(پیست)، جستجوی یک عبارت، جایگزینی یک عبارت با عبارت دیگر،رفتن به خط مشخص، و از همه مهم تر اشکال یابی نگارشی که فوق العاده برای اسکریپت های بزرگ خوبه البته بعضی وقتا گیج می زنه!، قسمت بعدی هلپ برنامه هست و قسمت آخر هم برای اسکریپت فرق می کنه و باید یه توضیحی بعداً بدم هنوز در مورد این ها : selfو other چیزی نگفتم.
2- این همون قسمتیه که ما باید کد های برنامه رو این جا بنویسیم.
3- یکی از ویژگی های خوب برنامه ، این قسمت پایینه به محض اینکه گیم میکر متوجه بشه شما دارین چی تایپ می کنین کمکتون می کنه تا نگارش اون تابع و ... رو ببینید تا اشتباه نکنید.
4- status bar هست و موقعیت مکانی مکان نما رو به شما نشون می ده مثلاً خط اول کاراکتر بیست و پنجم.(وقتی تو برنامه مشکل پیدا می شه یه پیغام نمایش داده می شه و به شما نشونی اون جایی که خطا ایجاد شده می ده و شما می تونید اونو پیدا کنید)
ان شاء الله جلسه ی دیگه میریم سراغ خود نگارش GML و البته تکلیف و مشق شب و روز هم داریم! دوستان مفاهیم پایه ای برنامه نویسی مثل :انواع داده ها ، متغیر ها ، اعمال ساده ی ریاضی ، توابع و ساب روتین ها و ... رو بدونن بهتره اگه ندونن خوب عیبی نداره بگید اینا رو هم با کمک هم میگیم!
در ضمن هر گونه کپی برداری و اعمال تغییر در نگارش بنده و استفاده این مطالب در وبلاگ ها ، سایت های آموزشی و انجمن های دیگر بدون اجازه ی کتبی یا شفاهی از بنده نه تنها عیبی ندارد بلکه توصیه هم می شود!!!!!!!!!! و اصلاً نیازی هم به ذکر منبع نیست! من افتخار می کنم اگر بتوانم ذره ای به صنعت بزرگ بازی سازی در کشور کمک کنم و امیدوارم تمام دوستان با من هم عقیده باشند.
در آخر این جلسه هم 5 دلیل از کتابDesigning Arcade Computer Game Graphicsنوشته ی Ari Feldman می آورم که مبین آن است که چرا صنعت بازی 2D Arcade هنوز پا بر جاست و طرفداران زیادی دارد .اگر کشور ما نمی تواند بازی 3D درست و حسابی بسازد مطمئناً تشکیل گروه های 10-15 نفره برای ساخت بازی های 2D نتیجه بخش خواهد بود:
1-به دلیل این بیشتر این بازی ها از حجم کمی برخوردارند می توان از آن ها برای استفاده ی آنلاین در اینترنت استفاده کرد ( مثل سایت پوگو که از پلت فرم جاوا استفاده می کند).
2-هنوز فروخته می شوند و می توان از آن ها برای کسب درامد استفاده کرد( البته نه بازی های ساده ی ما)
3-لذت خاصی در بازه های 2D هست که در بازی های 3D نیست !
4-ساخت گرافیک بازی های 2D بسیار ساده هستند( البته نه خیلی!)
5-ساخت بازی های 2D به زمان زیاد و یا سرمایه های هنگفت احتیاج ندارد ؛ ساخت بازی های دو بعدی به ملزومات سخت افزاری نرم افزاری و از همه مهمتر زمان زیادی احتیاج ندارد . برای مثال تمامی گرافیک های ساخته شده در این کتاب (کتاب بنده خدا!) در کمتر از 1 ساعت یک برنامه ی گرافیکی زیر 200 دلار و یک کامپیوتر پنتیوم ساده انجام شده.در مقایسه برای ساخت بازی های 3D ، هزاران دلار سرمایه ی مالی فقط برای خرید بعضی برنامه های گرافیکی پیشرفته ، زمان های طولانی و تعداد افراد گروه زیاد نیاز مند است.
ببخشید بیشتر از کوپن خودم حرف زدم!