این مقاله، ادامهی راهنمای ورود به بازیسازی است. اینجا در مورد پیشنیازهای ورود به این صنعت صحبت خواهیم کرد.
هفتهی پیش با قسمت اول مقالهی ورود به بازیسازی در خدمت شما دوستان عزیز بودم. در قسمت گذشته، بیش از هر چیز دیگری روی بخش ذهنی ماجرا تمرکز کردیم. اینکه چگونه باید ذهن خود را برای ورود به این حوزه آماده کنیم، چه طرز فکری را در خود پرورش دهیم و کدام افکار را کنار بگذاریم. واقعیت این است که وقتی به یک سطح قابل توجهی از واقعگرایی برسیم، ادامهی مسیر بسیار آسانتر میشود. علاوه بر این، در مورد چند موتورهای بازیسازی سخن گفتیم که برای استفاده از آنها نیازی به دانش کدنویسی ندارید. در نهایت با معرفی دو موتور Unity و Unreal Engine به عنوان محبوبترین و قابل دسترسترین موتورهای حال حاضر جهان، مقاله را به اتمام رساندیم.
طی هفتهای که گذشت، داشتم به این فکر میکردم که قسمت دوم را چگونه پیش ببریم که اولاً خستهکننده نشود، دوماً کمی جدیتر و عملگرایانهتر از قسمت اول باشد. نظراتی که پای پست قبلی گذاشته بودید را نیز با دقت مطالعه کردم و همانطور که حدس میزدم، چندین نکتهی کلیدی نیز از جانب شما در این نظرات به ثبت رسیده بودند. همانطور که در قسمت گذشته نیز گفتم، مقالات اینچنینی زمانی به حداکثر اثربخشی خود میرسند که در مورد آنها بحث شود و تجربیات مختلف با یکدیگر ادغام شوند. لذا همین ابتدا از شما میخواهم اگر چیزی در این باره میدانید که میتواند به سایر اعضا کمک کند، حتماً آن را در بخش نظرات به اشتراک بگذارید!
با این مقدمه برویم سراغ قسمت دوم و نقشهی راه را تکمیل کنیم.
کار انفرادی یا تیمی؟
پس از اینکه کمی با محیط کار موتورهای بازیسازی آشنا شدید و به این نتیجه رسیدید که واقعاً بازیسازی را دوست دارید، زمان آن است که این سوال کلیدی را از خود بپرسید: آیا میخواهم به شکل انفرادی بازی بسازم یا عضوی از یک تیم باشم؟
بیایید جواب این سوال را در سه حالت مختلف بررسی کنیم. حالت اول حالتی است که تصمیم بگیرید به شکل انفرادی کار بازیسازی را آغاز کنید. آیا امکان این وجود دارد که به شکل انفرادی یک پروژهی موفق در سطح جهانی ارائه دهیم؟ جواب این سوال مثبت است. کافی است به نمونههای موفق نگاهی بیندازید. بازیهای Braid، Balatro و Undertale همگی توسط یک سازنده ساخته شدهاند و به موفقیت جهانی رسیدهاند. حتی Minecraft که این روزها بسیار فراتر از یک بازی است، در ابتدا یک پروژهی تکنفره بوده و طی زمان و با رشد سرسامآور تعداد بازیکنان، اکنون با نظارت یک تیم خوشذوق پیش میرود.
در صورتی که میخواهید به شکل انفرادی بازی بسازید، باید چند نکته را در نظر بگیرید. اول اینکه باید خود را برای چالشهای بسیاری آماده کنید. توسعهی بازی کار خیلی راحتی نیست و نیاز به علم دارد. باید از برنامهنویسی، گرافیک، انیمیشنسازی، سناریونویسی و حتی آهنگسازی سر در بیاورید. البته طبیعتاً هیچکدام از بازیهای تکنفره که نام بردیم، در تمام این زمینهها پیشتاز نیستند. برای مثال Undertale با وجود ایدهی فوقالعادهای که دارد، از نظر بصری بسیار ساده است. گیمپلی بازی نیز که به شکل تعامل متنی پیش میرود و از مکانیزم پیچیدهای تبعیت نمیکند. یا خود بازی Minecraft به خاطر پیکسلی بودن و سادگیاش معروف شده و بخاطر ایدهی جذابش تا این حد به شهرت رسیده است.
بنابراین همانطور که در قسمت گذشته نیز گفتم، اولین چیزی که باید به خاطر داشته باشید این است که بسیاری از گیمرها بیش از اینکه به دنبال یک اکشن آرپیجی چند صد ساعته با پیچیدهترین مکانیزمهای گیمپلی باشند، به دنبال یک تجربهی متفاوت هستند. برای مثال Balatro از قوانین اولیهی بازی پوکر برای ساخت یک گیمپلی جذاب استفاده کرده و در حال حاضر یکی از اعتیادآورترین بازیهای جهان است. اما این را در نظر بگیرید که بازیسازی به شکل انفرادی، به دانش خوبی از تمامی زمینهها احتیاج دارد.
حالت دوم وقتی است که تصمیم داشته باشید با یک تیم کوچک بازی بسازید. نمونههای موفق این بازیها را نیز دیدهایم. عناوینی مانند INSIDE، Disco Elysium و Among Us مثالهای زندهای هستند که نه تنها به موفقیت رسیدند، بلکه اکنون به عنوان الگویی برای کل صنعت بازیسازی در نظر گرفته میشوند. اما مکانیزم تیمهای کوچکتر چگونه است؟
در تیمهای کوچکتر، معمولاً یک الی سه نفر روی یک بخش خاص از بازی کار میکنند و یک نفر نیز رهبری تیم را به عهده دارد. برای مثال یک نفر مسئول طراحی کانسپت، کاراکترها، محیطهای بازی و مسائل مربوط به گرافیک است، یک نفر کدنویسی را بر عهده دارد، یک نفر دیگر مسئول طراحی صدا و موسیقی است و الی آخر. این افراد معمولاً در کار خود حرفهای هستند و به دلیل تمرکز روی یک بخش خاص از بازی، نهایتاً میتوانند محصولی کاملتر و چشمگیرتر وارد بازار کنند. البته یک ایراد هم دارند؛ اینکه اگر متخصص یک بخش از تیم خارج شود، احتمالاً کل پروژه به شدت ضربه میبیند و گاهی باید کل پروسه از ابتدا آغاز شود.
هماهنگی بین اعضای تیم نیز یکی دیگر از چالشهای این حالت است. وقتی شما به تنهایی بازی میسازید، بر تمامی بخشهای بازی خود تسلط دارید و به اصطلاح میدانید چه چیزی را کجا گذاشتهاید! در تیمهای کوچک گاهی پیش میآید که متخصص دو بخش مختلف، به علت اطلاعات ناکافی از حرفهی یکدیگر به ارورهایی بربخورند که حل آنها زمانبر باشد. انتخاب مدیر پروژهای که اطلاعات کافی در مورد زمینههای مختلف بازی داشته باشد، میتواند این مشکل را تا حد خوبی حل کند.
چالش دیگری که تیمهای کوچک و پروژههای انفرادی ممکن است با آن مواجه شوند، بحث بازاریابی است. طبیعتاً هدف شما از ساخت بازی، عرضه و فروش آن به بازار است! شرکتهای بزرگ بودجهی گزافی برای تبلیغات بازی خود کنار میگذارند و از طریق یک ناشر رسمی، بازی را به شکل فیزیکی و دیجیتال روانهی فروشگاههای سراسر جهان میکنند. طبیعتاً تیمهای کوچکتر به این منابع دسترسی ندارند، اما فروشگاههای رسمی مانند استیم، گوگل پلی و اپ استور، اکنون به راحتی اجازه میدهند که بازی خود را در پلتفرمشان قرار دهید. علاوه بر این حتماً در نظر داشته باشید یک استراتژی درست بازاریابی، میتواند به اندازهی مسائل فنی و حتی بیش از آن اهمیت داشته باشد. پس زمانی را نیز به تحقیق در مورد بازار اختصاص دهید و یا از یک متخصص برای انتشار بازی خود کمک بگیرید.
حالت سوم وقتی است که هدف شما استخدام در یک تیم بزرگ بازیسازی باشد. تیمهای بزرگ به خاطر منابعی که در اختیار دارند، شانس موفقیت بسیار بالاتری نیز دارند. علاوه بر این حقوق دریافتی کارکنان کمپانیهای بزرگ بسیار عالی است و میتواند یک زندگی مرفه برای شما در پی داشته باشد. اما همانطور که میدانید، ورود به این کمپانیهای خیلی راحت نیست. آنها از افراد متخصص و پرتجربه برای پیشبرد کار توسعه کمک میگیرند و اگر تازه میخواهید به حوزه بازیسازی وارد شوید، باید واقعگرایانه به شما بگویم که پیدا کردن کار در این کمپانیها در این مرحله کمی بلندپروازانه است!
اما میتوانید ورود به این کمپانیها را به عنوان هدفی بزرگتر برای خود در نظر بگیرید که انگیزهای برای ادامهی راهتان باشد. این را در نظر بگیرید که در این کمپانیها، به شکل بسیار تخصصیتر روی موضوعات کار میشود. برای مثال چند نفر فقط برای طراحی کاراکتر انتخاب میشوند، چند نفر روی سناریو و داستان بازی تمرکز میکنند و تیم عظیمی از برنامهنویسان نیز وظیفهی کد زدن را به عهده میگیرند. به همین منظور اگر قصد کار کردن در چنین کمپانیهایی را دارید، علاوه بر دانش عمومی در یک حوزه، باید در یک حوزهی بسیار تخصصیتر نیز خودتان را اثبات کنید. برای مثال اگر به شکل عمومی مدلسازی میکنید، باید در یک حوزه مثل طراحی کاراکتر بسیار حرفهای شوید.
هر کدام از این مسیرها، چالشها و راحتیهای خاص خودشان را دارند. در یک پروژهی انفرادی شما کاملاً در کنترل محصول نهایی هستید و میتوانید هر کاری که دلتان میخواهد را انجام دهید. در تیمهای کوچک این آزادی عمل همچنان تا حد زیادی وجود دارد، اما موفقیت یا عدم موفقیت پروژه تضمینشده نیست. در تیمهای بزرگتر شما مجبورید از خط فکری کمپانی تبعیت کنید، اما موفقیت تجاری کمپانی بر عهدهی شما نیست و حتی در صورت ورشکستگی، کمپانی موظف است حقوق شما را پرداخت کند.
اینکه کدام مسیر بهتر است، سوالی است که باید خودتان با توجه به روحیه و تواناییهای خود به آن پاسخ دهید. اما آن چیز که روشن است، این است که شما در هر صورت باید مهارتهای خود را تقویت کنید. اما این مهارتها کداماند؟
مهارتهای لازم برای ورود به بازیسازی: برنامه نویسی
حالا که مسیرهای مختلف ورود به صنعت بازیسازی را بررسی کردیم، وقت آن رسیده که به سراغ مهارتهایی برویم که برای موفقیت در این حوزه نیاز دارید. بازیسازی ترکیبی از هنر، تکنولوژی و خلاقیت است. بنابراین، بسته به اینکه کدام مسیر را انتخاب میکنید، به مهارتهای متفاوتی نیاز خواهید داشت. اما یک سری مهارتهای پایهای هستند که در هر سه مسیر به کارتان میآیند. بیایید این مهارتها را یکییکی بررسی کنیم.
برنامهنویسی یکی از مهمترین مهارتهای بازیسازی است. اگر قصد دارید بازی بسازید (چه انفرادی، چه در یک تیم کوچک یا بزرگ)، باید با یک موتور بازیسازی مثل Unity یا Unreal Engine آشنا باشید. برای یادگیری این موتورها، نیاز به دانش اولیه از زبانهای برنامهنویسی مثل C# (در یونیتی) یا C++ (در آنریل) دارید. اما فقط بلد بودن یک زبان برنامهنویسی کافی نیست! شما باید منطق بازیسازی را هم یاد بگیرید.
برنامهنویسی در بازیسازی شامل بخشهای مختلفی است:
برنامهنویسی گیمپلی: این بخش شامل پیادهسازی مکانیکهای اصلی بازی است. برای مثال، اگر در حال ساخت یک بازی پلتفرمر هستید، باید کدنویسی حرکت شخصیت اصلی، پرش، تعامل با محیط، سیستم امتیازدهی و برخوردها را یاد بگیرید.برنامهنویسی فیزیک بازی: بسیاری از بازیها نیاز به سیستمهای فیزیکی دقیق دارند. مثلاً اگر در حال ساخت یک بازی مسابقهای هستید، باید بدانید که چطور برخورد ماشینها با موانع، اصطکاک لاستیکها روی جاده و حتی وزن ماشینها را شبیهسازی کنید. موتورهای بازیسازی ابزارهایی مثل PhysX (در Unreal Engine) یا Unity’s Rigidbody system را ارائه میدهند که کمک زیادی به این کار میکند.برنامهنویسی هوش مصنوعی (AI): اگر بازی شما دشمنان، NPCها یا حتی همراهان هوشمند دارد، باید بتوانید الگوریتمهای هوش مصنوعی را پیادهسازی کنید. برای مثال، دشمنان در یک بازی مخفیکاری باید بتوانند بازیکن را دنبال کنند، پنهان شدن او را تشخیص دهند و رفتارهای متنوعی داشته باشند. این کار معمولاً با استفاده از تکنیکهایی مثل Finite State Machines (FSM)، الگوریتم A (برای مسیریابی) و یادگیری ماشین در برخی موارد پیشرفتهتر انجام میشود.مدیریت دادهها و ذخیرهسازی: در بسیاری از بازیها، نیاز دارید اطلاعاتی مثل پیشرفت بازیکن، آیتمهای جمعآوریشده یا تنظیمات شخصیسازیشده را ذخیره کنید. این کار معمولاً از طریق فایلهای JSON، دیتابیسهای SQLite یا حتی سیستمهای ذخیرهی ابری انجام میشود.
اما صرفاً یادگیری این بخشها کافی نیست. در دنیای واقعی، برنامهنویسی بازیها با چالشهای زیادی همراه است. یکی از این چالشها بهینهسازی بازی است. اگر کدهای شما بهینه نباشند، حتی یک بازی ساده هم ممکن است روی سختافزارهای ضعیف دچار لگ و افت فریم شود. اینجاست که باید تکنیکهایی مثل Object Pooling (برای مدیریت منابع)، Level of Detail (LOD) در مدلسازی و استفادهی بهینه از پردازنده و کارت گرافیک را یاد بگیرید.
بهترین راه برای یادگیری برنامهنویسی بازی، ساختن پروژههای کوچک است. اول از همه، با یک موتور بازیسازی مثل یونیتی شروع کنید و سعی کنید یک بازی ساده، مثل پینگپنگ یا یک بازی تیراندازی دوبعدی بسازید. بعد از آن، میتوانید وارد پروژههای پیچیدهتر شوید و سیستمهای بیشتری را پیادهسازی کنید.
در نهایت، اگر هدف شما ورود به تیمهای بازیسازی بزرگ است، بهتر است روی تخصصی شدن در یکی از شاخههای برنامهنویسی بازی تمرکز کنید. اما اگر قصد دارید به عنوان یک بازیساز مستقل کار کنید، یادگیری ترکیبی از بخشهای مختلف برنامهنویسی، به شما کمک خواهد کرد که بتوانید بازیهای خودتان را بسازید و منتشر کنید.
مهارتهای لازم برای ورود به بازیسازی: طراحی بازی
طراحی بازی (Game Design) مغز متفکر پشت یک بازی و نقطهای است که ایدههای خلاقانه به یک تجربهی قابل بازی تبدیل میشوند. در این بخش، همه چیز از مکانیکهای گیمپلی، مراحل، سیستمهای پیشرفت، تعاملات بازیکن و حتی داستان بازی تعریف میشود. اگر برنامهنویسی را به عنوان «قلب تپنده» در نظر بگیریم، طراحی بازی همانند روح یک بازی است که آن را زنده و جذاب میکند.
هستهی گیمپلی مهمترین بخش هر بازی است. این همان چیزی است که بازیکن بیشتر وقت خود را صرف تجربهی آن میکند. یک طراح بازی باید بتواند اصلیترین تعاملات بازیکن با محیط را به سادهترین و در عین حال جذابترین شکل ممکن طراحی کند. برای مثال، در بازی Super Mario، هستهی گیمپلی شامل پریدن، دویدن، و جمعآوری سکهها است. همین ایدهی ساده، با ترکیب شدن با طراحی مراحل چالشبرانگیز و قوانین خاص، به یکی از نمادینترین بازیهای تاریخ تبدیل شده است.
یک اشتباه رایج در طراحی بازی این است که تعداد زیادی مکانیک به بازی اضافه شود، بدون اینکه همهی آنها با هم هماهنگ باشند. مکانیکهای بازی باید بهخوبی با یکدیگر ترکیب شوند تا تجربهی بازی روان، لذتبخش و قابل یادگیری باشد.
از سوی دیگر، طراحی مراحل یکی از مهمترین مهارتهای یک طراح بازی است. یک مرحلهی خوب باید تدریجاً مهارتهای بازیکن را به چالش بکشد و حس پیشرفت را القا کند. به عنوان مثال، در Dark Souls، طراحی مراحل به شکلی انجام شده که بازیکن همیشه احساس کند در یک جهان زنده و بهمپیوسته حرکت میکند. در این نوع طراحی، هر مرحله درسهای جدیدی به بازیکن میدهد و بدون اینکه نیازی به آموزش مستقیم باشد، باعث افزایش مهارتهای او میشود.
در بازیهایی مثل Portal، مراحل به شکلی طراحی شدهاند که بازیکن ابتدا اصول مکانیکهای بازی را در محیطی امن یاد میگیرد و سپس در موقعیتهای پیچیدهتری با همان مکانیکها روبرو میشود. این روش باعث میشود که بازیکن به جای احساس گمشدگی، حس پیشرفت و تسلط بر بازی را داشته باشد.
یک طراح بازی باید درک دقیقی از روانشناسی بازیکنها داشته باشد. چرا یک بازیکن بازی را ادامه میدهد؟ چه چیزی او را وادار به بازگشت دوباره به بازی میکند؟ اینجا است که سیستمهای پاداش، چالش، و انگیزههای درونی و بیرونی اهمیت پیدا میکنند.
به عنوان مثال، در بازیهای RPG، سیستمهای پیشرفت مثل دریافت XP، ارتقای مهارتها، و آنلاک کردن آیتمهای جدید بازیکن را به ادامهی بازی ترغیب میکنند. در بازیهای چندنفره مثل Call of Duty، سیستمهای رنکینگ و لیدربوردها به بازیکنان انگیزهی رقابت و پیشرفت میدهند. در بازیهای داستانمحور مثل The Last of Us، انگیزهی بازیکن از طریق پیگیری داستان و رابطهی عاطفی بین شخصیتها ایجاد میشود.
یک بازی عالی، نه خیلی سخت و نه خیلی آسان است. اگر بازی بیش از حد ساده باشد، بازیکن زود خسته میشود، و اگر بیش از حد سخت باشد، ناامید شده و بازی را رها میکند. طراح بازی باید به دقت تعادل بین چالش و پاداش را حفظ کند. برای مثال در بازیهای PvP مثل League of Legends، هر کاراکتر باید قدرت و ضعفهای مخصوص به خود را داشته باشد تا بازی عادلانه بماند. در بازیهای داستانی، سختی باید بهصورت تدریجی افزایش یابد، به گونهای که بازیکن بدون حس ناعادلانه بودن، مهارتهایش را بهبود دهد. در بازیهای بقا (Survival)، منابع و چالشها باید بهگونهای طراحی شوند که بازیکن همیشه حس نیاز به مدیریت منابع و استراتژی داشته باشد.
نهایتاً، هر ایدهای روی کاغذ ممکن است عالی به نظر برسد، اما وقتی در عمل اجرا شود، مشکلات زیادی آشکار میشوند. به همین دلیل، یکی از مهمترین بخشهای طراحی بازی، تست مداوم و اصلاح ایرادات بازی بر اساس بازخوردها است.
در بسیاری از استودیوهای بزرگ، بازیها قبل از انتشار بارها توسط گروههای تستکننده بازی (Playtesters) بررسی میشوند. طراحان بازی باید به بازخوردها توجه کنند و مشکلاتی مثل عدم وضوح اهداف بازی، سطح سختی نامتعادل و مشکلات فنی گیمپلی را برطرف کنند.
طراحان بازی موفق همیشه در حال یادگیری هستند. برای تقویت مهارتهای طراحی بازی به یاد داشته باشید که بازیهای مختلف را به دقت تحلیل کنید، مستندات طراحی بازی را روی کاغذ بنویسید و نقاط ضعف و قوت خود را پیدا کنید، کار با نرم افزارهای نمونهسازی مثل Godot، Unity یا Unreal را تا حدی یاد بگیرید و از منابع آموزشی به روز استفاده کنید.
جمع بندی قسمت دوم
برای اینکه مقاله بیش از حد طولانی و خستهکننده نشود، ادامهی راهنما را برای قسمت سوم نگه میدارم. تا اینجا مواردی چون طرز فکر برنده، آشنایی با موتورهای بازیسازی، استراتژی ورود به صنعت بازیسازی و مهارتهایی چون برنامهنویسی و طراحی بازی را پوشش دادیم. در قسمت آینده به ادامهی معرفی این مهارتها و نکات قابل اجرا و عملی در مورد آنها خواهیم پرداخت.
هر نظری که در مورد مقاله دارید در بخش نظرات با ما در میان بگذارید. مطمئن باشید از نظرات شما برای نگارش ادامهی این سری استفاده خواهیم کرد!
طراحی و اجرا :
وین تم
هر گونه کپی برداری از طرح قالب یا مطالب پیگرد قانونی خواهد داشت ، کلیه حقوق این وب سایت متعلق به وب سایت تک فان است
دیدگاهتان را بنویسید