توضیحات مهم قبل از شروع
تا اینجا با مفاهیم مختصری از بازیسازی آشنا شدیم و دربارهی موتورهای بازیسازی هم اطلاعاتی به دست آوردیم. با این وجود برای وارد شدن به حرفهی بازیسازی دانستن یک سری از توضیحات دیگر نیز لازم است که در این مطلب به آنها میپردازیم.
بازیسازی AAA و بازیسازی مستقل
به طور کلی استودیوها یا گروههای ساخت بازیهای ویدیویی به دو دسته تقسیم میشوند:
استودیوهای AAA (تریپل اِی خوانده میشود): متشکل از افراد بسیار حرفهای و متخصص بوده که مشغول به توسعهی بازی برای آخرین کنسولهای روز بازار هستند. این بازیها سرآمد کیفیت و گرافیک هستند. بنابراین این شرکتها به هر بازی بودجهی بسیار زیادی اختصاص داده و درآمد بسیار زیادی (حتی بیشتر از هالیوود) کسب میکنند.
استودیوهای مستقل (indie): در این استودیوها تیم توسعهدهنده کوچکتر از تیمهای بازیسازی AAA بوده و حتی میتواند تنها از یک نفر تشکیل شده باشد. افراد توسعهدهنده در این حالت از تخصص و بودجهی خیلی کمتری برخوردار هستند و معمولاً برای کنسولهای سادهتر و موبایل اقدام به توسعه میکنند.
این مقایسه سوال مهمی را در ذهن بیشتر افراد ایجاد میکند:
آیا ضعیفتر بودن استودیوهای مستقل نسبت به AAA به معنای شکست این استودیوها است؟ مطلقاً خیر؛ بازیهای بسیار زیادی وجود دارد که توسط استودیوهای مستقل توسعه داده شدهاند و به موفقیت رسیدهاند. همچنین بازیسازان موفق AAA معمولاً از گروههای مستقل شروع کردهاند؛ بنابراین چندان اشتباه نیست اگر بگوییم راه موفقیت در بازیسازی از مسیر بازیسازی مستقل میگذرد.
شروع یک استودیوی مستقل
تیمهای بازیسازی مستقل معمولاً از گردهمایی چندین همکلاسی یا دوست به وجود میآیند. به همین دلیل فضای دوستانهای بر آنها حاکم است. برای وارد شدن به یک تیم بازیسازی مستقل نیازی به دانش خیلی زیاد وجود ندارد و مثل شرکتهای AAA افراد از یک فیلتر بسیار سخت و تخصصی برای استخدام گذرانده نمیشوند. هر کس میتواند استودیوی مستقل خود را ایجاد کرده و به توسعهی بازی بپردازد. این تیمها از حمایت و شهرت استودیوهای AAA برخوردار نیستند اما در صورت موفقیت میتوانند توجه publisherها را به خود جلب کنند.
publisher چیست؟
پابلیشر یا ناشر شرکتی است که اغلب با تیمهای بازیسازی مستقل که چندان شناخته شده نیستند اما از کیفیت لازم برخوردارند قرارداد همکاری میبندد. به موجب این قرارداد ناشر (که از شهرت زیادی برخوردار است) بازی استودیوی مستقل را از طرف خودش منتشر میکند. این عمل باعث میشود تا تعداد نصب و درآمد بازی چندین برابر حالت عادی بشود و استودیوی مربوطه به شهرت خوبی برسد. پابلیشر در ازای این کار بخشی از درآمد حاصله را به عنوان سهم خود کسر میکند.
شاید تاکنون لوگوی Ketchapp را در ابتدای بازیهای زیادی دیده باشید. این شرکت یک پابلیشر است.
مزایای بازیسازی مستقل
فضای مناسبی برای یادگیری تخصص و کسب مهارت و تجربه است که میتواند تاثیرات مثبتی در به دست آوردن مشاغل این حوزه داشته باشد.
تشکیل تیم مستقل هزینهبر نیست (و یا هزینهی آن بسیار پایین است).
در صورت موفقیت، تیم از شهرت زیادی برخوردار شده که زمینهی همکاری جدی در این حوزه و تبدیل شدن به یک استودیوی بازیسازی حرفهای را فراهم میآورد.
موفقیت یک تیم کوچک بازیسازی مستقل میتواند مقدمهای برای تشکیل یک استودیوی بازیسازی حرفهای باشد.
معایب بازیسازی مستقل
به دلیل دوستانه بودن فضا، ممکن است برای برخی از اعضای تیم جنبهی سرگرمی داشته باشد و جدی گرفته نشود.
مهارت اعضای تیم به طور معمول از اعضای تیمهای حرفهای بازیسازی کمتر است و به همین جهت ممکن است بخشی از پروژه نیازمند برونسپاری شود.
مشاغل تخصصی در بازیسازی
در مواردی که تعداد اعضای تیم بازیسازی بیشتر از یک نفر میباشد بهتر است هر کس بسته به مهارتهایی که بیشتر در آنها تخصص دارد بخشهای متفاوتی از فرآیند توسعه را انجام دهد. با زیادتر تعداد اعضا و تخصصیتر شدن آنها مرز بین نقش هر فرد در توسعه مشخصتر شده و مشاغل تخصصی بازیسازی به وجود میآیند.
هر استودیو ممکن است تعریف خودش را از این مشاغل داشته باشد و وظایف متفاوتی را به هر شغل محول کند. بنابراین تعریف دقیق این مشاغل چندان ساده نیست. با این وجود تعاریف زیر تا حدودی دارای عمومیت هستند:
طراح بازی (Game Designer): کلیدیترین نقش در تولید یک بازی است؛ در واقع طراح بازی شخصی است که خالق قوانین، مکانیک و جهان بازی میباشد. به عنوان مثال طراح بازی سوپر ماریو تعیین کرده است که کاراکتر هنگام برخورد با قارچها جان خودش را از دست بدهد و با پریدن بر روی آنها بتواند نابودشان کند.
طراح مرحله (Level Designer): شخصی است که چیدن اجزای بازی در صحنه را بر عهده دارد. در مثال بازی سوپر ماریو طراح مرحله تعیین میکند که قارچها در چه مناطقی باشند یا چینش سکوها به چه شکل باشد.
برنامهنویس بازی (Game Programmer): شخصی است که کدنویسی بازی را بر عهده دارد.
کانسپت آرتیست (Concept Artist): هنرمندی است که اجزای بازی را طراحی میکند. این شغل لزوماً به آشنایی با طراحی دیجیتال و گرافیک کامپیوتری احتیاج ندارد و بیشتر مهارت هنری فرد مورد استفادهی تیم است. بدیهی است که در این صورت دیجیتالی کردن آثار هنری برعهدهی شخص دیگری خواهد بود.
تکنیکال آرتیست (Technical Artist): شخصی است که در کنار هنرمند بودن با اصول تکنیکال گرافیک کامپیوتری نیز آشنایی دارد.
مرحلهی پیشتولید یک بازی ویدیویی
قبل از شروع ساخت هر بازی مرحلهی پیشتولید آن در برابر توسعهدهندگان قرار دارد. این مرحله همانطور که از نامش مشخص است باید قبل از روند اصلی توسعهی بازی طی شود و دو بخش اصلی دارد.
بخش اول: نوشتن GDD و TDD
GDD که مخفف عبارت Game Design Document بوده و معادل فارسی «بازینامه» برای آن در نظر گرفته شده است پروندهای است که شباهت زیادی به فیلمنامه دارد و در آن داستان بازی، شخصیتها، مراحل، ساختار و دکوپاژ صحنه، رفتار هر گیمآبجکت (اشیاء درون بازی) و… به صورت مکتوب و تصویری توضیح داده شده است. بازینامه برخلاف فیلمنامه قوانین بازی، مکانیک اجزا و جهان بازی و در مواردی نحوهی کدنویسی برای رسیدن به رفتار موردنظر game designer را نیز در بر داشته و به همین دلیل پیچیدگی بیشتری نسبت به یک فیلمنامهی معمولی دارد.
ساختارهای استفاده شده در بازی مشهور Monument Valley؛ از طرحهای اولیه در GDD تا اجرای نهایی
دو صفحه از GDD بازی The Room که در آن مکانیک مدلهای سهبعدی تشریح شده است.
TDD نیز که مخفف عبارت Technical Design Document است مشابه GDD بوده اما فنیتر و تخصصیتر میباشد.
بخش دوم: تولید و یا جمعآوری assetهای موردنیاز بازی
همانطور که قبلتر اشاره شد asset به فایلهایی گفته میشود که برای شروع ساخت بازی موردنیاز هستند اما تولیدشان ارتباطی به بازیسازی ندارد. بدیهی است که بهترین راه به دست آوردن assetهایی با کیفیت مطلوب برونسپاری تولید آنها به افراد متخصص و یا استفاده از assetهای آماده است. در ادامه به بررسی سه نوع asset که بیشترین استفاده را در بازیسازی دارند میپردازیم:
۱- اسپرایتها: اسپرایتها (sprite) فایلهای تصویری هستند که معمولاً فرمت آنها png بوده و به طور مستقیم در بازی رندر میشوند. اسپرایتها میتوانند قسمتی از محیط ساکن صحنهی بازی و یا یک فریم از انیمیشنی خاص باشند. دلیل استفاده از فرمت png حجم کم، کیفیت بالا، قابلیت فشردهسازی فایل بدون افت ظاهر و پشتیبانی از شفافیت پیکسل (کانال آلفا) میباشد.
نمونهای از اسپرایت محیط؛ معمولاً از طراحان محیط خواسته میشود تا اشیای موجود در محیط را در لایههای جداگانه (لایهباز) طراحی کنند تا امکان متحرکسازی جداگانهی آنها وجود داشته باشد. در صورتی که هر لایه با سرعت بیشتری نسبت به لایههای عقبترش حرکت کنند (پارالاکس) احساس سهبعدی بودن محیط به کاربر القا میشود.
نمونهای از اسپرایت فریمهای انیمیشن راه رفتن یک شخصیت کارتونی (اسپرایت شیت)؛ با تکه تکه کردن این اسپرایت و نمایش پشت سر هم تکهها انیمیشن ایجاد میشود.
نمونهای از اسپرایت کات اوت؛ از آنجایی که کشیدن فریم به فریم انیمیشن طاقتفرسا و طولانی است برخی به استفاده از انیمیشنهای کات اوت روی میآورند. در این سبک تکههای شی موردنظر انیماتور به صورت جداگانه طراحی میشوند و سپس با کنار هم قرار گرفتن و حرکت نسبت به یکدیگر انیمیشنسازی صورت میپذیرد. در گذشته از مقوا برای این نوع انیمیشنسازی استفاده میشده است. انیمیشن شکرستان یکی از نمونههای موفق این سبک در ایران است.
نکته
در صورت نیاز به اسپرایت آماده سایتهایی مانند www.freepik.com آرشیو جامعی از اسپرایتهای با کیفیت را به رایگان در اختیار کاربران قرار میدهند.
۲- مدلهای سهبعدی و انیمیشن آنها: در صورتی که بخواهیم یک بازی سهبعدی بسازیم به مدلهای سهبعدی از اشیای موجود در جهان بازی احتیاج خواهیم داشت. ساخت این مدلها در نرمافزارهایی به نام نرمافزارهای مدلسازی صورت میپذیرد که مثل یک کارگاه مجازی مجسمهسازی عمل میکنند.
بعد از پایان یافتن مراحل ساخت مدل، متریال (material) یا جنس بر روی آن پیادهسازی میشود. متریال تعیین میکند که مدل سهبعدی چه حالتی داشته باشد و چگونه نور را انعکاس دهد. به عنوان مثال یک گوی شیشهای و یک گوی فلزی هر دو مدل کره هستند که به یکی متریال شیشه و به دیگری متریال فلز اعمال شده است.
معمولاً نرمافزارهای مدلسازی خود دارای گسترهی زیادی از متریالهای موجود در طبیعت هستند. اما در صورتی که متریال موردنظر ما وجود نداشته باشد (به عنوان مثال شهاب سنگی ناشناخته در یک بازی را در نظر بگیرید که در برابر نور واکنشی متفاوت از اجرام زمینی نشان میدهد) امکان ساخت متریال جدید با استفاده از کدنویسی وجود دارد. به این کدنویسی اصطلاحاً شیدرنویسی و به اسکریپت حاصل شیدر (shader) گفته میشود. شیدرنویسی امکان ایجاد پیچیدهترین متریالها را فراهم میکند.
نکته
پردازش متریالها با استفاده از GPU (پردازندهی کارت گرافیک) صورت میپذیرد.
ممکن است یک متریال به تصویری احتیاج داشته باشد که مدلها را توسط آن بپوشاند. برای مثال اگر بخواهیم متریال آسفالت یا سنگ مرمر را به یک مدل سهبعدی نسبت بدهیم باید یک فایل تصویری از طرح آسفالت یا مرمر داشته باشیم که مدل توسط آن سنگفرش شود. به این فایل تصویری اصطلاحاً تکسچر (texture) گفته میشود.
یک فایل تصویری در یونیتی میتواند به عنوان تکسچر یا اسپرایت وارد شود.
موتور یونیتی بسته به نوع پروژه به صورت خودکار دربارهی اسپرایت یا تکسچر بودن تصاویر تصمیمگیری میکند. اگر پروژه دوبعدی باشد تصاویر را به عنوان اسپرایت و اگر پروژه سهبعدی باشد تصاویر را به عنوان تکسچر وارد پروژه میکند. البته امکان تغییر دستی نوع تصاویر وجود دارد.
۳- صدا و موسیقی: برای بهترین نتیجه همچنان کمک گرفتن از یک صدابردار و آهنگساز توصیه میشود؛ اما در صورت عدم دسترسی به این افراد سایتهایی برای دریافت صداهای مناسب بازی وجود دارند. سایت www.freesound.org آرشیو کاملی به شمار میرود.
انواع بازیهای ویدیویی از نظر گرافیک
یک تیم بازیسازی قبل از شروع ساخت یک بازی جدید باید سبک بازی خود را (از نظر گرافیک) انتخاب کند. در این میان انتخاب بین دوبعدی و سهبعدی بودن بازی نسبت به سایر انتخابها کلیدیتر است.
در بازی دوبعدی المانهای بصری اسپرایتها هستند و در بازی سهبعدی این المانها مدلهای سهبعدی میباشند.
در اکثر پروژههای بازیسازی مستقل توسعهدهنده به استفاده از المانهای سهبعدی وارد نمیشود. چرا که هزینهی زمانی و مالی پروژه را بالا میبرد؛ مدلسازی نسبت به طراحی دوبعدی پیچیدهتر بوده و علاوه بر گرافیست به یک مدلساز متخصص در این زمینه نیز نیاز خواهد شد. همچنین استفاده از مدلهای سهبعدی در بازیهای موبایل نیازمند بهینهسازی مدلها برای جلوگیری از مصرف زیاد حافظه و پردازش میباشد.
طبق تجربه ساخت بازی دوبعدی (بهخصوص پلتفرم اندروید) در ایران بهتر از بازی سهبعدی جواب داده است.
این به دلیل پیچیدگی زیاد بازی سهبعدی و فراگیر نبودن تخصص مدلسازی سهبعدی است. البته این جمله به معنی بیکیفیت بودن بازیهای دوبعدی نیست؛ چرا که بسیاری از بازیهای محبوب (حتی جهانی) دوبعدی هستند. ضمن این که بعضی از aasetهای دوبعدی تا حدی هنرمندانه طراحی میشوند که حتی از بازیهای سهبعدی بسیار حرفهای هم چشمنوازتر میشوند.
به طور کلی برای پلتفرم اندروید بازیسازی دوبعدی بیشتر توصیه میشود. دلیل دیگر این توصیه ضعیفتر بودن پردازندههای موبایل نسبت به کنسولها و PC میباشد. البته این بدان معنا نیست که توسعهی بازی سهبعدی برای موبایل ایدهی خوبی نیست؛ بلکه به این معناست که بازیهای دوبعدی روی موبایل سرعت، عملکرد و تجربه کاربری بهتری دارند.
بازی سهبعدی
مرسومترین نوع بازی ویدیویی است. در این نوع بازی از مدلهای سهبعدی، تکسچر، شیدر و… استفاده شده و جهان بازی هم سهبعدی است.
بازی دوبعدی Side Scrolling
در این نوع بازی جهان سهبعدی بازی از پهلو نظاره میشود. بنابراین عمق حذف شده و بازی در عمل دوبعدی محسوب میشود. اکثر بازیهای پلتفرمر (از جمله سوپر ماریو) و بازی Neighbors From Hell در این دسته قرار میگیرند.
بازی دوبعدی Top Down
در این نوع بازی جهان سهبعدی از بالا رصد میشود. بنابراین در این نوع سبک نیز ارتفاع حذف شده و بازی دوبعدی محسوب میگردد. معمولاً بازیهای Space Shooter از این سبک بهره میبرند. یک مثال معروف بازی Chicken Invaders است.
بازی دو و نیم بعدی (۲٫۵D)
در این سبک جهان بازی و اشیای آن سهبعدی به نظر میرسند در حالیکه این طور نیست. برای تمایز یک بازی دو و نیم بعدی از یک بازی سهبعدی باید به این نکته توجه کرد که اشیای سهبعدی در بازیهای دو و نیم بعدی امکان چرخش نداشته و ما همواره فقط از یک زاویهی خاص آنها را مشاهده میکنیم.
برای ساخت یک بازی در این سبک ابتدا اشیای بازی در نرمافزارهای مدلسازی ساخته شده و سپس از زاویهی موردنظر طراح بازی از آنها فایل تصویری png خروجی گرفته میشود. بنابراین در این حالت هیچ رندری درون صحنهی بازی صورت نمیگیرد و assetها به اصطلاح pre-render شده هستند.
تعیین پلتفرم
یکی از مهمترین تصمیماتی که یک گروه بازیسازی باید بگیرد این است که بازی در نهایت برای چه پلتفرمی عرضه شود. اگر قصد داشته باشید بازی خود را در بازار ایران عرضه کنید به دو گزینه محدود خواهید شد: ویندوز و اندروید.
انتشار بازی برای پلتفرم PC در ایران
در صورتی که قصد داشته باشید بازی خود را برای ویندوز منتشر کنید راه اول فروش بازی به صورت فیزیکی (DVD) است و دومین راه استفاده از مارکتهای ایرانی موجود برای ویندوز (که سعی کردهاند مشابه سرویس Steam عمل کنند اما هنوز به شهرت لازم دست نیافتهاند).
به دلایل بسیار زیادی انتشار بازی برای PC در ایران در حال حاضر تصمیم مناسبی نیست و با چالشهای جدی روبهرو است.
انتشار بازی برای پلتفرم اندروید در ایران
از سوی دیگر منتشر کردن بازی برای پلتفرم اندروید در ایران میتواند موفقیت زیادی به همراه داشته باشد. بیشتر از نیمی از جمعیت ایران صاحب اسمارت فون اندرویدی هستند که هر کدام از این دستگاهها پتانسیل آن را دارند که میزبان بازی شما شوند. پرداخت برای بازیهای اندرویدی ایرانی (بر خلاف بازیهای PC ایرانی) در فرهنگ امروز ایران پذیرفته شده است. یک بازیساز ایرانی میتواند به راحتی بازی خود را در مارکتهای اندرویدی ایرانی منتشر کرده و کسب درآمد کند.
میزان سهم پلتفرمهای موبایل، کنسول و پیسی از درآمد کل بازیسازی در سالهای مختلف؛ طبق برونیابی این نمودار سهم بازیهای موبایلی از این درآمد در هر سال بیشتر میشود.
به طور کلی سه راه برای کسب درآمد از بازی اندرویدی وجود دارد:
قرار دادن بازی به صورت غیررایگان (premium) در مارکتهای اندروید: در این روش کاربر در ازای پرداخت مبلغی که تعیین کردهاید میتواند بازی را دریافت و نصب کند. به دلیل آن که کاربران قبل از پرداخت وجه امکان مشاهده و امتحان کردن بازی را ندارند معمولاً از بازیهای غیررایگان استقبال زیادی نمیشود؛ مگر آن که استودیوی بازی به سطحی از شهرت و قابل اطمینان بودن رسیده باشد که کاربران حاضر به چنین ریسکی باشند.
استفاده از پرداخت درون برنامهای (In App Purchase): در این روش کاربر میتواند بدون پرداخت هیچ هزینهای بازی را بر روی گوشی خود نصب کند. اما بازی کاملاً رایگان نبوده و کاربر باید به ازای خدمات مشخصی درون بازی (مثل باز شدن قفل یک مرحله، امکان استفاده از یک سلاح خاص و…) هزینه پرداخت کند. همچنین برای ارزشگذاری خدمات درون بازی میتوان یک واحد پول در جهان بازی خلق کرد (مثل جم در کلش آف کلنز) و در ازای پرداخت پول واقعی موجودی پول اختراع شده در جهان بازی را برای کاربر افزایش داد. به چنین بازیهایی freemium (که ترکیب واژههای free و premium است) گفته میشود. مزیت اصلی بازیهای freemium نسبت به بازیهای premium این است که در بازیهای premium کاربر تنها یک بار اقدام به پرداخت هزینه میکند در صورتی که در یک بازی freemium با طراحی صحیح میتوان کاربر را به بیش از یک بار پرداخت تشویق نمود.
کسب درآمد از طریق نمایش تبلیغات: شما میتوانید علاوه بر اضافه کردن قابلیت پرداخت درون برنامهای به بازی خود از نمایش تبلیغ درون آن نیز کسب درآمد کنید. سرویسدهندههای مختلفی برای این کار وجود دارند. طرز کار این سرویسها به این صورت است که توسعهدهنده در آنها ثبت نام میکند، سپس با قرار دادن کتابخانهی سرویس درون پروژهی بازی امکان نمایش تبلیغ توسط سرویسدهنده را فراهم میکند. در این هنگام سرویسدهنده از سایر افراد تبلیغ دریافت کرده و در مکان رزرو شدهی بازی نمایش میدهد. در نهایت بخشی از هزینهی دریافت شده از تبلیغدهنده به سازندگان بازی پرداخت میشود.