بخشی از مقاله
چکیده
در این پژوهش راهکارهایی برای آسان کردن تولید و طراحی محتوای صفحات بازی های پیچیده ارائه شده است. طراحی محتوای بازیهای ویدویی به جهت نیاز به برنامهنویسان متعدد، کاری زمان بر و پرهزینه است، اما در سالهای اخیر با استفاده از روشهای تولید الگوریتمیک محتوای صفحه، تولید و طراحی بازیها از لحاظ زمان، هزینه و برنامهنویسی آن به تعادل رسیده است. تمرکز این پژوهش بر روی الگوریتم ماشینسلولی برای تولید محتوای بازیها است. در این مقاله از الگوریتم ماشین سلولی برای تولید یک صفحه از بازی و با انتخاب اجرای یکی از قوانین آن با توزیعی غیریکنواخت در فضای دوبعدی استفاده شده است.
برای یافتن حالت بقا، تولد دوباره و مرگ هر سلول در صفحه به جهت متحرک بودن آن، از بازیزندگیکانوی و قوانین حاکم بر گلایدرهای کلاس چهارم ماشین سلولی استفاده شده است. برای انتخاب بهینه بین نسلهای تولید شده از الگوریتم ازدحامذرات استفاده شده که علاوه بر یافتن بهینهمحلی با توجه به وضعیت فعلی خود سلول و همسایگان آن، برای یافتن حالت سلول در نسل بعدی خود به محاسبه معادلات عمومی و مقایسه با حالت بهینه کلی صفحه نیز میپردازد و حالت بهینهای که این الگوریتم برای نسل بعدی سلول مییابد، حساب شده است. در این مقاله علاوه بر توضیح اجرای الگوریتم ماشینسلولی و بازیزندگیکانوی، روش های محاسبه الگوریتم ازدحامذرات در به روزرسانی حالت سلول موثر است.
کلمات کلیدی: ماشینسلولی، بازیهای ویدیویی، تولید محتوای بازی
-1 مقدمه
روشهای رویهای متفاوتی در تولید الگوریتمیک محتوای بازیها اعم از دیجیتال و غیر آن، در [1] اشاره شده است. روشهایی که از الگوریتمژنتیک و الگوریتم جستجوی حریصانه، استفاده کرده است که تقریباً به 20 دقیقه زمان برای اجرا در حالت واقعی نیاز دارند .[2] اخیراً کارهایی در راستای تولید محتوای صفحه سطوح مختلف بازیهای دوبعدی با استفاده از الگوریتم ژنتیک صورت گرفته که به طور مستقیم محتوای صفحه بازی را بهبود میدهد. [3] همچنین از قوانین اتوماتای سلولی برای مقداردهی ترکیب بندی اولیه صفحه به صورت تصادفی و با دخالت دست استفاده شده است .[4] از ترکیب این دو روش قبلاً برای تولید بی نهایت سطوح بازی غاری شکل استفاده شده است .[5]
در این مقاله به جای استفاده از روش های پردازش تصویر در واکشی حالت بهینه به عنوان پارامتری از الگوریتم ژنتیک [6] و استفاده از این الگوریتم در به روز رسانی قوانین ماشینهای سلولی، از الگوریتم ازدحام ذرات استفاده شده است، که علاوه بر یافتن بهینه محلی، بهینه مطلق را میتوان در کل صفحه یافت، که حالت فعلی سلول تبدیل به زامبی یا درخت شود. طراحی سطوح بازی اگر توسط برنامهنویسان و طراحان و به صورت دستی انجام شود، کاری پرزحمت، پرهزینه و زمانبر است . [7] در سال های گذشته طراحی و توسعه بازیهای ویدویی یعنی برنامهنویسی و توسعه منابع آن به طور عمده توسط یک فرد انجام میشد.
با پیشرفت روز افزون تکنولوژی، بازیهای ویدویی بزرگتر و پیچیدهتر شدهاند و نیازمند وقت، هزینه و کار بیشتری از جانب طراحان و برنامهنویسان میباشد و این یعنی عدم برقرای تعادل بین منابع توسعهدهندگان بازی. بنابراین انگیزهها برای کاهش هزینه، وقت و زحمت در طراحی بازیها فراهم شد، که از نتایج این تلاشها میتوان به تولید محتوای صفحهبازی به صورت رویه ای[4] اشاره کرد، که در آن ها محتویات بازی به صورت الگوریتمیک و بدون دخالت دست در هر مرحله ساخته شده است. تولید محتوای رویهای نه تنها باعث کاهش هزینهها برای طراحان آن شده، بلکه ارزش بازی را نیز برای بازیکن آن نیز بالا برده است، چرا که بازیکن هوش بازی را حس میکند و برایش جذابتر است.
از نمونههای اولیهی تولید محتوای رویهای میتوان به بازی کلاسیک 1980 به نام راگ[6] اشاره کرد . این بازی از روش الگوریتمیک برای تولید محتوای صفحهبازی به تعداد نامتناهی و یکتا در قالب دوبعدی استفاده کرد. به تبعیت از روش تولید بازی راگ و بازی بسیاری مانند نت هک، سوپر ماریو و دیابلو [6] برای تولید محتوای صفحات به تعداد نامتناهی و یکتا، بر ارزش بازی های خود افزودند، به طوری که کاربران بازی به طور مداوم با طراحیهای جدیدی در بازی روبرو میشدند.
ٍ- کارهای انجام شده
یکی از مشکلات در ساخت بازی، تولید محتوای بازی است. در طراحی بازی، طراحان برای ساخت، دیدگاه کلی خود را در کل بازی از دست میدهند و پیوستگی محتوای بازی مانند نقشه از بین میرود و باید زمان زیادی برای تولید محتوای بازی صرف شود .[8] در بعضی از بازیها این نوع نقشهها بصورت دستی استفاده شده است، که طراح بازی مجبور بوده است، نقشه بازی را مرحله به مرحله تولید کند و پایگاه دادهایی از نقشههای تولید شده برای هر مرحله از بازی را بسازد که باعث صرف زمان زیاد بارگذاری بازی، در آغاز و پایان هر مرحله بوده است. موتورهای محتواساز زیادی برای تولید محتوای بازی ساخته شدهاند که برروی تولید محتوای خاصی مانند درختان [9] SpeedTree کار میکنند.
بازیهای مهیج زیادی از این ابزارها برای تولید محتوای خود استفاده کردهاند و درختان زمین بازی را با توجه به محیطهای مختلف بازی ایجاد کرده اند. بازیهایی مانند Grand Theft Auto IV - RockStar Games, 2008 - ،Batman: Arkham Asylum - Eidos Interactive,2009 - ، Battlefield 3 - Electronic Arts, 2011 - و بازیهایی معروفی دیگری کهشاید بهترین بازیهای دوران خودشان باشند. در این نوع تولید محتوا، طراح شروع به ساخت الگوهای مختلف محتوا میکند و با الگوریتمهای متخلف آن را در زمین بازی پیاده سازی میکند، که برای سازندگان بازی زمانبر است و نیاز به طراحی دقیق در محتوای بازی دارد، که بایستی تمامی موارد مانند نقشه و محتوای درست را بازی ساز در نظر بگیرد .[10]
الگوریتم تولید محتوای رویهای کمک زیادی به این موضوع میکند، که هم محتوای بازی و هم تنوع در محتوای بازی حفظ شود و یک راهنما برای ساخت بازی در مراحل مختلف است. در سال 2009 برای تولید بازی [11] Galactic Arms Race از این روش استفاده شد که محیط بازی تطبیقپذیری [12] برای کاربران بازی ایجاد کرد .[11]بازی دیابلو که تا نسخه 3 این بازی در حال حاضر منتشر شده که در شکل 1 مشاهده میکنید، از ماشین سلولی استفاده کرده است.[13] در این بازی از زوایای ایزومتریک استفاده شده است . [14] بازی های قدیمی دیگری از ماشین سلولی برای تولید نقشه استفاده کرده اند، میتوان به بازی DUNE II در شکل2 ، که در سال 1992 منتشر شده است، اشاره کرد.
-3 روش کار
در اینجا به بررسی ساخت زمینهای بازی به روش و الگوریتم اتوماتای سلولی [15] پرداخته شده است که قوانین این روش میتواند در ساخت محتوای بازی کمک بسیاری به بازیسازان و برنامهنویسان موتورهای بازیسازی کند. به کمک این روش میتوان محیطهای بازی پویا داشت و نگرانی تولید صفحات مختلف و زمینهای بازی متنوع را از بین برد .[16] در واقع به کمک روش تولید محتوای رویهای و قوانین ماشینسلولی در وقت و هزینه بازی سازی صرفهجویی کرد .[4][17] دو مورد محتوای بازی با ترکیب قوانین ماشین سلولی و قوانین بازیزندگیکانوی [18] پیادهسازی شده است. موارد پیادهسازی شده، -1 نقشه و مراحل مختلف بازی -2 تولید زامبی یا دشمنانبازی بصورت تصادفی، که با ترکیب موارد 1 و 2 میتوانیم بصورت تصادفی، صفحه بازی را تولید کرد.
برای بروزرسانی قوانین بازی میتوان از روشهای مختلفی مانند الگوریتم ژنتیک [6] استفاده کرد. روش پیشنهادی این مقاله برای بروزرسانی قوانین الگوریتم ازدحامذرات [19] است. طبق الگوریتم ازدحامذرات مکان هر سلول براساس مکان فعلی - - ، سرعت - - ، مقدار بهینه فردی - - ، مقدار بهینه همسایگان - - و مقدار بهینه مطلق - - آن به روز میشود. در ابتدا هر سلول با توجه به آخرین سرعت، بهترین حالت خودش و همسایگانش به روز میشود. در مرحله بعدی، اثر بهترین حالت مطلق را نیز در نظر گرفته شده است که حالت مطلق بهینه تأثیری روی حالت فعلی ندارد تا زمانیکه مقدار آن بسیار به حالت بهینه نزدیک شده باشد و سپس قانون طبق رابطه زیر بهروز میشود.