بهینه‌سازی بازی

بهینه‌سازی (optimization) بازی به مجموعه اصلاحاتی در پروژه گفته می‌شود که در نهایت منجر به کاهش مصرف منابعی از قبیل حافظه، پردازش، رم، گرافیک و… توسط بازی در هنگام اجرا می‌شود؛ علاوه بر این موضوع بهینه‌سازی باعث کاهش قابل توجه حجم فایل(های) بازی می‌گردد. حجم یکی از فاکتورهای مهم تصمیم‌گیری کاربران برای دریافت بازی از مارکت‌ها می‌باشد. بدیهی است که کاربران یک مارکت در مواجهه با یک بازی پرحجم به سادگی از نصب آن صرفنظر می‌کنند. این موضوع تاحدی اهمیت دارد که بازی‌های پرحجم اندرویدی assetهای مورداستفاده‌ی خود را از فایل اصلی بازی جدا کرده و بازی پس از نصب اقدام به دانلود دیتا می‌کند.

بهینه‌سازی با انجام عملیاتی از قبیل تغییر تنظیمات assetها، کاهش کیفیت اسپرایت‌ها، لوپولی (ساده) کردن مدل‌های سه‌بعدی و استفاده از الگوریتم‌های مناسب صورت می‌پذیرد؛ اما ذکر این نکته ضروری است که بهینه‌سازی یک بازی به هیچ عنوان نباید باعث کاهش کیفیت بازی شده و یا بر روی تجربه‌ی کاربری تاثیر منفی بگذارد. در واقع کاهش کیفیت assetها باید تا حدی انجام شود که خروجی نهایی تغییر چندانی نکند.

هنر یک بهینه‌سازی مناسب در مدیریت حداکثری مصرف منابع توسط اجزای بازی بدون آسیب رساندن به هویت و کیفیت بازی است

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

 

ابزارهای مشاهده‌ی میزان مصرف منابع

یونیتی دارای ابزارهای مختلفی برای مشاهده‌ی میزان مصرف منابع توسط بازی در هنگام اجرا می‌باشد. این ابزارها منابعی که بیش از حد در حال مصرف هستند را به توسعه‌دهنده نشان می‌دهند. مهم‌ترین ابزار برای مانیتورینگ میزان مصرف پنجره‌ی Profiler است.

 

پنجره‌ی Profiler

پنجره‌ی Profiler میزان مصرفی منابع در حین اجرای بازی را در قالب داده‌های آماری و نمودار در دسته‌بندی‌های تفکیک شده نمایش می‌دهد. برای باز کردن این پنجره از منوی Window گزینه‌ی Analysis و سپس Profiler را انتخاب می‌کنیم. سپس بازی را اجرا کرده تا عملیات گزارش‌گیری آغاز شود. دقت کنید که برای این کار کلید Record نوار کنترل این پنجره باید فعال باشد.

نکته در صورت عدم نیاز به داده‌های یک دسته می‌توان با کلیک بر روی ضربدر آن قسمت، بخش مربوطه را حذف کرد؛ قسمت‌های حذف شده از طریق منوی آبشاری Add Profiler قابل فراخوانی مجدد هستند.

در صورتی که در حین اجرای بازی بر روی نمودار کلیک شود اجرای بازی pause شده و داده‌های مربوط به فریم انتخاب شده در قسمت پایینی پنجره‌ی Profiler به تفضیل ارائه می‌شود. برای مشاهده‌ی داده‌های فریم‌های قبلی و بعدی می‌توان از کلیدهای چپ و راست کیبورد و یا دکمه‌های پیکان نوار کنترل پنجره‌ی Profiler استفاده کرد. برای پرش به فریم فعلی نیز از دکمه‌ی Current نوار کنترل استفاده می‌شود.

این داده‌ها مربوط به دسته‌ی انتخاب شده می‌باشند (به عنوان مثال در تصویر بالا دسته‌ی انتخاب شده CPU Usage است)؛ این دسته با رنگ آبی از سایر دسته‌ها متمایز می‌شود. با کلیک بر روی هر دسته می‌توان آن را به حالت انتخاب درآورد.

یکی از مهم‌ترین داده‌های پنجره‌ی Profiler، داده‌ی Draw Calls می‌باشد که در هنگام فعال بودن قسمت Rendering نمایش داده می‌شود. Draw Call به عملیات پردازش تصویری گفته می‌شود که منجر به رندر شدن texture در صفحه نمایش پلیر می‌شود. داده‌ی Draw Calls تعداد دفعات رندر شدن texture در آن فریم را نشان می‌دهد. این عدد با پرفورمنس بازی رابطه‌ی عکس دارد و تا حد امکان بایستی پایین نگه داشته شود.

 

پنجره‌ی Rendering Statistics

این پنجره که با کلیک بر روی دکمه‌ی Stats واقع در نوار کنترل پنجره‌ی Games نمایان می‌شود نیز حاوی اطلاعاتی است که در حالت اجرای بازی در هر فریم بروز شده و می‌توانند مفید واقع شوند.

برگه‌ها : 1 2