دیباگر (Debugger)
|سربرگ Profile
سربرگ Profile با جزئیّات زیاد به صورت تفکیکشده به شما نشان میدهد که تقریباً چه قدر از CPU استفاده میشود. برای اینکه Profiler بتواند اطّلاعات را جمعآوری کند و نمایش دهد، بازی باید پیوسته در جریان باشد. Profiler به صورت دستهبندیشده نشان میدهد که هر قسمت از دستورات بازی چه قدر از CPU time استفاده میکنند. این اطّلاعات هر ثانیه یک بار بهروزرسانی میشوند، پس مقادیری که در این سربرگ میبینید مربوط به یک ثانیه پیش هستند.
لازم به ذکر است که مقدار استفادهی کلّی از CPU تقریبی نمایش داده میشود، بنابراین تمام مقادیر دیگر نیز تقریبی هستند. جزئیّاتی که Profiler نمایش میدهد فقط به فایل جاوااسکریپت اصلی بازی مربوط میشود، و ممکن است وظایفی دیگر در حال استفاده از CPU باشند، مثل پردازش صدا یا انجام محاسبات pathfinding. علاوهبراین زمان رندرشدن بازی توسّط GPU نیز در Profiler اصلاً محاسبه نمیشود. سرعت رندر GPU به تنهایی میتواند نرخ فریم بازی را پایین بیاورد، ولی Profiler به طور مستقیم قادر به تشخیص آن نیست. به همین دلیل ممکن است با وجود پایین بودن مقدار استفاده از CPU ببینید که نرخ فریم بازی پایین است.
برخلاف اخطارهایی که دادیم، Profiler میتواند یکی از بهترین انتخابها برای تشخیص مشکلات بهینهسازی بازی باشد. توجّه داشتهباشید که بهینهسازی در بسیاری از موارد لازم نیست و اگر بازیتان به اندازهی کافی سریع است این کار فقط وقت تلف کردن است.
دستهبندی Profiler
Profiler جدولهایی تودرتو را نشان میدهد که نشان میدهد هر قسمت از موتور از جمله هرکدام از ایونتگروپها، چهقدر از CPU time را مصرف میکند. مواردی که معمولاً بیشترین مصرف CPU را دارند و اصطلاحاً top-level نامیده میشوند عبارتند از:
Events: این دستهبندی نشان میدهد که چهقدر از CPU time صرف اجرای دستورات ایونتشیتهای مورد استفادهی لیوت فعلی میشود. این دستهبندی در مرحلهی اوّل به چند دسته تقسیم میشود که هرکدام یکی از ایونتشیتها را نمایش میدهد (در مواردی که از includeها استفاده میکنید)، سپس خود ایوتشیتها به ایونتگروپها و ایونتگروپهای تودرتو تقسیم میشوند. این تقسیمبندی میتواند به شما کمک کند تا بفهمید کدام ایونتها بیشترین مصرف CPU را دارند تا بدانید کجا را باید بهینهسازی کنید.
Physics simulation: این دستهبندی نشان میدهد که چهقدر از CPU time صرف پردازش رفتار Physics میشود. شبیهسازیهای فیزیکی میتوانند به شدّت از CPU کار بکشند. اگر این مقدار زیاد بود، اشیاء فیزیکی کمتری را در بازی درنظر بگیرید.
Draw calls: چهقدر طول میکشد تا CPU فرمان رندرشدن را بفرستد، این مقدار شامل زمانی که GPU آن را کامل میکند نمیشود. در بعضی مواقع، فرمان رندرشدن میتواند به شدّت از CPU کار بکشد، مخصوصاً وقتی اشیاء بسیار زیادی روی صفحهی نمایش قرار داشتهباشد. بعضی مرورگرها نیز همهی فرامین رندرشدن را به جلو میفرستند تا به صورت موازی پردازش شوند، در این موارد احتمال اشتباه بودن این مقدار وجود خواهد داشت.
Engine: بقیّهی زمانی که در موتور کانستراکت 2، با کمکردن زمان ایونتها، فیزیک و فرامین رندرشدن صرف میشود. این زمان شامل پردازش رفتارها و سایر موارد داخلی موتور میشود.
Breakpointها
وقتی دیباگر را اجرا میکنید، میتوانید روی یک ایونت، کاندیشن یا اکشن خاص Breakpoint قرار دهید، تا به محض رسیدن به آن نقطه، بازی متوقّف شود.
سلام خدمت اقا مجتبای گرامی…..داداش من ی چند وقتیه بدجور سر فیزیک این برنامه مشکل دارم..حالا مشکلمو میگم ربطیم به این موضوع نداره خواستم براتم ایمیل کنم متاسفانه نشد..مشکلمو میگم هرموقه تونستی وقت داشتی برام جوابشو ایمیل کن…مشکل اولم اینه میخوام مثه انگری بردز ی چیزیو با موس بگیرم بکشم و پرتابش کنم که میخوام وقتی بازی واسه گوشی ساخته شد تاچ گوشی جای موس بشه….مشکل دومم اینه ی شیبی دارم که ی توپی نوک شیبه میخوام ی پنجره زیرش باز باشه بازیکن ی سرعتی مشخص کنه بعدش که تایید کرد توپ شروع به قل خوردن روی شیب بصورت طبیعی بکنه…..فک کنم بدونی چی میگم….مشکل سومم اینه میخوام ی حالتی اینجاد بشه که فضا یا همون ویو از بالاس ی چیزی مثه صفحه داریم با تاچ یا موس اینو پرتابش میکنم به ی دیوار و وقتیم به دیوار میخوره طبیعتا از نیروش کم میشه و ی مقدارم به عقب برمیگرده..همین سه تا….حالا اگه لطف کنی هرکدومم جواب بدی من ممنونت میشم…شما رو هم من توی پرومیکرز پیداتون کردم بخاطر مقالات حرفه ای و خوبتون….خواهشا منو بی جواب نزارین…دستتون درد نکنه….ایمیلمم نوشتم ولی محض احتیاط اینجام مینویسم[email protected]
سلام دوست عزیز
لطفاً سؤالاتتون رو در انجمن مطرح کنید.
با تشکّر
سلام، خسته نباشید مطالبتون واقعاٌ عالی، و کاربردی هستند. آموزش “ساخت بازی در سبک دفاع از قلعه” رو هم تو سایت قرار بدید لطفاً؛ البتّه خودم مشکل خاصّی در این زمینه ندارم ولی شاید به درد دوستان بخوره.
موفّق و سرافراز باشید!