طراحی بازی در یونیتی

یک بازی در یونیتی مجموعه‌ای از صحنه‌ها است. طراحی عناصر موجود در این صحنه‌ها و چینش آن‌ها game design (طراحی بازی) نامیده می‌شود.

عمل گیم دیزاین یکی از دو رکن اصلی توسعه‌ی بازی (game development) است. رکن دیگر کدنویسی بوده که در توسعه‌ی گروهی و یا حتی گروه‌های مستقل کوچک توسط فرد دیگری به جز طراح بازی انجام می‌شود.

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

هر چیزی در صحنه گیم آبجکت است؛ پس‌زمینه‌ی بازی، گلوله‌ی تیر دشمن، قطرات آب و حتی نور موجود در صحنه (در بازی‌های سه‌بعدی).

بسیار مهم است که بدانیم اجزای صحنه چیزی به جز گیم آبجکت‌ها نیستند؛ و گیم آبجکت‌ها هم چیزی به جز کامپوننت‌هایشان نیستند.

کامپوننت‌های هر گیم آبجکت با کلیک بر روی نام آن گیم آبجکت در Hierarchy در پنجره‌ی Inspector نمایش داده می‌شوند:


(پنجره‌ی Inspector پس از انتخاب گیم آبجکت Main Camera)

در این مثال گیم آبجکت Main Camera به طور پیشفرض دارای کامپوننت‌های Transform (که مکان، چرخش و اندازه‌ی گیم آبجکت را تعیین می‌کند)، Camera (که ماهیت دوربین بودن را به این گیم آبجکت می‌دهد) و تعدادی کامپوننت دیگر است.

تنها عاملی که باعث تمایز گیم آبجکت‌ها از یکدیگر می‌شود کامپوننت‌های متصل به آن‌ها است؛ گیم آبجکت چیزی به جز مجموعه‌ای از کامپوننت‌ها نیست.

این بدین معنی است که ماهیت یک گیم آبجکت را کامپوننت‌های آن تعیین می‌کنند. برای مثال در صورتی که کامپوننت Camera از گیم آبجکت Main Camera حذف شود دیگر امکان رندر صحنه را نخواهد داشت؛ همچنین برای ساخت یک دوربین می‌توان یک گیم آبجکت خالی ساخته و سپس به آن کامپوننت Camera را اضافه کرد.

نکته گیم آبجکت خالی (بدون کامپوننت) به خودی خود معنایی ندارد؛ می‌توان با افزودن کامپوننت Camera آن را به یک دوربین تبدیل کرد و یا با افزودن کامپوننت (اسکریپت) دشمن آن را تبدیل به یک دشمن کرد.

هر کامپوننت از پراپرتی‌های مختلفی تشکیل شده، این پراپرتی‌ها بسته به کاربردشان می‌توانند یک نوع داده مانند رشته، عدد و یا حتی نوع خاصی شی یا فایل را قبول کنند. ارتباط assetها با صحنه توسط پراپرتی‌ها برقرار می‌شود. به عنوان مثال برای ساخت گیم آبجکت پس‌زمینه به یک گیم آبجکت خالی کامپوننت Sprite Renderer را می‌دهیم؛ این کامپوننت وظیفه‌ی نمایش یک اسپرایت در صحنه را به گیم آبجکت می‌دهد. اما تا وقتی اسپرایتی به آن معرفی نشده باشد تصویری در صحنه رندر نخواهد شد. ورودی اسپرایت از طریق پراپرتی Sprite این کامپوننت صورت می‌گیرد:

برای نسبت دادن asset پس‌زمینه‌ی موردنظر به این پراپرتی، آن asset را از پنجره‌ی Project با ماوس بر روی این پراپرتی drag and drop می‌کنیم.

پس از این بررسی نسبتاً کلی از ساختار طراحی بازی، مراحل مهم آن را با هم بررسی می‌کنیم.

برگه‌ها : 1 2 3 4 5 6