هادی ابراهیمی، برنامه نویس قرارداد هوشمند، بلاکچین، بکاند و بازی ساز. ارتباط با من در تلگرام hadieb73 :)
حالت های زمان در فریم ورک Machinations
بازی ها معمولا از روش های متفاوتی زمان را مدیریت می کنند. بازی های تخته ای اغلب نوبتی هستند، در حالی که در بسیاری از بازی های ویدیویی اگر بازیکن هیچ فعالیت خاصی نداشته باشد باز هم بازی فعال است و روند بازی جریان دارد. برای نشان دادن حالت های مختلف زمان در بازی ها، نمودار های فریم ورک Machinations از سه حالت مختلف زمانی برای انجام عملیات استفاده می کنند:
· حالت زمانی همگام، در این حالت همه گره ها در یک فاصله زمانی منظم اجرا می شوند. این فاصله زمانی(intervals) را میتوانید برای کل سیستم تعیین کنید. همه نود های تعاملی که شما میبایست بر روی آنها کلیک کنید در گام(step) بعدی پس از کلیک اجرا می شوند. در این حالت همه فعالیت هایی که باید انجام شوند در یک گام جا می گیرند و به صورت منظم و همگام اجرا می شوند. برای کاربر، فعال کردن چندین گره تعاملی در یک گام زمانی امکان پذیر است اما هر نود فقط یک بار در هر گام زمانی امکان اجرا دارد.
· حالت زمانی ناهمگام، در حالت ناهمگام گره های خودکار در فاصله زمانی منظم و با طول دلخواه تعیین شده توسط کاربر اجرا می شوند. با این حال بازیکن می تواند گره های تعاملی در هر زمان در بین فاصله زمانی اجرا کند که اکشن های تعریف شده بلافاصله اجرا خواهند شد. تفاوت همگام و ناهمگام در این جا در اجرا شدن اکشن ها در گام بعدی است که در حالت ناهمگام اینطور نیست، یک گره تعاملی می تواند چندین بار در طول یک گام زمانی اجرا شود. این حالت زمانی به صورت پیشفرض برای فریم ورک machinations فعال است.
· حالت نوبتی، در این حالت گام های زمانی در یک فاصله زمانی منظم اتفاق نمی افتند. در عوض، یک گام زمانی جدید پس از این که بازیکن تعداد معینی اکشن را اجرا کرد فعال می شود. پیاده سازی این سیستم با تعیین یک مقدار action points برای هر گره تعاملی(مانند گره آموزش سرباز،گره ساخت ساختمان) و تعیین یک بودجه ثابت از ap برای بازیکن امکان پذیر خواهد بود. پس از این که بازیکن همه ap های خود را مصرف کرد، ابتدا همه گره های خودکار فعال می شوند و سپس نوبت بعد اتفاق می افتد.
تداخل کشیدن منابع
هنگامی که دو استخر همزمان سعی در کشیدن منابع یکسان از یک منبع به صورت همگام داشته باشند، اگر استخر منبع منابع کافی برای ارائه نداشته باشد تداخل پیش می آید. به عنوان مثال اگر سه استخر داشته باشیم به نام های source،pull1 و pull2 دو استخر pull1 و pull2 همزمان به استخر source متصل هستند و منابع دریافت می کنند. میزان منابع دریافتی هر یک از این استخر ها 1 واحد است اگر استخر source فقط یک واحد مانده برای ارائه داشته باشد در این حالت نحوه رفتار دو استخر pull1 و pull2 به حالت زمانی تعیین شده در سیستم بستگی دارد. در حالت زمانی همگام هیچ یک از دو استخر pull1 و pull2 چیزی دریافت نمی کنند بلکه بعد از دو بار تکرار وقتی استخر source منابع کافی برای ارائه به هر دو استخر مقصد داشته باشد جا به جایی منابع انجام می شود.
در حالت ناهمگام یا نوبتی، یا استخر pull1 یا pull2 اقدام به کشیدن منابع می کند. اولویت استخری که منابع را دریافت می کند کاملا تصادفی است که در هر گام زمانی تناوب پیدا می کند. به عبارت دیگر اگر منابع کافی برای هر دو استخر وجود نداشته باشد به صورت تصادفی یکی از دو استخر منابع را دریافت می کند و در دفعه بعد استخر دیگر به صورت نوبتی این کار را ادامه میدهد.
مطلبی دیگر از این انتشارات
Machinations: معرفی عناصر اولیه - قسمت اول
مطلبی دیگر از این انتشارات
Machinations : حالت های اجرای عناصر در فریم ورک
مطلبی دیگر از این انتشارات
Machinations: کشیدن و هل دادن منابع