آموزش

چگونه یک موتور بازی سازی درست کنیم؟

موتور بازی سازی چیست؟

موتور بازی سازی (Game engine) به نرم افزار هایی گفته می شود که می توانند روی سیستم عامل های مختلف اجرا شوند و با استفاده از آن ها انواع بازی ها را برای پلتفرم های مختلف مانند گوشی های موبایل، کامپیوتر ها و… طراحی و تولید کرد. با استفاده از موتور های بازی سازی می توان چیزهایی مثل انیمیشن، هوش مصنوعی، چارچوب بازی و… را درست کرد. بهتر است بدانید به موتور های بازی سازی “گیم انجین” نیز گفته می شود. در ادامه با نحوه ساخت موتور بازی سازی آشنا خواهید شد.

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

یک موتور بازی سازی از 5 قسمت تشکیل شده که به صورت زیر هستند:

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

ممکن است این سوال برایتان پیش آمده باشد که چرا باید از موتور های بازی سازی استفاده کنیم؟ در جواب باید بگویم در موتورهای بازی سازی بسیاری از اجزا و اسکریپت های مورد نیاز در بازی به صورت آماده و در قالب پکیج ها وجود دارند و فقط کافی است آن ها را دانلود و به پروژه خود اضاف (import) کنید و از آن ها استفاده کنید. با این کار دیگر نیازی به طراحی و ساخت بسیاری از اجزای تکراری در بازی وجود نخواهد داشت. پس در زمان و هزینه صرفه جویی شده و می توانید با تمرکز کردن بر روی عناصر خاص مانند شخصیت ها، بافت ها و …. در بازی خود، بازی ای با کیفیت عالی منتشر کنید.

در موتورهای بازی سازی برای برخی از قسمت ها و ژانرهای بازی نیاز دارید که برنامه نویسی را به صورت پیشرفته بدانید( هر موتور بازی سازی زبان برنامه نویسی مخصوص خود را دارد) . در این قسمت ما چند مدل از بازی ها را نام می بریم که بهتر است با آن ها آشنا باشید.

  1. بازی های دو بعدی ساده یا Simple 2D games: برای ساخت این مدل از بازی ها نیاز به داشتن مهارت پیشرفته و خاصی ندارید و فقط کافی است وقت خود را روی یادگیری قسمت های مختلف موتور بازی سازی بگذارید.
  2. بازی های دو بعدی پیچیده یا Complex 2D games: معمولا بازی های چند نفره و بازی هایی که در آن ها از هوش مصنوعی استفاده می شود در این دسته قرار دارند که شما باید سرمایه گذاری بیشتری بر یادگیری اصول اولیه برای ساخت این مدل از بازی ها کنید.
  3. بازی های سه بعدی ساده یا Simple 3D games: دنیای سه بعدی به وضوح بسیار پیچیده تر از دنیای دو بعدی است و برای طراحی و تولید این مدل از بازی ها باید سه ماه تا یک سال فرصت برای یادگیری اصول اولیه داشته باشید.
  4. بازی های سه بعدی پیچیده یا Complex 3D games: اگر شما به تازگی وارد دنیای بازی سازی شده اید و تصمیم دارید در ابتدا یک بازی سه بعدی پیچیده درست کنید باید بگویم که این کار غیرممکنی است. برای تولید چنین بازی هایی نیاز به یک تیم قوی و حداقل چندین سال تجربه کاری در این زمینه لازم است.

خب! حالا فهمیدیم موتورهای بازی سازی چی هستند و برای چه کار هایی استفاده می شوند وقت آن رسیده که به معرفی بهترین موتورهای بازی سازی بپردازیم.

در دنیا بیش از 500 گیم انجین وجود دارد که بسیاری از آن ها ناشناخته هستند. اما تعدادی هم وجود دارند که به دلایلی، بسیار معروف و شناخته شده می باشند  که سه مورد از بهترین آن ها را برای شما آورده ام.

موتور بازی سازی یونیتی(Unity Game Engine)

موتور بازی سازی یونیتی
گیم انجین یونیتی

احتمالا نام این گیم انجین را بارها و بارها شنیده اید. می توان گفت این گیم انجین محبوب ترین موتور بازی سازی برای تولید بازی های موبایل و کامپیوتری می باشد.

بازی های بسیاری با استفاده از این موتور تولید و منتشر شده اند. این گیم انجین هم از بازی های دو بعدی و هم سه بعدی به خوبی پشتیبانی می کند. با استفاده از موتور یونیتی می توانید بازی هایی را که طراحی و تولید می کنید در محیط هایی مانند Mac  Windows ، Android ، iOS ، Window Phone ، PlayStation ، Xbox و … اجرا کنید. استفاده از این گیم انجین به صورت رایگان است و نیاز به پرداخت هزینه ندارد، اما برخی از توسعه دهندگان پکیج ها و برخی اجزای بازی را به صورت آماده برای فروش در بخش Assets store گیم انجین قرار می دهند.

همانطور که گفته شد بازی های بسیاری با این موتور بازی سازی ساخته شده اند که معروف ترین آن ها می توان به Super Mario GO, Angry Birds 2, Pokémon Go, Lara Croft Go, Kerbal Space Program و… اشاره کرد.

موتور بازی سازی آنریل(Unreal Engine)

موتور بازی سازی Unreal
گیم انجین Unreal

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

استفاده از این موتور بازی سازی مانند موتور Unity رایگان بوده و نیاز به پرداخت هزینه ندارد.

از بازی های معروفی که با موتور Unreal ساخته شده اند می توان به Gears of War series, Batman, Arkham series, Marvel Heroes, Infinity Blade 3 و… اشاره کرد.

بازی هایی را که با استفاده از این موتور تولید می کنید می توانید در پلتفرم های مختلف مانند Mac ، Windows ، Linux ، Android ، iOS Xbox ، PlayStatio و …

موتور بازی سازی کرای انجین (CryEngine)

موتور بازی سازی CryEngine
گیم انجین CryEngine

این موتور بازی سازی یک موتور قدرتمند رایگان است. این موتور به دلیل خروجی گرافیکی بی نظیر و تصاویر شگفت انگیزی که تولید می کند معروف شده. این موتور می تواند تجربه کاربردی بالایی را به گیمیر ها منتقل کند.

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

از بازی هایی که با استفاده از موتور CryEngine ساخته شده اند می توان به Sniper, Ghost Warrior 2، Far Cry، Crysis و … اشاره کرد.

با استفاده از این موتور می توان برای Windows، Linux، Xbox، PlayStation، Wii، Android و iOS. بازی تولید و منتشر کرد.

بسیار خب! فهمیدیم موتور بازی سازی چیست؟ چه کاربرد هایی دارد؟ و با دو مورد از بهترین ها آشنا شدیم اکنون وقت آن رسیده به موضوع این مقاله یعنی “چگونه می توان یک موتور بازی سازی ساخت؟” بپردازیم.

مراحل ساخت موتور بازی سازی

کاملا مشخص است که ساخت یک موتور بازی سازی بسیار مشکل تر از ساخت یک بازی با استفاده از آن است. هر موتور بازی سازی مخصوص یک مدل از بازی ها طراحی می شود( موتور های Unreal و Unity جامع هستند و برای تولید انواع مختلف بازی می توان از آن ها استفاده کرد) ساخت یک موتور بازی سازی برای استفاده شخصی بسیار ساده تر از ساخت آن برای تولید انواع بازی ها است.

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

میریم سراغ مراحل و مهارت هایی که برای ساخت یک موتور بازی سازی نیاز است:

  1. یادگیری جبر خطی: ابتدا باید با مفاهیم جبر خطی آشنا باشید. منظور مفاهیم جبر خطی در دانشگاه مانند ماتریس ها و بردارها می باشد. باید بر روی بردارها، عملیات ماتریس ها و فضاهای برداری تمرکز کنید.
  2. زبان ++C را یاد بگیرید ( یا هر زبانی که می خواهید): باید برنامه نویسی را یاد بگیرید و پیشنهاد من زبان ++C است و لازم است بر مفاهیمی مانند وراثت، کلاس ها، چند ریختی ها و… تسلط داشته باشید.
  3. ساخت یک موتور ریاضی: با استفاده از دانشی که در مورد بردارها، ماتریس ها و کدنویسی بدست آورده اید باید یک موتور ریاضی بسازید. عملیاتی مانند حاصلضرب Dot، ضرب cross و تبدیل فضاها به صورت گسترده در ساخت یک موتور بازی سازی مورد استفاده قرار می گیرند.
  4.  گرافیک کامپیوتر را یاد بگیرید: از اینجا قسمت خوب شروع می شود. باید با مفاهیم گرافیک رایانه و مبحث رندرینگ آشنا باشید.
  5. OpenGL را یاد بگیرید و پروژه های زیادی را انجام دهید: هنگامی که با مفاهیم گرافیک رایانه آشنایی پیدا کردید باید درباره OpenGL API و OpenGL Shaders مطالعه کنید و اطلاعات کسب کنید و تا آن جایی که امکان دارد پروژه های زیادی را انجام دهید. یادبگیرید چگونه کاراکترها را رندر کنید، چگونه آن ها را بچرخانید و زاویه دوربین را تغییر دهید. یاد بگیرید چگونه نورپردازی با OpenGL انجام می شود. از نظر من این بخش بسیار سرگرم کننده است و تا می توانید باید پروژه های زیادی انجام دهید تا هم مهارت کسب کنید و هم لذت ببرید.
  6. الگوهای طراحی را یاد بگیرید: قدم بعدی برای تبدیل شدن به یک توسعه دهنده موتور بازی سازی یادگیری معماری API است. برای توسعه یک API باید الگوهای طراحی را یاد بگیرید.
    رایج ترین و معروف ترین الگوهای طراحی Singleton, Observer, Strategy, Composite, Factory هستند.
  7. یک موتور رندر درست کنید: در این مرحله شما می توانید با مهارت هایی که در مورد الگوی جبر خطی، رایانه های گرافیکی، OpenGL و الگوهای طراحی یاد گرفتید یک موتور رندر درست کنید.
  8. قوانین حرکت نیوتون را مرور کنید: پس از اتمام ساخت قسمت رندر موتور نوبت به سختترین بخش کار یعنی تولید فیزیک موتور می رسیم. خبر خوب این است که شما برای ایجاد بخش فیزیک موتور نیاز به فیزیکدان ندارید! اما لازم است قوانین مقدماتی مانند قوانین حرکت نیوتون و نحوه اجرای آن ها با استفاده از الگوریتم هایی مانند Runge-Kutta را بدانید.
  9. الگوریتم های هندسه محاسباتی را بیاموزید: یک موتور بازی سازی بدون تشخیص برخورد نیست. برای توسعه سستم تشخیص برخورد باید در مورد الگوریتم های هندسه محاسباتی مانند GJK, BVH, Sutherland اطلاعات کسب کنید. این الگوریتم ها برای اینکه یک برخورد رخ داده یا نه، برخورد از کجا بوده و … مورد استفاده قرار می گیرند.
  10. موتور فیزیک را درست کنید: پس از آشنایی انجام قسمت های بالا و آشنایی با الگوریتم های گفته شده باید بتوانید یک موتور فیزیک و یک سیستم برخورد درست کنید.
  11. با موتور خود یک بازی درست کنید و آن را تست و تکرار کنید: خسته نباشید! الان یک موتور بازی سازی دارید. تا حد امکان باید بازی های زیادی را درست کرده و آزمایش کنید و از این به بعد به رفع اشکالات و اضافه کردن ویژگی های جدید بپردازید.

برای مطالعه بیشتر: بزرگترین شرکت های تکنولوژِی دنیا

این مقاله نیز به پایان رسید، امیدوارم برای شما خواننده گرامی مفید بوده باشد.

محمود احمدی

در حال یادگیری...

‫3 دیدگاه ها

  1. واقعا ممنون البته اگر یک منبع آموزش معرفی کنید و بگید که در چه رشته ای باید درس خواند ممنون میشم
    ولی باز هم عالی بود

  2. عالی بود آقا، عالی، لطفا یک مقاله جدا و جامع تر برای ساخت هر بخش بگذارید، مثل ساخت موتور رندر و موتور فیزیک و…
    اگر یک منبع آموزش برای هر بخش هم معرفی بشه که دیگه بی‌نظیر، متشکر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


دکمه بازگشت به بالا