یادداشتی در مورد توسعه بازی با love2d

تجربه شخصی من در ساخت بازی با فریم ورک love2d

بازی سازی، عنوان و مطلب جالبی برای بسیاری از افراد است، زیرا بازی کردن با رایانه و موبایل، زمان زیادی از زندگی کودکی و نوجوانی ما را تشکیل می دهد؛ در نتیجه فکر کردن به این که ما هم می توانیم بازی مورد علاقه خود را بسازیم، بسیار لذت بخش است. بازی سازی محدود به برنامه نویسی نمی شود و نیاز به ترکیبی از مهارت های مختلف دارد. شاید اگر در اینترنت در مورد این حوزه جست و جو کرده باشید، با این جمله زیاد روبرو شدید که برای ساخت بازی باید تیم تشکیل دهید و هر فرد بخشی از کار را عهده دار شود. گرچه این نظر، عقیده نادرستی نیست اما با داشتن آگاهی از نیازهای ساخت بازی می توان با یک تیم تک نفره هم به توسعه بازی پرداخت. بنابراین تصمیم گرفتم، به عنوان فردی که زمینه برنامه نویسی دارد، تجربه خود را درباره توسعه بازی با فریم ورک love2d در این مطلب بنویسم. شاید این مطالب برای فردی که به بازی سازی به عنوان یک شغل نگاه می کند مناسب نباشد ولی اگر به عنوان یک تفریح و سرگرمی به آن نگاه می کنید، کمک زیادی به قدم گذاشتن در این راه می کند.

love2d چیست؟

LÖVE یا love2d یک فریم ورک برای ساخت بازی های دوبعدی به زبان برنامه نویسی lua است. برخلاف نام های آشنایی مانند یونیتی، آنریل و گودوت، love2d یک موتور بازی سازی نیست و فقط یک فریم ورک برنامه نویسی است که به شما در ساخت بازی مورد نظرتان کمک می کند. استفاده از این فریم ورک به جای موتور بازی سازی به شما آزادی عمل بیشتری می دهد و دست شما را برای توسعه انواع بازی ها باز می گذارد اما این آزادی عمل هزینه ای را در پی دارد. هر چه بازی شما پیچیده تر باشد، پیاده سازی آن با love2d سخت تر می شود. بسیاری از کارها مانند قرار دادن تصاویر در صفحه، تغییر پس زمینه، تغییر اندازه تصاویر و تعریف collision ها که در موتورهای بازی سازی بدون حتی یک خط کدنویسی انجام می شوند، در این فریم ورک نیاز به نوشتن کد دارند. این که برای توسعه بازی خود از love2d استفاده کنید یا به سمت استفاده از موتور هایی مثل گودوت و یونیتی بروید به نوع بازی شما بستگی دارد. هر گزینه ای که توسعه را برای شما آسان تر کند و نیاز شما را به نحو بهتری برطرف کند، انتخاب درست تر و منطقی تری خواهد بود. به یاد داشته باشید چیزی که برای کاربر شما مهم است نتیجه ای است که در اختیار او قرار می دهید. این که از چه راهی به آن دست پیدا کنید، به تصمیم شما وابسته است.

گفتیم love2d فریم ورکی برای زبان برنامه نویسی lua است. lua یک زبان برنامه نویسی کوچک است که در عین سادگی، قدرت زیادی دارد و همین ویژگی ها، آن را به زبانی بسیار مناسب برای توسعه بازی تبدیل کرده است. اگر زبان lua را دوست دارید ولی می خواهید از موتور بازی سازی استفاده کنید، defold گزینه مناسبی برای شماست.

مهارت های لازم برای بازی سازی

همانطور که گفتم توسعه بازی به برنامه نویسی محدود نمی شود و به مهارت های مختلف نیاز دارد. نقش های زیادی را می توان در این زمینه تعریف کرد ولی برای ساخت بازی حداقل به این مهارت ها نیاز دارید:

  • برنامه نویسی
  • طراحی محیط و شخصیت ها
  • موسیقی و صدا

می توانید خودتان تمام این مهارت ها را بیاموزید، با افراد دیگر که مهارت های مورد نیاز شما را دارند تیم تشکیل دهید یا اگر فقط برنامه نویسی بلدید، از منابع آماده موسیقی و طراحی های محیط و شخصیت استفاده کنید. اینکه کدام یک از این مسیر ها را در پیش بگیرید، به هدف شما و زمانی که صرف یادگیری توسعه بازی می کنید بستگی دارد اما داشتن دانشی هر چند کم در این مهارت ها، کمک زیادی در ادامه مسیر بازی سازی به شما می کند. طراحی های هنری در بازی ها انواع مختلفی دارند اما در بازی های دوبعدی دو دسته عمده pixel art و vector art در دسترس شما هستند. برای انتخاب بین این دو، باید به علاقه خود، جامعه هدف بازی و سخت افزار در دسترس توجه کنید. لازم نیست به دنبال خرید تبلت و قلم برای نقاشی های الکترونیک باشید. با یک موس می توانید بهترین طراحی های پیکسلی را برای بازی خود خلق کنید. نرم افزار های زیر، انتخاب های مناسب و رایگانی برای طراحی در بازی ها هستند:

برای موسیقی هم می توانید از نرم افزار lmms و برای صداهای بازی از sfxr (لینک نسخه لینوکس) استفاده کنید.

اگر تصمیم گرفتید از منابع آماده و رایگان استفاده کنید، نگاهی به سایت های زیر بیندازید:

ناامید نشوید

استفاده از یک فریم ورک مانند love2d به جای موتور بازی سازی، می تواند در ابتدای توسعه بازی، ناامیدکننده باشد. در آغاز کار، شما کدهای زیادی می نویسید ولی نتیجه زیادی نمی گیرید و همین موضوع می تواند شما را نسبت به انتهای کار دچار شک و تردید کند. باید بگویم این شک و تردید، کاملا طبیعی است و با صبر کردن و پیشبرد پروژه خواهید دید که نتیجه کار به تدریج شکل می گیرد و به چیزی که دست یافته اید، افتخار خواهید کرد.

منابع آموزشی را دنبال کنید

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

در jam ها شرکت کنید

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

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

لیست زیر، سایت های پیشنهادی برای شرکت در jam را نشان می دهد:

ludumdare علاوه بر jam نوعی دیگر از مسابقه به نام compo را ارائه می دهد. در compo شما به عنوان یک توسعه دهنده تنها، بدون تشکیل تیم، تمام بخش های بازی از جمله برنامه نویسی، طراحی هنری و صدا و موسیقی را بر عهده می گیرید و حق استفاده از منابع آماده را ندارید. سه روز فرصت دارید شخصیت ها و محیط را طراحی کنید، موسیقی و صدا ها را بسازید و با برنامه نویسی آن ها را کنار هم قرار دهید. این سبک از مسابقه، برای زمانی که اطمینان بیشتری به خود پیدا کردید، فوق العاده خواهد بود.

بازی خود را منتشر کنید

از انتشار بازی خود نترسید. سایت itch.io بهترین گزینه برای انتشار اولین بازی های شماست. به صفحه ردیت love2d بروید و از دیگران بخواهید در مورد بازی شما نظر دهند. از دیدگاه های آن ها برای بهبود بازی استفاده کنید و مهارت های بیشتری برای ساخت بازی های آینده خود کسب کنید. بهترین فرمت برای انتشار بازی، تحت وب است. دانلود بازی های ویندوز و لینوکس برای کاربران سخت است و حجم زیادی هم دارد. وجود نسخه تحت وب، باعث می شود افراد بیشتری، پروژه های شما را بازی کنند و دیدگاه های بیشتری را به شما بدهند. ساخت نسخه وب بازی در love2d آسان نیست ولی سختی و پیچیدگی زیادی هم ندارد. برای خروجی وب می توانید از lovejs استفاده کنید.

سخن پایانی

مطالب بالا، تجربه شخصی من در استفاده از فریم ورک love2d بود. بیشتر این تجربه ها را در ساخت بازی برای mouse jam 2 کسب کردم. توسعه بازی chase of pirates اگر چه نتوانست رتبه خوبی را در این jam کسب کند ولی درس های زیادی را به من آموخت. به عنوان یک مثال ساده، تصمیم گرفتم که بعد از این jam، هیچ وقت از scale روی تصاویر استفاده نکنم یا یاد گرفتم چگونه از particles برای ساخت شعله استفاده کنم. به همین دلیل است که به شما هم توصیه می کنم تا در jam ها شرکت کنید تا تجربه های بیشتری بیاموزید. امیدوارم از این مطلب نهایت استفاده را برده باشید.

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy