آموزش استفاده از surface در گیم میکر-قسمت اول

آموزش استفاده از surface در گیم میکر-قسمت اول

surface در گیم میکر

(:سطح پیشرفته) مفهوم surface در گیم میکر یکی از جالب ترین و کارآمدترین جنبه هایی است که در اختیار بازی ساز قرار داده شده است. البته قبلا این موضوع را به طور خلاصه در آموزش ساخت سیستم توقف بازی مطرح کردیم. اما در این مجموعه آموزش، تلاش می کنیم‌، تمام مسائل مورد نیاز شما برای کار با این جنبه از گیم میکر را به طور تخصصی و در قالب  ویدیوهای آموزشی توضیح دهیم.

برای درک درست و دقیق surface لازم است که مقدمه مهمی در رابطه با نحوه نمایش (draw) در گیم میکر را بدانید. گیم میکر استودیو تمام عناصر گرافیکی بازی را در طی یک فرآیند دو‌ مرحله ای به نمایش می گذارد. در مرحله اول و در تک تک step های بازی، همه گرافیک ها، روی یک سطح واسط قرار می گیرند. سپس و در مرحله دوم محتویات این سطح واسط به صفحه نمایش بازی منتقل می شود. نام این سطح واسط، surface است. گیم میکر به طور پیش فرض و بدون آنکه لازم باشد برنامه نویس کار خاصی انجام بدهد، یک سطح واسط اولیه با نام application surface ایجاد می کند و تمامی گرافیک های بازی از طریق این سطح به صفحه نمایش منتقل می شود. اما این surface پیش فرض با وجود آنکه کار بازی ساز را آسان کرده و در ۹۵ درصد موارد بدون اشکال قابل استفاده است، اما با این وجود برای برخی موارد خاص محدودیت هایی دارد که بازی ساز پیشرفته بدون دانش استفاده از surface های جدید نمی تواند آنها را حل کند. در مقابل، در صورتی که بازی ساز با روش ایجاد یک surface  جدید و استفاده از آن آشنا باشد، دنیایی از قابلیت های جدید و جذاب در اختیار او قرار می گیرد که با تکیه بر application surface به تنهایی این امکان وجود نخواهد داشت.
تعدادی از موارد متنوع کاربرد surface ها به صورت زیر است:
امکان ایجاد افکت های جالب در بازی٬ ایجاد نورپردازی و سایه، بهینه سازی سرعت بازی و جلوگیری قابل توجه از افت سرعت بازی، ساخت transition های جذاب در هنگام تغییر room و غیره
در این مجموعه آموزشی تلاش خواهیم کرد اکثر موارد جذاب از کاربرد surface را به صورت جداگانه و هر کدام به صورت یک ویدیو آموزشی، برای شما توضیح دهیم.
در ویدیو آموزشی زیر علاوه بر معرفی و آشنایی اولیه با surface، با یکی از ساده ترین کاربردهای surface آشنا می شوید: استفاده از surface به جای ایجاد تعداد زیادی آبجکت و در نتیجه بهینه و سریع شدن اجرای بازی؛

ویدیو آموزشی

.

5 دیدگاه ها

  1. امیر گفت:

    با سلام خدمت دوست گرامی
    من از این سیستم در room به سایز 800*10000 استفاده نمودم که جهت بازی ساخته شده اما زمان اجرا دچار ارور میشه گیم میکر ولی وقتی سایز room رو به 8000 یا کمتر تبدیل میکنم بدون مشکل این قابلیت surface کار میکنه سوالی که دارم این هست آیا میشه از این قابلیت surface برای روم های به اندازه بازی من و یا حتی بزرگتر استفاده کرد . منتظر توضیحاتتون هستم با تشکر.
    Width =800
    Height =10000

  2. ali گفت:

    من موقع draw کردن سورفست مشکل دارم مشکل من اینه که بعد از شرط ولی در else خط کد ارور میده (کدهای بعدش رو قبول کرده)

  3. sina گفت:

    سلام آقای مرزبان عزیز

    بابت زحمت آموزش هایی که تو سایت گذاشتید بسیار ممنونم
    آموزش های در مورد
    surface
    رو دانلود کردم و روی اونها کار کردم خیلی خیلی مفید بود
    راستش چند تا سوال در همین مورد برام پیش اومد و همینطور یک
    درخواست آموزش هم از شما دارم که ممنون میشم اگر آموزشش رو بذارید
    سوال اول من اینه که ممکنه که ما تو بازی بتونیم تا چند تا
    surface
    استفاده کنیم و مشکلی در این مورد پیش نمیاد
    سوال دوم اینه که میشه توی یک ابجکت
    surface
    از چند تا
    my_surface
    مختلف با اسمای مختلف بدون مشکل استفاده کرد
    و سوال سوم اینه که توی آموزش دوم در مورد رد عبور تانک بود
    میشه کاری کرد تا بعد از مدتی مثلا چند ثانیه از ایجاد رد عبور
    تانک اون رد کم کم حذف بشه

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

    • سلام . ممنون از لطف شما
      در مورد سوال اول و دوم تون: باید بدونید که surface از texture memory استفاده می کنه و فضای زیادی از اون رو اشغال می کنه و همچنین می دونید که خیلی فرّار هست.(یعنی اگر اتفاق خاصی برای سیستم عامل پیش بیاد خیلی راحت از بین میره.مثلا اگر صفحه اسکرین سیور کامپیوتر شما فعال بشه یا مثلا هنگام بازی روی گوشی، یه نفر باهاتون تماس بگیره این حافظه به اون موضوع اختصاص پیدا می کنه و در نتیجه ممکنه surface شما کلا بپره.) بنابراین به این دلایل استفاده زیاد از surface یا استفاده همزمان از چندین surface کاملا کار نادرستی هست. علاوه بر این موراد استفاده از surface به شکلی هست که همیشه یکی دو تا کافی است و نیازی به تعداد بالا نداره.

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

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

      ممنون از همه کسایی که کلاس بازی سازی رو دنبال می کنن.

دیدگاهتان را بنویسید

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