ویژگیهای یک دوربین خوب برای بازیهای دوبعدی چیست؟ | جعبهابزار بازیسازان (۱۳۳)
چند سالی میشود که کانال یوتیوب جعبهابزار بازیسازان (Game Maker’s Toolkit) در ویدئوهایی کوتاه و آموزنده به بررسی و توصیف جنبههای مختلف بازیهای ویدئویی و مفاهیم مربوط به این حوزه میپردازد. من تصمیم گرفتم محتوای این ویدئوها را با کمی تصرف و منطبق کردن آن با مدیوم نوشتار، به فارسی برگردانم. این سری مقالات برای کسانی که آرزوی بازیساز شدن را در سر میپرورانند، یا صرفاً میخواهند بازیهای ویدئویی را بهتر و عمیقتر درک کنند، بسیار مفید خواهد بود. با مجموعه مقالات «جعبه ابزار بازیسازان» همراه باشید.
بیایید فرض را بر این بگیریم که در حال ساختن یک بازی دوبعدی هستید و برای قاببندی گیمپلی بازی به دوربین نیاز دارید. راهحل این مشکل بسیار ساده به نظر میرسد. صرفاً کافی است دوربین را روی شخصیت اصلی ثابت نگه دارید، مگر نه؟ خیر، این اشتباه است. اگر این کار را انجام دهید، نتیجهی حاصلشده دوربینی است بدقلق، محدود و بهشکل خستهکنندهای بیحرکت.
بنابراین بیایید مشکل آن را رفع کنیم. در ادامه ۵ نکته برای ساختن یک دوربین دوبعدی بهتر عرضه شده است.
بخش اول: نگاه به جلو
اول بیایید دربارهی نگاه به جلو (Lookahead) صحبت کنیم. اساساً اگر شخصیت را همیشه در وسط صفحه نگه دارید، فقط نیمی از صفحهی نمایش را به چیزهایی اختصاص دادهاید که جلوی رویتان قرار دارند.
بنابراین جای تعجب ندارد که بهخاطر محدود بودن دید بازیکن این اتفاق زیاد میافتد:
از این رو، بهتر است تمرکز را بیشتر روی چیزهایی گذاشت که قرار است از سمت جلو در دیدتان قرار بگیرند و چیزهایی که پشتسر گذاشتهاید، عمدتاً نادیده گرفته شوند. چند راه برای پیادهسازی این توصیه وجود دارد.
راهحل سادهتر این است که صرفاً دوربین را از شخصیت اصلی دورنمایی (Zoom Out) کنید. در این حالت حتی اگر شخصیت اصلی وسط صفحه قرار داشته باشد، میتوانید دید وسیع و کافیای نسبت به آنچه قرار است از جلو به سمتش بیاید داشته باشید.
راهکار دیگر این است که دوربین دائماً به سمت جلوی پای شخصیت تغییر موضع دهد. اگر شخصیت شما فقط بتواند در یک جهت (به سمت جلو) حرکت کند، دیگر نیازی نیست دقیقاً وسط صفحه قرار داشته باشد؛ میتوان دوربین را طوری تنظیم کرد که فقط ۲۵ درصد از صفحه پشت او قرار داشته باشد. برای بازیهای سبک دوندگی بینهایت (Endless Runner) این دوربین بسیار مناسب است.
ولی اگر شخصیت بتواند هم به سمت چپ و راست حرکت کند، لازم است که دوربین جلویی را بر اساس مسیر جابجایی تنظیم کرد.
مثلاً در بازی داستان غار (Cave Story)، دوربین دو موقعیت دارد: یکی موقعی که به سمت چپ میروید:
و دیگری موقعیکه به سمت راست میروید:
در هر دو حالت دوربین عمدتاً جلوی بازیکن را نشان میدهد. این سیستم برای بازیای که محوریتش شلیک کردن به اهداف جلوی رویتان است، عالی است.
در داستان غار هرگاه جهت خود را عوض کنید، دوربین بازی بهآرامی روی صفحه حرکت میکند تا مطابق با جهت شما، جلوی رویتان را نشان دهد.
نیو سوپر ماریو برادرز یو (New Super Mario Bros. U) نیز کاری مشابه انجام میدهد. دوربین بازی در حالت عادی به سمت راست صفحه، کمی جلوتر از ماریو، تنظیم شده است.
ولی اگر برای مدتی کوتاه به سمت عقب حرکت کنید، دوربین متوجه تغییر جهت میشود و کمی به سمت چپ ماریو تمایل پیدا میکند.
در سونیک نسلها (Sonic Generations)، دوربین به سرعت سونیک واکنش نشان میدهد. وقتی سونیک ثابت ایستاده باشد، دوربین وسط صفحه قرار دارد، ولی هرچه با سرعت بیشتر حرکت کند، دوربین هرچه بیشتر جلوی او را نشان میدهد تا به موقعیت نهایی خود برسد.
این راهکار فقط مخصوص بازیهای سکوبازی نیست. در هایپر لایت دریفتر (Hyper Light Drifter)، دوربین چند سانتیمتر جلوی سر شخصیت اصلی تنظیم میشود. بنابراین رویتان به هر جهتی که باشد، دوربین فضای روبرویتان را بیشتر نشان خواهد داد.
در بازی لوفتراوزرز (Luftrausers) دوربین همیشه نوک دماغ هواپیمای بازیکن را دنبال میکند، ولی فقط موقعی که بازیکن دکمهی گاز را پایین نگه داشته باشد. بهلطف این دوربین است که میتوانید بدون اینکه رد هدف را گم کنید، مکث کنید و بعد بچرخید تا به هدف ضربه بزنید، حرکتی که در بازی بسیار جذاب به نظر میرسد.
پیاده کردن این سیستم حتی در بازیهایی که در آن بازیکن روشی برای تیراندازی دارد راحتتر است، مثل بازی سریر اتمی (Nuclear Throne). در این بازی، دوربین در نقطهای بین بازیکن و نشانگر هدفگیری ثابت میشود و بهخاطر همین میتوانید نگاه دقیقتری به دشمنانی که میخواهید بهشان شلیک کنید بیندازید.
این راهحلی بسیار طبیعی برای واکنش نشان دادن به نیت بازیکن و قاببندی آنچه بازیکن میخواهد ببیند است.
این راهحل را میتوان در
- وارد گانجن شو (Enter the Gungeon)، روگلایک گلولهمحور
- جابجاکننده (The Swapper)، پازل کلونمحور
- هاتلاین میامی (Hotline Miami)، بازی خشن و اکشن
دید. در همهی این بازیها دوربین بازی با توجه به نقطهای که در آن نشانگر را نگه داشتهاید تعیین میشود.
اساساً برای تعیین زاویهی درست دوربین باید این سوال را پرسید: بازیکن نیاز دارد چه چیزی را ببیند؟ بعد باید مطمئن شوید که دوربین آن را چیز را از نظر مخفی نمیکند.
بخش دوم: کارکرد دوربین به هنگام پریدن
در قدم بعدی بیایید دربارهی کارکرد دوربین بههنگام پریدن صحبت کنیم. اگر دوربین روی شخصیت اصلی ثابت شده باشد، هرگاه که این شخصیت بپرد، صفحه نیز پابهپایش حرکت میکند.
اگر هم در حال ساختن یک سکوبازی باشید – سبکی که کلاً بر پایهی پریدن بنا شده است – این یعنی دوربین در چنین سبکی زیاد حرکت میکند. حرکت زیاد دوربین ممکن است در بازیکن سردرد ایجاد یا انجام پرشهای بینقص را به کاری چالشبرانگیز تبدیل کند، خصوصاً در شرایطی که وقتی به سمت بالا میپرید، سکوهای زیرپای شخصیت در زیر صفحه ناپدید شوند و شما نتوانید دقیقاً ببینید که کجا فرود میآیید.
برای حل این مشکل دو راهحل وجود دارد. راه اول این است که دوربین پریدن بازیکن را نادیده بگیرد، مگر در شرایطی که از ارتفاعی خاص رد شود. در دانکی کانگ کانتری: انجماد استوا (Donkey Kong Country: Tropical Freeze)، دوربین به پریدنهای دانکی کانگ واکنش نشان نمیدهد. برای همین زمین زیر پایش در همه حال در یک موقعیت یکسان روی صفحه باقی میماند.
با این حال، وقتی روی یک سکو فرود بیایید که ارتفاعش از حدی بالاتر است، دوربین همپای دانکی کانگ بالا میآید و بهاصطلاح یک زمین زیر پای جدید برای خود تعریف میکند. بهلطف این سیستم، دوربین موقعی حرکت میکند که روی یک سطح فرود بیایید، نه وسط پریدن.
دوربین میتواند در شرایطی خاص این قانون را زیرپا بگذارد، مثلاً وقتی که در حال بالا رفتن از یک طناب یا شنا کردن هستید. مثلاً در زیر آب دوربین آزادانه به سمت بالا یا پایین حرکت میکند.
ریمن لجندز (Rayman Legends) نیز از سیستمی مشابه پیروی میکند. وقتی ریمن میپرد، دوربین به سمت بالا حرکت نمیکند. در مواقعی هم که ساختار مرحله طوری است که از قاببندی استاندارد صفحه خارج میشود، دوربین بهشکلی از پیش تعیینشده حرکت ریمن را دنبال میکند.
راه دیگر برای حل این مشکل، طراحی خود مرحله است. در یک بازی مثل شوالیهی بیلبهدست (Shovel Knight)، مراحل با در نظر گرفتن ارتفاع حداکثر طراحی شدهاند؛ این ارتفاع، دقیقاً ارتفاع خود صفحه است. این یعنی دوربین فقط میتواند به سمت چپ یا راست حرکت کند و هیچگاه لازم نیست به سمت بالا یا پایین حرکت کند. برای همین دوربین به هنگام پریدن ثابت باقی میماند.
حد نهایت منطقی این راهحل این است که کل مرحله را طوری طراحی کرد که در یک صفحه جا بشود. در این حالت اصلاً نیازی نیست دوربین حرکت کند. این ساختار مرحله برای بازیهایی با محوریت پرش دقیق (Precision Jumping) ایدهآل است.
همچنین بهتر است که دوربین را از چپ به راست، وسط صفحه تنظیم کرد، چون در این حالت شخصیت اصلی به قسمت پایینی صفحه نزدیکتر است. در این حالت فضای مانور دادن از سمت چپ به راست بیشتر است و نیاز به بالا و پایین بردن دوربین کمتر میشود.
ولی شاید بهترین توصیهای که باید در این زمینه به خاطر داشت این است که نیازی نیست به هردو محور عمودی و افقی دوربین رویکردی یکسان داشته باشید. کارکرد دوربین هنگام حرکت از سمت چپ به راست یا برعکس، میتواند نسبت به حرکت به سمت بالا و پایین یا برعکس کاملاً متفاوت باشد.
بخش سوم: دمپینگ
حال بیایید از تکنیک دمپینگ (Damping) صحبت کنیم. اگر دوربین در هر لحظه در حال دنبال کردن شخصیت اصلی باشد، در نتیجه به هر حرکت – هرچقدر هم که جزیی باشد – واکنش نشان خواهد داد. در این صورت دوربین ممکن است لرزان و اعصابخردکن بشود، خصوصاً در شرایطی که میخواهید برای انجام یک پرش بینقص حرکاتی دقیق انجام دهید.
یکی از راهحلها برای حل این مشکل استفاده از دمپینگ است. دمپینگ یعنی طراحی دوربین بهشکلی که هنگام حرکت از موقعیت فعلیاش به موقعیت شخصیت اصلی، تکان ناگهانی نخورد و این تغییر آرام و روان رخ دهد. در این حالت وقایع روی صفحه بهشکلی روانتر دنبال میشوند و دوربین با هر حرکت کوچکی تکان ناگهانی نمیخورد.
البته لازم است یک نکته را در نظر داشته باشید: اگر دوربین با سرعتی بیشازحد آهسته حرکات شخصیت اصلی را دنبال کند، ممکن است در لحظاتی خاص شخصیت اصلی از دوربین جلو بیفتد. در این حالت فضای روی صفحه برای اینکه بازیکن جلوی خود را ببیند، حتی کمتر هم میشود.
راهحل دیگر طراحی قسمتی با عنوان ناحیهی مرده (Dead Zone) است. در فز (Fez)، پنجرهای نامریی وجود دارد که در آن شخصیت اصلی میتواند بدون حرکت کردن دوربین، آزادانه حرکت کند.
ولی اگر از این پنجره خارج شوید، دوربین شروع به دنبال کردن او میکند.
البته معنیاش این است که وقتی شخصیت اصلی در حال راه رفتن است، از مرکز صفحه جلوتر هم میرود. ولی دوربین آنقدر دورنمایی کرده که واقعاً اهمیت ندارد.
نتیجه میگیریم که دوربینهای بهشدت واکنشپذیر برای بازیهای رترو که میخواهند حالوهوای تند و تیز بازیهای ۸ بیتی را القا کنند، مناسب هستند. ولی حتی حد کمی از دمپینگ دوربین میتواند به روانتر و صیقلیافتهتر به نظر رسیدن بازی کمک کند.
بخش چهارم: قاببندی
در حالت عادی، دوربین باید روی شخصیت اصلی که بازیکن کنترل میکند متمرکز باشد، ولی گاهی لازم است چیزهای دیگری را هم در صفحه گنجاند. بنابراین از حرکت دادن، زوم کردن یا ثابت نگه داشتن دوربین واهمه نداشته باشید.
مثلاً میتوانید با استفاده از دوربین توجه بازیکن را به یک سری اشیاء خاص جلب کنید. در بازی سیارهی سایهی بهشدت خوفناک (Insanely Twisted Shadow Planet)، اطراف قسمتهای مهم چون چکپوینتها و مناطق حل پازل یک ناحیهی تاثیرپذیری وجود دارد.
اگر سفینهی بازیکن وارد این ناحیه شود، دوربین میانگین بین این قسمت مهم و سفینه را پیدا میکند. در این حالت، هردو بخش روی صفحه نمایش داده میشوند و توجه بازیکن نیز بهشکلی استادانه به هردو جلب میشود.
همچنین دوربین میتواند بهشکل موقت یک صفحهی خاص را قاببندی کند. در جزیرهی شعبدهی دیزنی (Disney Ilusion Island) دوربین معمولاً فقط حرکت میکیماوس را دنبال میکند، ولی گاهی دوربین دورنمایی (Zoom Out) میکند تا یک بخش سکوبازی چالشبرانگیز یا حل پازل را بهطور کامل نمایش دهد. وقتی بازیکن از این قسمت خارج شود، دوربین دوباره مثل قبل فقط حرکت میکی را دنبال میکند.
گاهی دوربین چند چیز را در آن واحد دنبال میکند. در بازی پایر (Pyre)، بازی فانتزی نقشآفرینی/ورزشی (با محوریت بسکتبال)، شخصیتی که تحت کنترل دارید، بهاندازهی توپ بازی اهمیت دارد، بنابراین دوربین بهشکلی دینامیک حرکت میکند و جلو یا عقب میرود تا مطمئن شود هردو در آن واحد روی صفحه قابلدیدن هستند.
گاهی هم لازم است دوربین را برای قاببندی دراماتیک و سینمایی حرکت داد. در بازی اینساید (Inside)، دوربین، مثل یک سکوبازی معمولی، کمی جلوتر از بازیکن او را دنبال میکند، ولی در لحظات حساس – مثل مواقعی که گلهای از سگهای هار دنبال شما راه میافتند – دوربین طوری حرکت میکند تا دید بهتری نسبت به دشمنان در اختیارتان قرار دهد.
همچنین برای ایجاد تاثیری خاص میتوان دوربین را دورتر یا نزدیکتر برد. در گریس (GRIS)، دوربین گاهی روی قهرمان ثابت میشود، گاهی هم دورنمایی میکند تا مقیاس یک ساختمان بزرگ را نشان دهد.
همچنین میتوانید دوربین را محدود کنید تا بعضی چیزهای خاص را نشان ندهد. مراحل اسپلانکی (Spelunky)، دور قسمتی که میتوانید بازی کنید یک محدودهی صخرهای غیرقابلعبور کشیده شده و دوربین اجازه ندارد وارد این نواحی شود. با قفل کردن دسترسی دوربین به این قسمت، بخش بیشتری از صفحه را میتوان به چیزهایی اختصاص داد که به گیمپلی بازی مربوط میشوند.
بخش پنجم: اضافه کردن عصاره (Juice) به بازی
در آخر، با استفاده از دوربین میتوان بازی را هیجانانگیزتر و زندهتر جلوه داد، تکنیکی که از آن با عنوان عصارهی بازی (Game Juice) یاد میشود. عصارهی بازی ریزهکاریهای زیادی دارد، ولی یک سری تکنیک کلی برای آن تعریف شده است.
یکی از این تکنیکها، لرزاندن دوربین است. با لرزاندن دوربین میتوان حس وقوع یک انفجار، یک برخورد، یک درگیری پرتنش یا گام برداشتن یک هیولای سنگینوزن را تقویت کرد. میتوان شدت و همچنین جهت آن را تغییر داد. مثلاً در سلست (Celeste) دوربین به سمتی که شخصیت اصلی به آن میجهد میلرزد تا هرچه بیشتر سرعت و قدرت این حرکت ویژه را نشان دهد.
یک تکنیک دیگر هیتاستاپ (Hit Stop) است. هیتاستاپ موقعی اتفاق میافتد که هنگام زدن یک ضربه، بازی برای کسری از ثانیه متوقف میشود تا هرچه بیشتر شدت ضربه را بهصورت ناخودآگاه منتقل کند.
بازی کاتانا زیرو (Katana Zero) را بهعنوان مثال در نظر بگیرید. وقتی یک دشمن را میکشید، بازی برای کسری از ثانیه فریز میشود. در این حالت دوربین همچنان در حال لرزیدن است و ذراتی به بیرون پخش می شوند، ولی انیمیشن خود عمل ضربه زدن در سکون کامل به سر میبرد، تا اینکه بعد از کسری از ثانیه دوباره از سر گرفته میشود. وقتی با سرعت عادی در حال تجربهی بازی هستید، این وقفهی کوتاه باعث میشود اثر هر ضربه با شدت بیشتری حس شود.
در هالو نایت (Hollow Knight)، وقتی شما ضربهای دریافت میکنید، دوربین برای مدتزمانی قابلتوجه متوقف میشود تا هم اثر اشتباهتان را حس کنید و هم اینکه لحظهای کوتاه برای بازیابی داشته باشید.
در آخر، دوربین میتواند برای مدتزمانی کوتاه تکان بخورد و زوم کند تا هیجان بیشتری به بازی اضافه کند. مثلاً در دیو غواص (Dave The Diver) وقتی یک ماهی در دام قلابتان بیفتد، دوربین بهطور ناگهانی روی کشمکش دیو با ماهی زوم میکند و بعد دوباره به حالت عادی برمیگردد.
همهی این تکنیکها عصارهی بازی را تقویت میکنند، ولی تکان خوردن و لرزش سریع دوربین ممکن است برای بعضی افراد مشکلزا باشد، برای همین فراهم کردن گزینههای دسترسی (Accessibility Options) (مثل فراهم کردن گزینهای برای غیرفعال کردن لرزش صفحه بهطور کامل) میتواند مفید واقع شود.
نتیجهگیری
کار دوربین این است که شخصیت اصلی را دنبال کند، طوریکه بازیکن شخصیتی را که کنترل میکند در همه حال روی صفحه ببیند. ولی کارکرد دوربین میتواند بسیار گستردهتر از این باشد. دوربین میتواند:
- جلوی بازیکن را به او نشان دهد تا از چالشهای پیشرو باخبر شود
- پریدنهای بازیکن را نادیده بگیرد تا جلوی حرکت زیاد دوربین و سردرد گرفتن بازیکن گرفته شود
- با استفاده از تکنیک دمپینگ روانتر حرکت کند
- با استفاده از قوانین از پیشتعیینشده به رویدادهای مهم توجه ویژه نشان دهد
- با استفاده از یک سری تکنیک و ریزهکاری، حس برخورد و اثرگذاری را افزایش دهد
ولی یادتان باشد دوربین بینقصی که برای همهی بازیها کار کند وجود ندارد. ماهیت دوربین کاملاً بستگی به بازیای که میسازید دارد. یک سکوبازی آهسته و تفکرآمیز در مقایسه با یک بازی آرکید سریع و پرزد و خورد به دوربینی بسیار متفاوت نیاز دارد.
امید بر این است که با الهامگیری و ایدهگیری از این توصیهها، دوربین بهتری برای بازی خود طراحی کنید.
منبع: مارک براون – یوتوب