روند ساخت اجزای بازی بسیار پرهزینه و زمانبر است؛ و در این راه ما دچار چالشهای فنی و مالی و زمانی زیادی خواهیم شد که در بعضی موارد بسیار آزاردهنده است و گاهی نیز همین مشکلات باعث شکست پروژه میشود.
در این گزارش ما یک الگوریتم به نام PCG را معرفی خواهیم کرد که پایه آن بر اساس هوش مصنوعی و یادگیری ماشین است و به بازیسازان در طراحی مراحل بازی کمک بسیار زیادی میکند و علاوه بر حل چالشها باعث بهترشدن کیفیت کار و یادگیری بیشتر نیز میشود.
یک گروه بازیسازی بهطورکلی از 4 قسمت تشکیلشده است:
گروههای بازیسازی را میتوان به دودسته کلی تقسیم کرد:
که چالشهای این دو گروه در مواردی با یکدیگر متفاوت هستند.
در گروههای مستقل چالشهایی از قبیل پرهزینه بودن روند تولید، در دسترس نبودن افراد متخصص به تعداد کافی و دشواری تولید پروژه و ... وجود دارد که ما برای بهبود این چالشها به معرفی PCG خواهیم پرداخت.
این روش به تولید محتوای بازی بهصورت خودکار توسط الگوریتم نوشتهشده منجر میشود؛ همچنین باعث کاهش هزینه تولید میشود.
در هنگام تولید و استفاده از این الگوریتم باید به این نکته دقت داشت کاهش هزینه تولید باعث افت کیفیت بازی نشود و همواره کاهش هزینهها همراستا و در جهت افزایش کیفیت بازی باشد.
استفاده از PCG همچنین به همهی اعضای گروه و مخصوصاً تیم دیزاین در جهت خلاق شدن کمک زیادی میکند و در مواردی باعث یادگیری بیشتر اصول دیزاین بازیها نیز میشود، زیرا فرد با مشاهدهی خروجی از این روش به تحلیل آن پرداخته و موارد زیادی را از آن میآموزد و میتواند بهصورت دستی قسمتهایی را برای بهتر شدن کیفیت به بازی اضافه یا از کم کند و حتی برای تولید محتوای بهتر در الگوریتم ساخت PCG تغییراتی به وجود آورد.
این روش به تولید محتوای بازی بهصورت خودکار توسط الگوریتم نوشتهشده منجر میشود؛ همچنین باعث کاهش هزینه تولید میشود.
در هنگام تولید و استفاده از این الگوریتم باید به این نکته دقت داشت کاهش هزینه تولید باعث افت کیفیت بازی نشود و همواره کاهش هزینهها همراستا و در جهت افزایش کیفیت بازی باشد.
استفاده از PCG همچنین به همهی اعضای گروه و مخصوصاً تیم دیزاین در جهت خلاق شدن کمک زیادی میکند و در مواردی باعث یادگیری بیشتر اصول دیزاین بازیها نیز میشود، زیرا فرد با مشاهدهی خروجی از این روش به تحلیل آن پرداخته و موارد زیادی را از آن میآموزد و میتواند بهصورت دستی قسمتهایی را برای بهتر شدن کیفیت به بازی اضافه یا از کم کند و حتی برای تولید محتوای بهتر در الگوریتم ساخت PCG تغییراتی به وجود آورد.
لغت PCG در لغت از سه کلمه procedural به معنای استفاده از الگوریتم، generation به معنای تولید و content به معنای همهی المانهای مرتبط با بازی است.
برای توضیح بهتر این واژه میتوان procedural و generation را به معنای استفاده از الگوریتم برای تولید معنا کرد ولی content تعریف گستردهتری دارد؛ میتوان صحنه بازی، زمینبازی، نقشه بازی، داستان، هدف نهایی، ماموریت های داخل بازی، جایزهها، مرحلهها، شخصیتها، سلاحها، جایزهها، موسیقی، تکسچر، گرافیک و ... را زیرمجموعه content در نظر گرفت.
این Content را میتوان به چند دسته تقسیم کرد:
یک نوع دستهبندی برای این روش ارائهشده است که تمرکز آن بر روی این است که
بر طبق موارد بالا دستهبندی توسط خانم نوری شاکر در کنفرانش بازی های رایانه ای ارائهشده است که به شرح زیر است:
1. آنلاین یا آفلاین بودن تولید محتوا:
آفلاین بودن به این معنا است که محتوای بازی قبل از شروع هر بازی یا هر مرحله ساخته شود و در هنگام اجرا فقط به کاربر نمایش داده شود مانند بازی ماینکرافت که نمونهی مشهوری از آفلاین بودن تولید محتوا است.
آنلاین بودن برخلاف تولید آفلاین به این معنا است که در حین اجرای بازی، محتوا تولید میشود؛ در بسیاری از بازیهای دونده که از الگوریتم PCG استفاده میکنند محتوا بهصورت آنلاین تولید میشود.
2. موردنیاز بودن یا اختیاری بودن محتوای تولیدشده:
ما در بازی دو نوع محتوا داریم، نوع اول محتوای موردنیاز بازیکن است که برای پیروزی و گذراندن یک مرحله به آن نیاز دارد و باید دستیابی به آن حتماً ممکن باشد.
محتوای دیگر محتوای اختیاری در بازی است مانند سلاحهای کمکی و ویژگیهای اضافه که برای گذراندن مرحله اجباری نیست و فقط راه پیروزی را سادهتر میکند؛ دسترسی به این محتوا ممکن است در مواردی بسیار سخت باشد.
3. کنترل کردن مقادیر و درجهها:
در این دستهبندی مشخص میشود که بازی ما تا چه اندازه از الگوریتم PCG برای تولید محتوا استفاده میکند. مثلاً میتوان از یک آرایه چندبعدی برای تولید رندوم المانهای بازی استفاده کرد، هر اندازه مقدار استفاده ما از مقادیر رندوم بیشتر باشد نیاز به کنترل بیشتر و دقت بیشتری در ساخت الگوریتم اولیه PCGهستیم.
4. تعیینکننده یا تصادفی بودن محتوای تولیدشده:
این دستهبندی با مورد قبلی در ارتباط است، در این قسمت مشخص میشود که بازی ما تا چه اندازه از مقادیر رندوم استفاده میکند و تا چه اندازه توسط انسان و بهصورت دستی ساختهشده است.
5. تولید ساختاریافته یا تولید با آزمونوخطا:
در ساختاریافته بودن به این صورت عمل میشود که ما در ابتدا متغیرها و پارامترهایی را برای تولید محتوا درنظر میگیریم و پس از مقداردهی به آنها محتوای خود را توسط الگوریتم تولید میکنیم. در این روش به دلیل اینکه قبلاً محاسبات بر روی مقدار صحیح پارامترها انجامشده است، در عین رندوم بودن خطایی صورت نمیگیرد.
در مقابل درروش تولید محتوا بر اساس آزمونوخطا از قبل برای متغیرها محاسباتی انجام نمیگیرد و پس از تولید محتوا با کمک الگوریتم آنها را آزمایش میکند که مناسب هستند یا خیر؛ در این روش از یادگیری ماشین استفاده میشود.
مراجع :