آموزش ساخت بازی با جاوا اسکریپت – راهنمای کامل و ساده
ساخت بازی با جاوا اسکریپت فرایندی نسبتاً ساده است و بازیهای ساخته شده با آن نیز معمولاً بسیار سرگرم کننده هستند. همچنین ساخت بازی با جاوا اسکریپت یکی از بهترین روشها برای یادگیری کدنویسی به حساب میآید. جاوا اسکریپت زبانی بسیار محبوب است و امروزه تقریباً در همه وبسایتها و سایر کاربردهای تحت وب از JS استفاده شده است. در این مطلب ابتدا کلیه موارد پیرامون ساخت بازی با جاوا اسکریپت به طور جامع شرح داده شده و سپس آموزش ساخت بازی با جاوا اسکریپت به صورت عملی و پروژهمحور به وسیله ساخت بازی مار با جاوا اسکریپت تکمیل شده است.
یکی از موضوعات جذاب پیرامون جاوا اسکریپت که کاربران را به استفاده از جاوا اسکریپت تشویق میکند، توسعه بازی است. کاربرد جاوا اسکریپت را میتوان در حوزههای مختلفی بررسی کرد که توسعه بازی فقط یکی از آنها بهحساب میآید. امروزه با افزایش سرعت اینترنت و پیشرفت صنعت سخت افزارهای کامپیوتری، تعداد برنامه نویسانی که از جاوا اسکریپت بهعنوان نوعی زبان برنامه نویسی بازیسازی استفاده میکنند همچنان در حال افزایش است. در این مطلب آموزشی از مجله فرادرس، پیرامون موضوع ساخت بازی با جاوا اسکریپت اطلاعات کامل و جامعی ارائه خواهد شد تا به کاربر دید جامع و روشنی از توسعه بازی با جاوا اسکریپت بدهد. همچنین در این مطلب آموزشی بازی جذاب و سادهای نیز با جاوا اسکریپت پیاده سازی خواهد شد.
آیا جاوا اسکریپت برای توسعه بازی مناسب است؟
در پاسخی کوتاه میتوان گفت بله جاوا اسکریپت برای توسعه بازی زبانی مناسب بهحساب میآید. البته باید عنوان کرد که مناسب بودن یا نبودن جاوا اسکریپت برای این امر بیشتر به نوع بازی که کاربر میخواهد بسازد بستگی دارد، برای مثال ساخت بازی موبایل با جاوا اسکریپت یا ساخت بازی مبتنی بر وب با جاوا اسکریپت روشی معمول و مناسب است. همچنین از طرفی یادگیری جاوا اسکریپت برای کسانی که میخواهند تازه وارد این حوزه شوند و همچنین برای کودکان نیز زبانی مناسب محسوب میشود، زیرا کد نویسی با آن آسان بوده و علاوه بر این، منابع آموزشی زیادی هم در سطح اینترنت برای آن وجود دارد.
بهصورت کلی بازیهای جاوا اسکریپت در موبایل و در مرورگر اجرا میشوند و توسعهدهنده بازی با جاوا اسکریپت میتواند انواع بازی دو بُعدی و سه بُعدی را با این زبان و با استفاده از فریمورکهای جاوا اسکریپت توسعه دهد. جدا از بازیهای مبتنی بر مرورگر، امروزه ساخت بازی موبایل با جاوا اسکریپت نیز محبوبیت ویژهای پیدا کرده است.
باید به این نکته توجه داشت که برای توسعه بازیهای بزرگی مانند «Call of Duty» یا «FIFA»، جاوا اسکریپت زبان مناسبی نیست. با وجود اینکه کاربردهای این زبان متنوع است، اما جاوا اسکریپت بسیار کندتر از زبانهایی مانند زبان C++ عمل میکند و با استفاده از آن، حافظه بیشتری مصرف میشود. بازیهای پیشرفته و سنگین به دلیل اینکه به محاسبات سنگینی پردازشگر گرافیکی نیاز دارند و حجم قابلتوجهی را هم اشغال میکنند، ساخت آنها با جاوا اسکریپت مناسب نخواهد بود و در اجرا آنگونه که باید عمل نخواهند کرد.
مقایسه جاوا اسکریپت و جاوا برای توسعه بازی
اغلب اوقات پیش میآید که افراد جاوا و جاوا اسکریپت را مرتبط با هم در نظر میگیرند و حتی گاهی به اشتباه فکر میکنند این دو زبان یکسان هستند و تفاوت جاوا و جاوا اسکریپت را نمیدانند. در یک کلام میتوان گفت که جاوا و جاوا اسکریپت دو زبان کاملاً مجزا هستند و تنها وجه اشتراک آنها این است که کلمه «جاوا» در هردوی آنها وجود دارد. جاوا اسکریپت نوعی زبانی «مفسری» (Interpreter) است و از طرفی دیگر زبان جاوا نوعی زبان «کامپایلری» (Compiler) بهحساب میآید.
در زبانهای مفسری، کدهای نوشته شده نیازی به کامپایل ندارند و نتایج با دستور کاربر تفسیر میشوند و به همین دلیل است که جاوا اسکریپت برای توسعه و طراحی سایت گزینهای مناسب محسوب میشود. برای مثال، هنگامیکه کاربری روی لینک وبسایتی کلیک میکند، این کلیک کردن نوعی ورودی برای جاوا اسکریپت است و در قبال این ورودی جاوا اسکریپت پاسخی به کاربر ارائه میدهد.
مثلاً زمانی که کاربری روی لینکی در صفحه کلیک کند و کاربر به صفحهای دیگر منتقل شود، این میشود خروجی یا پاسخ جاوا اسکریپت در قبال ورودی که این وردوی، کلیک کاربر روی لینک در صفحه است. جاوا برخلاف جاوا اسکریپت نیاز به کامپایل کردن کد قبل از اجرای آن دارد و این یعنی که کد به زبان ماشین برای کامپیوتر ترجمه شده است.
برای ساخت بازی جاوا بهتر است یا جاوا اسکریپت؟
بهصورت کلی برای ساخت و توسعه بازی، جاوا و جاوا اسکریپت را میتوان اینگونه مقایسه کرد که اگر هدف کاربر ساخت بازیهایی مبتنی بر مرورگر باشد، جاوا اسکریپت انتخاب بهتری است ولی از طرفی اگر قصد کاربر ساخت بازی برای کامپیوتر یا کنسول بازی باشد، جاوا انتخاب بهتری بهحساب میآید. بازی «Minecraft» یکی از محبوبترین بازیهایی است که با جاوا ساخته شده است.
بازی های محبوب ساخته شده با جاوا اسکریپت
بسیاری از بازیهای آنلاین و مبتنی بر وب امروزی با جاوا اسکریپت ساخته شدهاند. کسانی که میخواهند ساخت بازی با جاوا اسکریپت را شروع کنند، میتوانند از این سبک بازیها الهام بگیرند. در ادامه برخی از محبوبترین بازیهای ساخته شده با جاوا اسکریپت مورد بررسی قرار خواهند گرفت.
- «Tower Building»: این بازی ایدهای عالی برای شروع ساخت بازی با جاوا اسکریپت است. این بازی به بازیکنان اجازه میدهد تا بلوکها را روی هم چیده و یک برج بسیار بلند بسازند. بازی Tower Building برای تلفنهای همراه توسعه داده شده و علاوه براین، کد منبع آزاد آن در «گیت هاب» (GitHub) موجود است و کاربران میتوانند جزئیات ساخت و توسعه آن را بررسی کنند و حتی آن را بهبود ببخشند.
- «Bejeweled»: این بازی بهعنوان نوعی بازی مبتنی بر مرورگر در اوایل دهه 2000 ساخته شد. این بازی بسیار شبیه به بازی «Candy Crush» است که در آن بازیکن باید سه شی یا عنصر هم نوع را پشت سر هم برای کسب امتیاز قرار دهد.
- «2048»: این هم نوعی بازی جذاب ساخته شده با جاوا اسکریپت است که در آن بازیکنان میتوانند از کلیدهای جهتدار برای جابهجایی عناصر استفاده کنند. هدفِ این بازی، لغزاندن کاشیهای شمارهدار روی یک شبکه شطرنجی بهگونهای است که بتوان کاشیها را با هم طوری ترکیب کرد تا کاشی با شماره ۲۰۴۸ ایجاد شود.
- «Polycraft»: این بازی ساخته شده با جاوا اسکریپت نیز نوعی بازی سه بُعدی است که در مرورگر اجرا میشود. این بازی جذاب نیز پر از ماجراجویی، اکتشاف، جمعآوری، کاردستی و حتی مبارزه است.
- «Words With Friends 2»: این بازی جذاب برای موبایل ساخته شده است و در ساخت آن از React Native استفاده کردهاند. React Native فریمورکی برای ایجاد بازی و اپلیکیشن موبایل با جاوا اسکریپت است.
بهترین موتورهای بازی جاوا اسکریپت
کدهای جاوا اسکریپت صرفاً متن هستند و به تنهایی نمیتوانند هر کاری را انجام دهند، بنابراین این کدها برای عملی کردن ساخت بازی با جاوا اسکریپت نیاز به چیزی به نام «موتور بازی» (Game Engine) یا «کتابخانه رندرینگ» پیدا میکنند، یادگیری کار با موتورهای بازی قدم مهم دیگری در توسعه بازی است و تنها کدنویسی برای این هدف کافی نیست.
موتورهای بازی نرمافزارهایی هستند که به کاربر یا توسعهدهنده بازی امکان میدهند اجزای اضافی برای بازیها مانند صدا، انیمیشن، گرافیک و غیره ایجاد کنند. برای توسعه بازی با جاوا اسکریپت انواع مختلفی از موتورهای بازی در دسترس هستند که هر کدام برای نیاز خاصی مورد استفاده قرار میگیرند. در ادامه تعدادی از محبوبترین موتورهای بازی جاوا اسکریپت مورد بررسی قرار خواهند گرفت.
موتور بازی PixiJS جاوا اسکریپت
موتور بازی «PixiJS» نوعی موتور بازی جاوا اسکریپت منبع باز است که سرعت بالا و قابلیت استفاده API، از ویژگیهای مهم این موتور بازی به حساب میآیند. این موتور بازی همچنین دارای رندر دو بعدی و قابلیت پشتیبانی «چندپلتفرمی» (Cross Platform) است تا کاربران بتوانند بازیهای خود را برای چندین پلتفرم بسازند. منبع آزاد بودن یان موتور بازی جاوا اسکریپتاین امکان را فراهم کرده است تا موتور بازی PixiJS پیشرفت چشمگیری داشته باشد و همزمان متخصصان زیادی روی آن کار کردهاند تا به این پیشرفت کمک کنند.
ساخت بازی با جاوا اسکریپت به وسیله موتور بازی BabylonJS
موتور بازی «BabylonJS» نیز نوعی کتابخانه رندرینگ یا موتور بازی بهحساب میآید و دارای ابزارهای بسیار قدرتمندی است که به کاربران امکان میدهد هر چیزی از انیمیشنهای ساده گرفته تا بازیهای سه بعدی را ایجاد کنند.
مانند موتور بازی PixiJS، این موتور بازی نیز منبع آزاد است و جامعه بزرگی از توسعهدهندگان در پیشرفت آن نقش دارند. در ساخت بازی با جاوا اسکریپت از این موتور بازی بسیار استفاده میشود.
موتور بازی جاوا اسکریپت Phaser
«Phaser» نیز نوعی موتور بازی است که از ساخت بازیهای HTML5 دسکتاپ و موبایل پشتیبانی میکند. تمرکز اصلی این موتور بازی بر روی توسعه بازیهای دو بُعدی است که قابلیت کامپایل و اجرا را در چندین پلتفرم دارند. یکی از مهمترین مزایای موتور Phaser امکان استفاده از افزونههای اضافی در صورت نیاز است. این ویژگی Phaser به توسعهدهنده این امکان را میدهد که اجزای بازی خود را تا حد امکان سبک و کوچک نگه دارد و اجزای غیرضروری را از بازی حذف کند.
فریمورک توسعه بازی جاوا اسکریپت MelonJS
فریمورک توسعه بازی «MelonJS» نوعی موتور بازی کم حجم است و به توسعهدهندگان امکان افزودن افزونههای مورد نیاز و دلخواه را میدهد. این موتور ساخت بازی با جاوا اسکریپت به کاربر امکان میدهد ویژگیهایی مانند برخورد، سایه، فیزیک، جلوههای ویژه و موارد دیگر را به بازی اضافه کند. همچنین در مقایسه با سایر موتورهای بازی، به خاطر رابط کاربری ساده و مبتدی بودن بسیار معروف است.
کتابخانه توسعه بازی با جاوا اسکریپت Three.js
کتابخانه «Three.js» نیز یکی دیگر از کتابخانههای محبوب برای ارائه گرافیکهای سه بُعدی در مرورگر وب برای ساخت بازی با جاوا اسکریپت بهحساب میآید. این کتابخانه بسیار محبوب و همچنین استفاده از آن بسیار ساده است و نمونه بازیهای ساخته شده زیادی با آن وجود دارند. رندر پیشفرض این موتور بازی «WebGL» است، اما از رندرهای «SVG» ،»Canvas 2D» و «CSS3D» نیز پشتیبانی میکند.
معرفی فیلم های آموزش جاوا اسکریپت
جاوا اسکریپت به عنوان زبانی سطح بالا نقش پررنگی در توسعه وب دارد و با این حال توسعه وب تنها کاربردی نیست که جاوا اسکریپت در آن میدرخشد. امروز نیاز به یادگیری جاوا اسکریپت بیش از هر زمانی احساس میشود، برای این هدف در پلتفرم فرادرس برای مقاصد گوناگونی فیلم و دورههای آموزشی قرار گرفتهاند که به متقاضیان کمک میکنند در کنار تلاش و پشتکار خود، برنامه نویسی با این زبان را یاد بگیرند و یا مهارتهای خود را در زمینه برنامه نویسی جاوا اسکریپت ارتقا دهند.
هماکنون در تاریخ نگارش این مطلب، بیش از ۲۰ عنوان آموزشی برای جاوا اسکریپت در قالب بیش از ۱۰۰ ساعت محتوای آموزش ویدیویی در پلتفرم فرادرس در دسترس قرار دارند. این مجموعه دورههای آموزشی گوناگونی برای اهداف مختلفی از جمله یادگیری مقدماتی جاوا اسکریپت، یادگیری برنامه نویسی پیشرفته جاوا اسکریپت، یادگیری کار با فریمورک و کتابخانههای جاوا اسکریپت و سایر موارد تهیه و تدوین شدهاند. همچنین بیشتر فیلمهای آموزش جاوا اسکریپت فرادرس پروژهمحور هستند و کاربران در کنار یادگیری مسائل تئوری، بهصورت عملی نیز با مباحث آشنا خواهند شد. در تصویر بالا تنها تعداد کمی از دورههای آموزش جاوا اسکریپت قابل مشاهده هستند.
- برای مشاهده همه فیلمهای آموزش جاوا اسکریپت فرادرس و شروع یادگیری + اینجا کلیک کنید.
آموزش ساخت بازی مار با جاوا اسکریپت
برای ساخت بازی با جاوا اسکریپت به یک سری پیشنیازها و مراحل نیاز است. در این بخش از مطلب قرار بر این است که بازی مار با جاوا اسکریپت یا همان بازی Snake پیادهسازی شود. بهمنظور درک عمیقتر ساخت بازی با زبان جاوا اسکریپت، این مثال به صورت ساده ارائه خواهد شد تا به کاربر دید شفافی از این موضوع بدهد.
خیلی ممنون عالی بود
سلام با تشکر از شما بابت راهنماییهاتون ولی یه سوال داستم
چجوری سرعت مار رو کم و زیاد کنیم؟
بسیار جذاب بود، دستتون درد نکنه.