آموزش بازی سازی: NPCها و مواردی که باید در طراحی آنها رعایت شود
بخشی که شاید در بعضی از ژانرهای بازی از اهمیت چندانی برخوردار نباشد، اما بیتوجهی به آن حتی در همان ژانرهای مورد نظر هم میتواند هموزن بیتوجهی به کاراکترهای اصلی بازی به شما ضربه بزند.
NPCها و موضوعاتی که حول طراحی و پیادهسازی آنها جریان دارد، به نوعی تکمیل کنندهی اولین پروندهی ما در زمینهی طراحی کاراکترهاست. بد نیست بدانید که NPC مخفف عبارت Non-Player Character است که البته در مواردی آن را مخفف عبارت Non-Player Class هم مینامند. به طور خلاصه به کاراکترهایی که گیمر روی آنها هیچ کنترلی ندارد چنین لفظی تلقی میشود ولی برای متمایز کردن کاراکترهای منفی و تاثیرگذار بازی، دامنهی کاربرد آن همیشه به همان شخصیتهای فرعی و غیرقابل کنترل بازی محدود میشود که به فراوان درون بازی وجود دارند. برای همین هیچ گاه چنین چیزی نمیشنوید که فلان باس درون بازی را هم جزوی از NPCها به حساب بیاورند، چرا که این کاراکترها منحصربفرد هستند و معمولا سیستم کاملا جداگانه و شخصیسازی شدهای هدایت آنها را برعهده دارد.
همچنین نکتهای که در همین ابتدا باید به آن اشاره کنیم این است که الزاما یک NPC برابر با یک آدم نیست. مثلا بسته به بازی و جهان آن NPCهای یک بازی میتوانند رباتها، حیوانات و حتی ماشینهای سواری باشند. مثلا در بازیهای ماشین سواری، ماشینهایی که درون خیابانهای شهر در حال عبور و مرور هستند، طبق تعریفهای ما لفظ NPC برای آنها هم صادق است.
از تعریفها که بگذریم گفتنی است که مهمترین وظیفهی این بخش از بازی بدون شک زنده انگاری دنیای بازی است. مثلا در همان بازیهای ماشین سواری یکی از جنبههای وجود جریان زندگی و پویایی درون محیط بازی، وجود ماشینهایی است که مدام در گوشه و کنار شهر در حال پرسه زدن هستند و گهگاهی هم در قالب پلیسهای بازی، لحظاتی را برای تعقیب کردن شما صرف میکنند. البته اگر کمی ژانر بازی را تغییر دهیم و به سمت بازیهای ماجرایی و نقشآفرینی حرکت کنیم، نه تنها وظیفهی جان بخشیدن به دنیای بازی برگردن آنها قرار خواهد گرفت، بلکه روایت و پبشبرد بخشهایی از داستان بازی هم به آنها محول خواهد شد. به خاطر همین دلایل طراحی و همچنین مدیریت صحیح NPCها یکی از مباحث مهم بازیسازی امروزی است که در مجموع اهمیت کمتری نسبت به شخصیتهای اصلی بازی ندارد.
گام اول: تفاوتهای طراحی را بشناسید
بد نیست در گام اول به تفاوتهای اساسی که در زمینه طراحی و پیادهسازی NPCها و طراحی قهرمانها و دشمنان بازی وجود دارد نگاهی بیاندازیم. در دو مورد آخر هدایت کاراکتر مورد نظر یا به طور مستقیم توسط گیمر صورت میپذیرد یا این که به طور اختصاصی برای آنها سیستم هدایت به خصوصی در نظر گرفته شده است. همانند باسهای مختلف بازی که هر کدام دارای رفتارهای متفاوتی در مواجه با بازیکن هستند. اما در رابطه با NPCها موضوعی که بسیار اهمیت دارد این است که معمولا در بیشتر موارد ما مجبور هستیم که نمونههای زیادی از آنها را به مخاطب نشان داده و در همان زمان هم مدیریت کنیم. دقت کنید که دو مبحث نشان دادن و مدیریت کردن دو موضوع کاملا جدا در این زمینه هستند که وقتی با عنصر «فراوانی» در این موضوع جمع میشوند، شرایط جدیدی را برای ما بهوجود میآورند که در حالات قبلی وجود نداشت. با یک مثال این موضوع را بررسی میکنیم.
اگر بررسی بازی Deus Ex: Mankind Divided را مشاهده کرده باشید، دیدهاید که در این بازی به خصوص در محیطهای کوچک مشکلی در طراحی و پیادهسازی NPCها وجود دارد که به خوبی قابل مشاهده است. گاهی پیش میآمد که دو NPC دقیقا در یک نقطه و با ظاهری کاملا یکسان جلوی شما ظاهر میشدند که صحنهی کاملا نچسبی را بهوجود میآورد یا این که در مواردی یک NPC به یکباره از میان یک دیوار ظاهر شده و جلوی شما شروع به قدم زدن میکرد. چنین صحنههایی جدای از این که برای گیمر بسیار آزاردهنده هستند، اما چند نکتهی مهم در زمینهی طراحی و پیادهسازی NPCها را به ما گوشزد میکنند که در طراحی و پیادهسازی قهرمان بازی یا شخصیتهای منفی آن وجود ندارند.
اولین نکته مبحثی به نام «تنوع نسبی» در زمینهی طراحی NPCهاست. معمولا در بیشتر بازیها یک کاراکتر اصلی یا در مواردی تعداد محدودی کاراکتر تحت کنترل وجود دارد. در مورد شخصیتهای منفی هم همین گونه است اما در مورد NPCها این گونه نیست. همیشه بسته به وسعت محیطی، محدودیتهای گیمپلی (همانند میزان توانایی گیمر در کاوش محیطی) و حتی تواناییهای تیم توسعهدهنده ما به حداقل تعدادی از کاراکترهای متمایزی نیاز داریم که وجود آنها در آن بخش مورد نظر ما بتواند حس خوب زنده بودن دنیای بازی را برای گیمر تداعی کند. دفتر اداری، سوپر مارکت یا میدان مرکزی شهر هر کدام محیطهایی هستند که میتوانند در یک بازی وجود داشته باشد و برای همین هر کدام به نسبت مشخصی از تنوع برای به تصویر کشیدن صحیح جریان زندگی نیاز دارند و برای همین ما از آن با عنوان تنوع نسبی یاد کردهایم. مبحثی که در حالتهای قبلی به تعداد مشخص و واضحی محدود شده بود. البته به این نکته هم باید دقت کنید که مبحث تنوع نسبی فقط در ظاهر کاراکترها خلاصه نمیشود و کم و بیش باید در مبحث طراحی رفتارها نیز مورد توجه قرار بگیرد.
اما چرا توانایی تیم توسعهدهندهها را هم ملاک قرار دادیم؟ دلیل این موضوع این است که یک تیم حرفهای به خوبی میداند که صرفا برای زنده انگاری محیط یک بازی الزاما به تنوع بالایی از کاراکترهای مختلف نیازی ندارد و برای همین میتواند با ایجاد حداقل تفاوتهای اساسی در کاراکترها و هم در عناصر محیطی به چنین چیزی جامهی عمل بپوشاند، موضوعی که دیگر تیمهای توسعهدهنده صرفا با زیاد کردن تعداد NPCها سعی میکنند به آن برسند.
نکتهی دوم موضوعی به نام «سیستم مدیریت NPCها» است. شخصا بازی Deus EX را بازی نکردهام ولی با فرض این که حتی طراحی NPCهای این بازی هم از تنوع کافی برخوردار نبود، اما مسئلهی وجود دو NPC دقیقا یکسان و آن هم در میحطی کوچک همانند یک راهرو اشتباهی است که ربطی به موضوع تنوع کم آنها ندارد و برای همین سعی میکنیم کمی در مورد آن صحبت کنیم. برخلاف مدیریت متمرکز موجود بر شخصیت اصلی بازی و دشمنان اصلی او، معمولا تمامی NPCها یا ترکیبهای جمعیتی از آنها توسط یک سیستم اداره میشوند. مثلا اگر یکی از بازیهای سری GTA را انجام داده باشید دیدهاید که تقریبا همه مردم در مقابل تیراندازی شما واکنش مشخصی را از خود بروز میدهند. جدای از این، هنگامی که شما به تکتک نقاط شهر سر میزنید همیشه مردمی را مشاهده میکنید که در حال گشت و گذار درون شهر هستند و تقریبا جایی درون بازی خالی از سکنه نیست. در چنین بازیهایی معمولا با نزدیک شدن شما به یک منطقهی مشخص از بازی، سیستم مدیریت NPCهای بازی تعدادی از آنها را متناسب با آن بخش از بازی و به صورت تصادفی و آن هم در نقطهای خارج از دید شما در محیط بازی ایجاد میکند تا هم چنان شما این گونه احساس کنید که در این نقطه از شهر هم جریان طبیعی زندگی جریان دارد.
بنابراین اگر بخواهیم سیستم مدیریت NPCها را در چند بخش خلاصه کنیم باید بگوییم که چنین سیستمی در نگاه کلی از بخشهای تولید، هدایت و نابودی تشکیل شده باشد. بخش تولید متناسب با شرایط گفته شده تعداد مشخصی NPC را در محیط ایجاد کرده و سپس با استفاده از بخش هدایت رفتار و حرکتهای آنها مدیریت میشود. در انتها هم با خروج شما از آن منطقه تمامی آنها توسط سیستم از بین میرود ولی در صورت نیاز اطلاعات تعاملهای شما با آنها حفظ خواهد شد. اما نکتهای که در این بین وجود دارد این است که در یک شکل حداقلی یک سیستم خوب باید تمامی اعمال نفوذهای خودش در جهان بازی (اعم از تولید، هدایت و نابودی NPCها) را در جایی به دور از چشم بازیکن صورت دهد. خلق NPCها یکی از مهمترین این موارد است که در بازی Deus EX به درستی مدیریت نشده است. هم ظاهر شدن یکباره NPC از میان دیوار و هم ظاهر شدن همزمان دو کاراکتر یک شکل در یک نقطه از بازی ضعف این بخش از سیستم مدیریت را نشان میدهد که چرا نتوانسته جلوی رخ دادن چنین چیزی را بگیرد.
البته بد نیست در مورد بخش مدیریت NPCها هم به بازی PES اشاره کنیم که اگرچه همچنان نسخهی ۲۰۱۸ آن را تجربه نکردهام اما تا همین نسخههای اخیر نحوهی مدیریت فاجعه آمیز رفتار تماشاگران آن به قدری واضح بود که ترجیح میدادم دوربین هیچ گاه نمایی از تماشاگران برایم نشان ندهد. موضوعی که در نقطهی مقابل بازی FIFA به خوبی توانسته در مدیریت هر چه طبیعیتر آن موفق عمل کرده و جو طبیعیتری را برای ورزشگاههای خود به ارمغان بیاورد.
گام دوم: محدودیتها و ویژگیهای مخاطبان را شناسایی کنید
پس از درک تفاوتها و قبل از شروع به طراحی NPCها بد نیست با محدودیتها و ویژگی مخاطبان خود هم آشنا بشوید. مثلا در اولین نکته بد نیست بدانید که همیشه حساسیت بیشتری روی یکسان بودن ظاهر افراد به نسبت یکسان بودن رفتار وجود دارد. مثلا یک لباس تقریبا شبیه بر تن دو نفر بیشتر از رفتار دقیقا یکسان آنها درون بازی جلوه میکند. نکتهی دیگری هم که در این بین وجود دارد این است که همواره ذهن انسان عناصر ثابت و کم تحرک درون بازی را با وضوح کمتری به نسبت عناصر متحرک ثبت میکند و همین موضوع زمینه را برای استفاده از عناصر تکراری در بخشهای ثابت بازی بیشتر میکند. البته همیشه باید عناصر متحرک و گمراه کنندهای درون محیط بازی وجود داشته باشند که از متمرکز شدن ذهن مخاطب روی عناصر ثابت جلوگیری کنند وگرنه در محیطی که همه چیز ساکن باشد، چنین چیزی به راحتی قابل تشخیص است. بد نیست در این نقطه نگاهی به عکس زیر از بازی Uncharted 4 بیاندازید و نکاتی را که گفتیم در آن جست و جو کنید. به عنوان نمونه به شباهتی که درون عکس مشخص شده دقت کنید و البته میتوانید موارد دیگر را هم خودتان تشخیص بدهید.
شناسایی محدودیتها و ویژگیهای مخاطبان موضوع مفصلی است که میتوانید در مورد آنها در زمینههای مطالعات اجتماعی و روانشناختی مردان و زنان اطلاعات جالبی به دست آورید و برای همین ما نیز به همین میزان گفته شده اکتفا میکنیم.
گام سوم: خارج از توانایی خود و موتور بازی طراحی نکنید
بسته به تواناییهای خودمان و همچنین ظرفیتهای موتورهای بازیسازی معمولا هر نوع واکنش و عملی را که در ذهن داریم نمیتوانیم دقیقا در محیط بازی پیادهسازی کنیم. مثلا هر موتور بازیسازی ظرفیت مشخصی برای پیادهسازی هوش مصنوعی بازی یا حتی مسیریابی مسیر جابجا شدن یک NPC از یک نقطه به نقطهی دیگر دارد. برای همین گاهی اوقات صرف این که شما میخواهید تعداد زیادی از NPCها را درون بازی خود به صورت همزمان مدیریت کنید تنها از عهده تعدادی از موتورهای بازیسازی برمیآید و احیانا دیگر موتورها در این زمینه با مشکل مدیریت منابع سیستم یا الگوریتمهای بهینه نشده مواجه خواهند شد که راندمان بازی را به شدت کم خواهد کرد. برای همین قبل از دست به کار شدن بد نیست نگاهی هم به تواناییهای موتور بازی خود و البته تیم توسعهدهندهی خودتان داشته باشید. مثلا در حالتی دیگر اگر شما از مسیریابی پیشفرض موتور انتخابی راضی نباشید، آیا توانایی این را دارید که مثلا برای بازی کوچک خود یک سیستم مسیریابی جدید طراحی کنید؟ این موضوعی است که به شدت روی کیفیت رفتار NPCهای بازی شما تاثیرگذار خواهد بود و نمیتوان به سادگی از آن گذشت.
نکات پایانی
همان گونه که گفتیم طراحی NPCها دارای نکات ریز و درشت بسیاری است که نباید از آنها غافل شویم و ما در این جا به نوعی به سه مورد اساسی در این زمینه اشاره کردیم. البته سعی ما بر این بود که در رابطه با مواردی همچون طراحی هنری و نکات مربوط به آن که موارد واضحی است و تفاوت چندانی هم با طراحی کاراکتر اصلی و … ندارد صحبت نکرده و بخش عمدهی مقاله را به موضوعات تازهتر اختصاص دهیم. به عنوان نکتهی پایانی هم باید اشاره کنیم که همواره در زمینهی طراحی و پیادهسازی چنین بخشی از بازی نظارت دقیقی روی مصرف منابع سختافزاری خود داشته باشید چرا که اگرچه باید به اندازهی کافی به هر بخش از بازی منابع مورد نظر را اختصاص دهیم، اما بدون شک و در مواقع اضطراری اولویت اصلی با خط اصلی داستان و رویدادهایی است که حول شخصیت اصلی بازی بهوقوع میپیوندند و نباید صرفا برای تکان خوردن چند جنبنده در پسزمینه، بازی ما دچار افت راندمان شود.