آموزش هاآموزش بازی سازیآموزش گیم میکرتازه های اسکار گیممقالات

ساختار اجرای بازی در انجین گیم میکر

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


اول این که فریم چی هست اصلا؟
فریم یه صفحه ی نمایشی ثابت هستش ، ما توی فیلم های دیجیتال ، حدود ۲۴ فریم در ثانیه داریم ، این یعنی ۲۴ عکس در یک ثانیه ، تو انجین و مقوله ی بازیسازی هم دقیقا همین شکل هست ، ما یه تعدادی فریم داریم ، که تعدادش متغیر هست و خودمون تعیین میکنیم ، عدد مناسبش بین ۳۰ تا ۶۰ هستش.

حالا چرا این عدد توی فیلم ها حدود ۲۴ هستش ولی توی بازی باید ۳۰ به بالا باشه؟ ، یکی از دلایل مهمش اینه که توی حوزه ی فیلم وقتی دو فریم پشت سر هم میان ، این دو فریم وضعیت ثابتی از اشیا نیستن ، مثلا اگر وقتی یه شخص تو فیلم در حال راه رفتن یا دویدن هستش فیلم رو متوقف کنید صحنه ای که باهاش مواجه میشید اینه که شخص دورش هاله ای هست که اضافه بر بدنشه که دلیلش همون حرکت کردنشه ، و این کمک میکنه به مغز ما تا این دو فریم پشت سر هم رو ترکیب کنه و نمایش پیوسته تری رو ببینیم ، ولی توی بازی این رو نداریم و ما توی هر لحظه نمایش ثابتی از اجزا رو داریم و هیچ هاله ای دور شیئی که حرکت میکنه نیست ، پس چون این ویژگی رو نداریم باید فریم ریت بالاتری تو بازیمون داشته باشیم

این رو به یاد داشته باشید که فریم ها هستن که کل بازی رو شکل میدن

حالا توی هر فریم چه اتفاقاتی میفته؟
یه مدت از یه فریم از بازی رو خود انجین پردازش های لازم رو انجام میده…حالا چی رو ما تعیین میکنیم که پردازش داده بشه تو طول یه فریم؟ “اکشن ها و کد هایی که تو کل ایونت های کل آبجکت ها هست”
وقتی ما بازی رو ران میکنیم ، توی هر فریم ، تمام کد ها و اکشن های تمام آبجکت ها ، توی هر فریم اجرا میشه ، و همه هم به ترتیب هست و هیچ دو کد یا اکشنی به طور همزمان اجرا نمیشه

اما به چه ترتیبی؟

هر ایونتی یه اولویتی داره ، ایونتایی که شما اضافه میکنین طبق اولویت های گیم میکر اجرا میشن ، تو عکس پایین میتونین اولویت ایونت های پرکاربرد رو ببینین:

اگر چند تا instance تو روم داشته باشیم ترتیب اجرا در آبجکت  ها چطور خواهد بود؟

اول از همه تمام ایونت های با اولویت بالاتر تو تمام instance ها اگر شامل اون ایونت باشن اجرا میشن ، بعد نوب تمام ایونت های با اولویت بالاتره و به همین ترتیب تا تمامشون اجرا بشن…

اولویت instance ها تو اجرای ایونت های با اولویت یکسان چه شکلیه؟

به ترتیب اضافه کردنشون به روم ، که البته این قابل تغییر هم هست از instance index در تنظیمات روم

یه مرور بکنیم:
وقتی بازی ران میشه ، اول از همه کد و اکشن اولین ایونت ها از لحاظ اولویت اجرا میشه(در تمام instance ها) ، بعد ایونت های با درجه اولویت یکی بالاتر و به همین ترتیب تا تمام ایونت ها اجرا بشن ، وقتی تمامشون اجرا شدن پردازش های فریم فعلی تموم میشه و با شروع فریم بعد تمام این جریانات به همیت ترتیب  اتفاق میفتن…

تو عکس میتونین بهتر متوجه بشین(اون ایونت هایی که با b شروع شدن از آبجکتی هستن که بعد از آبجکت دیگه تو روم اد شدن) :

باید موقع کدنویسی حواستون به این ترتیب ها باشه.

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

حالا که این مطالب رو فهمیدید میتونید خیلی بهتر برای بازی هاتون کدنویسی کنید ، به عنوان مثال شاید براتون پیش اومده باشه که توی توسعه ی یه بازی نیاز داشته باشین یه انیمیشن برای یه دکمه کدنویسی کنین ولی نمیدونین اصلا باید چیکار کنین ، وقتی درک کافی از این مطالبی که مطرح شد داشته باشین میتونی به راحتی چنین چیز هایی رو پیاده سازی کنید ، به عنوان مثال میخوایم اسپرایت یه دکمه به طور مداوم کوچیک و بزرگ بشه ، برای این کار ما باید در هر استپ image_xscale و image_yscale آبجکت رو به یه نسبت و به مقدار خیلی کم افزایش بدیم(مثلا ۰.۰۱) ، بعد یه شرطی هم داخل استپ براش بزاریم که وقتی image_xscale به حد خاصی رسید (مثلا ۱.۲) روند معکوس بشه و مقدار image_xscale و image_yscale  به مقدار یکسانی کم بشه و یه شرط هم براش بزاریم که به یه مقداری که رسید(مثلا ۰.۸) دوباره روند معکوس بشه ، این معکوس شدن روند رو هم مثلا با یه متغیر boolean (متغیر true , false) مدیریت میکنیم.

آموزش به پایان رسید.

امیدوارم مطالب براتون مفید بوده باشه ، شاد و پیروز باشین.

اسکار گیم

معرفی ۵ بازی برتر سبک رانندگی اندروید

مقاله قبلی

دانلود Game Maker Studio 2.2.5.481 + کرک

مقاله بعدی

بیشتر در آموزش ها

نظرات

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *