پست زیر ، پست شماره ۲۱۷ صفحه ۱۱(صفحات ۲۰ پستی) از تاپیک ساخت بازی با کانواس و جاوا اسکریپت است.
بحث فوائد بازی ساز:
امروز۱۹ اسفند ۱۴۰۲ است.
۵ روز است phaser کار می کنم.
در این تاپیک چند تا بازی کار کردم و بعد رفتم تاپیک phaser.
الان که دارم امکانات phaser را می بینم ، یاد کمبودهایی در بازی خودم می افتم که در زیر ذکر می کنم:
مشکل اول ، شعله پشت هواپیما : من دوست داشتم از پشت هواپیما آتش خارج شود که حالت زنده بودن داشته باشه. اگر یک عکس ثابت از آتش می زاشتم خوب نمیشد. در phaser یک چیزی دارین به نام امیتر ، که عکسهایی را به شکل خاصی نزدیک یک شکل دیگه نمایش می دهند ، مثل دود اگزوز یا نورهایی پشت اطراف یک چیز یا نمای آتش... این امیترها در بازی مورد نیازه. ولی شاید با عکس های چند فریمی و تعویض فریم ها بشه تصویر لازم را ایجاد کرد.
مشکل دوم ، رسم ماشین رو یا زیر درخت و ساختمان:
در بازی ماشین وقتی ماشین می اومد پایین باید جلوی درخت ظاهر میشد و وقتی می رفت بالا باید می رفت پشت درخت. به این قضیه عمق میگن. من با رسم مشروط قضیه را حل کردم. یک if گذاشتم که اگر y ماشین از حدی بیشتر بشود ، بعد درخت رسم شود. یعنی محلهای رسم ماشین لابلای طبقات اشیای دیگر بود ، و با بررسی y ماشین تصمیم گیری میشد در اون نقطه ماشین رسم بشه یا نه. یعنی در تابع رسم ، رسم ماشین ، چندین جای کد بود ، و در هر نقطه بررسی y ماشین میشد که اونجا رسم بشه یا نشه. همچنین در رابطه با ساختمان توقف گاه ، اگر ماشین می رفت بالاتر ، پشت ساختمان که قرار می گرفت، قبل ساختمان رسم میشد تا ساختمان روی اون بیافتد.
در phaser یک تابعی داریم به نام setdepth یا تنظیم عمق...که میشه برای هر شی ، عمق خاصی تعیین کرد که روی شی بعدی رسم بشه یا زیرش. مثلا اگر عمقش ۲ باشه و دیگری عمقش ۳ باشه ، اون شی روی این شی رسم میشه.
چون من این کاستی ها را در این تاپیک حس کردم ، حالا امکانات phaser را بهتر درک می کنم.
البته من هنوز ۵ روزه phaser کار می کنم و زوده نطر بدهم. ولی گفتم ممکنه بعدا فراموش کنم اینها را بنویسم.
بحث سر یک بازی ساز دو بعدی است. من هم قبلا فکر می کردم ساخت بازی دو بعدی ، بازی ساز نیاز ندارد ولی الان دو نکته را در بالا گفتم که البته شاید قابل حل باشه ولی بازی ساز هم یک جوری مشکل را حل کرده. البته بازی سازهای مختلف در حل یک مشکل متفاوت عمل می کنند که اینجا دنبال مقایسه بازی سازها نیستم.
در این پست می خواستم ساخت بازی با بازی ساز و بدون بازی ساز را مقایسه بکنم.
فعلا دو نکته را که کار کردم گفتم ولی phaser امکانات بیشتری داره که من هنوز به اون مباحث نرسیدم.
در مورد بازی سازهای سه بعدی ، خوب ایجاد محیط سه بعدی هم بر عهده بازی ساز است.
همچنین هزینه نصب در حالت ۳ بعدی بیشتر است و نباید جاهایی که لازم نیست رسم سه بعدی انجام بشه چون بازی سنگنی میشه. مثلا جاهای دوراز قهرمان بازی ، لازم نیست اشیا نصب بشوند.
در دو بعدی این قضیه تا جایی که من دیدم زیاد مشکل ساز نبود. دیدید که من مدت زمان تابع update را سنجیدم و دیدم با افزایش تعداد آبجکت های بازی ، مدت زمان اجرای تابع update تغییرش تا حدی قابل تحمل بود.