حل شده مشکل کند شدن تدریجی بازی!!!
#1
سلام و عرض ادب.
یک سوالی از خدمت دوستان بازیسازم داشتم.
یک اتفاقی در مورد تمام بازیهایی که میسازم میوفته که خیلی منرو اذیت میکنه. خیلی بررسی کردم که بتونم مشکل رو پیدا کنم ولی تا الان به هیچ نتیجه ای نرسیدم.
من بازیهایی که میسازم بخصوص تو نسخه html5 اگر بر روی گوشی ضعیف اجرا بشن به مرور که زمان از بازی میگذره بازی کندتر میشه. تا جایی که بعد مثلا 10 دقیقه عملا تمام حرکتهای بازی تبدیل به اسلوموشن میشه.
این اتفاق تو همه بازیهام میوفته. هرچقدر بازی گرافیکش سنگینتر باشه این موضوع حادتر میشه.
اگر کسی نسخه اندروید و بخصوص html5 بازی رو در حال انجام باشه و گوشیش قوی باشه خیلی متوجه این مشکل نمیشه اما تو گوشیهای ضعیف به سرعت پلیر متوجه میشه که هی داره بازی کندتر میشه و داره هی فشار به سیستم بیشتر میشه.
حتی اگر فقط منوی بازیهام رو هم باز کنید و اصلا وارد خود بازی نشید اگر گوشیتون ضعیف باشه بعد مثلا 10 دقیقه که رو حالت منو مونده متوجه میشین که حرکت اجزای منو کند شده و اگر استارت بزنین و وارد بازی هم بشین باز این کندی به لی اوتهای بعدی هم میره و تنها راه حل بستن بازی و شروع مجدد هست تا قبل اینکه دوباره بازی کند بشه بتونین بازی رو انجام بدین!!!
من چند تا نکته رو در مورد ایونت نویسیم بگم که ذهنتون درگیر این بخشها نشه:
1. من خیلی خیلی کم از اوری تیک استفاده میکنم مگر اینکه مجبور باشم پس فشاری که به سیستم میاد بابت تعدد استفاده از اوری تیک نیست
2. من خیلی دقت میکنم که هیچ اسپرایتی خارج از لی اوت هی تکرار شونده و یا در حال حرکت تا ابد نباشه اصلا اکثر اسپرایتهای من رفتار نابودی خارج از لی اوت رو بهشون میدم پس اسپرایتی خارج از لی اوت در حال حرکت و یا تولید بی نهایت نیست که باعث کند شدن به مرور بازی بشه
3. من همیشه تمام صداهای بازی رو تو پوشه sound قرار میدم که تو قبل از شروع بازی همه شون لود بشن. اول فکر کردم که شاید نباید موسیقی اصلی بازی که در حالت لوپ قرار داره رو تو پوشه sound بذارم و شاید مشکل همینه و چون لوپ هست باید در فولدر موزیک باشه اما باز هم فرقی نکرد البته الان که دارم این متن رو مینویسم به ذهنم رسید که فردا حتما کل صداهارو از بازی حذف کنم و ببینم باز هم همین مشک وجود داره یا نه و اینکه این کند شدن بابت موزیکهای لوپ شونده هست یا نه اما الان فرض رو بر این بزاریم که مشکل از موزیک لوپ شونده نباشه.

میخواستم خواهش کنم از دوستانی که تجربه و مشکل مشابهی داشتن و یا تحقیقی تو بحث بهینه سازی بازی داشتن لطفا منرو راهنمایی کنن که مشکل از کجا میتونه باشه؟
ممنونم از لطفتون
  پاسخ


 سپاس شده توسط: ᔕinaᗪehghani
#2
سلام نریمان جان...

همینجوری نمیشه هیچ چیز رو گفت...

اگر از حلقه های بی نهایت استفاده کنی، بازیت هنگ میکنه، اگر از یه فانکشنی که تعریف کردی، پشت سر هم استفاده کنی، بازی کند میشه، اما بدور از همه ی اینا یه تکست باکس بزار گوشه ی بازیت و FPS و تایم اسکیل رو هر لحظه ست کن توی تکست باکس، ببین اینا چه تغییری میکنن بعد از یه مدت تقریبا طولانی...


توی محیط دیباگینگ هم به چیزایی مربوط به cpu و رم نوشته هم دقت کن...


اما اینا همش تجربی بوده و هرگز ندیدم کند بشه بازی، بیشتر مواقع بازی هنگ میکنه اما به مرور زمان کند نمیشه!
موفق باشی...
نقل قول:
 لحظه ها را ميگذرانديم تا به خوشبختي برسيم؛ غافل از اينكه خوشبختي در آن لحظه ها بود كه گذرانديم.
  پاسخ


 سپاس شده توسط: hasansanaei ، nariman
#3
سلام ؛

از اکسپرشن های زیر در بخش سیستم استفاده کنید : ( توی یکی از همون بخش های اوری تیک هر لحظه ست کنید اینارو )

ImageMemoryUsage
ObjectCount

این اکسپرشن ها از بخش تایم :

CpuUtilisation
Fps
Tickcount
WallClockTime

فکر نمیکنم احتیاج به توضیح درباره این اکسپرشن ها باشه ؟

طبق مشاهدات شخصی همیشه مشکل از میزان مصرف رم هست ؛ کمتر مشاهده شده که بازی بخواد مصرف سی پی یو رو بیش از حد داشته باشه .
اگر این موضوع خوشحالت میکنه ، باید بگم توی همه ی بازی های Html که میزان فریم های زیادی دارند این اتفاق میوفته .

توضیح مختصری میدم ؛ میزان اف پی اس دریافتی عدد میان 20 تا 30 هست ، در حالی که در یک لحظه از بازی ما احتیاج به اف پی اسی میان 60 تا 70 داریم .
اف پی اس همون فریم بر مقیاس ثانیه هست ؛ پس اگر اف پی اس ما کمتر از میزان لازم باشه ، بازی شروع به لگ شدن میکنه و خب عادیم هست .

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

موفق باشید .
  پاسخ


 سپاس شده توسط: nariman ، ᔕinaᗪehghani
#4
ممنونم از سینا جان و حسام جان بابت این راه حل فوق العادشون. بخصوص پارامترهای پیشنهادی حسام عزیز... خیلی خوب بود... خیلی...
من بازی رو بارها چک کرده بودم و مشکل رو پیدا نکرده بودم.
وقتی پارامترهای پیشنهادی حسام عزیز رو تو همه لی آوت ها مطابق شکل زیر گذاشتم (پارامترهای قرمز رنگ)...
Object moved
دیدیم که تو بازی هر چند ثانیه داره به تعداد آبجکتهام اضافه میشه
بعد که دوباره همه ایونتهام رو از ابتدا چک کردم دیدم یک جایی دارم یک آبجکت نامریی غیر لازمی تولید میکنم که رفتار حرکت داره و هر چند ثانیه داره به یک زاویه ای به سمت بی نهایت پرتاب میشه و نابود هم نمیشه و دایما بازی رو کندتر می کنه.
من به همه بچه های انجمن توصیه میکنم تو همه بازیهاشون و در همه لی اوتهاشون این پارامترها رو تا پیش از نسخه نهایی قرار بدن. خیلی خوبن... خیلی...
بازم ممنونم
  پاسخ


 سپاس شده توسط: ᔕinaᗪehghani


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  انتخاب رشته کامپیوتر M.Y 5 2,606 1401/4/11، 06:21 عصر
آخرین ارسال: M.Y
  خرید سورس بازی های شما Hamed85 4 2,192 1401/1/31، 11:02 صبح
آخرین ارسال: Hamed85
  فروش سورس شبه بازی ۴۱۱۴۸ امیرعلی فیروزبخش 0 1,390 1400/11/18، 09:09 عصر
آخرین ارسال: امیرعلی فیروزبخش
  track گوگل انالیتیکس M.Y 6 2,779 1400/10/27، 12:03 عصر
آخرین ارسال: M.Y
  نظر دوستان M.Y 7 2,503 1400/10/2، 05:44 عصر
آخرین ارسال: امیرعلی فیروزبخش

پرش به انجمن: