در آخرین مقاله از بخش اول سری مقالات آموزش بازی سازی در نظر داشتیم که به معرفی تعدادی از منابع و مراجع موجود در زمینهی آموزش ابعاد مختلف بازیسازی بپردازیم اما به دلیل پراکندگی بیش از حد این منابع و یکی دو دلیل دیگر تصمیم گرفتیم از نگاه دیگری این موضوع را دنبال کنیم. البته تا انتهای مقاله چند مورد جذاب به شما معرفی خواهیم کرد اما هدف اصلی مقاله بیان نکاتی است که خود شما بوسیلهی آنان بتوانید به راحتی آنچه را نیاز دارید به دست آورید. به قول معروف تصمیم گرفتیم به جای اینکه ماهی را در اختیار شما قرار دهیم، مهارت ماهیگیری را به شما آموزش دهیم تا دیگر از جهت استفاده از منابع آموزشی و نحوهی به کارگیری آنها به مشکل نخورید.
معمولا برای هر بخش از فرآیند بازیسازی نوع مشخصی از منابع در اولویت قرار میگیرد. مثلا در یادگیری بخشهای مختلف موتورهای بازیسازی معمولا سایتهای خود سازندهها و منابع آموزشی موجود در آنها میتواند به عنوان اولین و به نوعی جامعترین منبع آموزشی و همچنین محتوایی مورد استفاده قرار بگیرد ولی مثلا در بحث یادگیری نرمافزارهای طراحی معمولا مجموعه ویدئوهای ضبط شدهی افراد حرفهای در این زمینه حرف اول را میزند. ویدئوهایی که معمولا از سطحهای ابتدایی شروع کرده و کمکم وارد مباحث پیچیده میشوند. البته بخشی از منابع را نیز سایتهای پرسش و پاسخ تشکیل میدهند که اگرچه هیچ عنوان آموزشی منسجمی در آنها پیدا نمیشود، اما در ادامه و بر حسب تجربه خواهید فهمید که بخش بزرگی از دانستههای خود را از طریق آنان کسب خواهید کرد. در یک نگاه کلی اگر بخواهیم مقداری واقعبین باشیم باید درک کنیم که امروزه تقریبا در هر موضوعی که بخواهیم میتوانیم منابع متنی و ویدئویی بسیاری را به دست آوریم که بعضا گستردگی و تنوع همین منابع، موجب سردرگمی مخاطبان میشود و حجم بالای آنان مسیر یادگیری را دچار اختلال میکند. برای همین توجه به چندین نکته در این شرایط میتواند برای شما بسیار مفید باشد.
اولین و مهمترین نکته در زمینهی یافتن آموزش این است که تا حد ممکن مسائل مورد نیاز خودتان را بخشبندی کرده و از کلگویی پرهیز کنید. به طور دقیقتر اینکه اگر هدف شما ساخت یک بازی دوبعدی با موتور یونیتی و آن هم با یکسری ویژگیهای مشخص است، نباید کلیدواژهی شما برای جستوجوی آموزش «یادگیری موتور یونیتی» یا «ساخت یک بازی دوبعدی با یونیتی» باشد. این کلیدواژه بسیار کلی و مبهم است و آموزشهایی که برای شما فهرست میشود میتواند در هر زمینهی باشد. حتی اگر همانند کلیدواژه دوم مقداری هم به موضوع نزدیک باشد اما معلوم نیست که هدف سازندهی آموزش و بازی که او میسازند چقدر به هدف ما و بازی که میخواهیم بسازیم نزدیک است و برای همین ممکن است از مجموع ۱۰ ساعت ویدئوهای آموزشی آن فرد، تنها یکی دو ساعت آن به کار ما بیاید.
اولین و مهمترین نکته در زمینهی یافتن آموزش این است که تا حد ممکن مسائل مورد نیاز خودتان را بخشبندی کرده و از کلگویی پرهیز کنید
مثلا بازی Floppy Bird را در نظر بگیرد و فرض کنید که میخواهیم آن را با موتور یونیتی بسازیم. تنها کافی است برای این بازی جدای از آشنایی اولیه با موتور بازیسازی، بخشهایی از قبیل ورودی گرفتن از صفحهی لمسی، نحوهی کار با اسپرایتها و همچنین استفاده از فیزیک دوبعدی در یونیتی را یاد بگیریم. شاید موارد گفته شده دقیقا اسم همان بخش در یونیتی را نشان ندهند اما دقیقا مشخص میکنند که ما باید چه مواردی را از این موتور یادبگیریم. اینگونه یادگیری از چند جهت اهمیت دارد. اول اینکه دیگر شما بیجهت روی موضوعاتی که فعلا به کار شما نمیآید وقت نگذاشته و به جای آن میتوانید بیشتر روی پروژهي خودتان وقت بگذارید. و دوم اینکه پس از رعایت چندین بارهی این مهم مشاهده خواهید کرد که چگونه و آن هم به صورت پروژه محور، توانستهاید بخش زیادی از یک موتور پیچیده را یاد بگیرید، چیزی که در واقعیت باید برای یادگیری آن هزینهی بسیاری کنید. در این زمینه بسیار پیش میآید که افراد بدون هدف سعی میکنند صفر تا صد یک نرمافزار یا یک موتور بازیسازی را یاد بگیرند که کار بسیار غلطی است و هیچگاه نتیجهبخش نیز نخواهد بود. جدای از این بسیاری از نرمافزارها چند کاربرده هستند و منطقی نیست که بخواهیم با چنین سیاستی به یادگیری این نرمافزار بپردازیم. برای همین اولین گام در زمینهی مراجعه به منابع و مراجع آموزشی مشخص کردن دقیق و مورد نیازهای خودمان است.
نکتهی بعدی توجه به جایگاه و کاربرد انواع آموزشهای تولیدی است. شاید بیشتر ما مخاطب آموزشهایی هستیم که توسط افرادی خارج از تیم توسعهی نرمافزار مورد نظر ما تولید شدهاند (همانند آموزشهای سایتهای Tutplus، Pluralsight و Lynda) اما امروزه بخش مهمی از آموزشهای هر نرمافزار را آموزشهای سازندگان آن نرمافزار دربرمیگیرد. معمولا اگر به دنبال مواردی از این قبیل هستید که فلان نرمافزار چه قابلیتهایی دارد یا مثلا فلان ابزار موجود درون نرمافزار چه کارهایی میتواند انجام دهد، بهتر است اولویت شما مراجعه به آموزشهای آماده شده توسط سازندهی نرمافزار باشد که معمولا درون سایت سازنده و در صفحهی نرمافزار مورد نظر قرار داده شده است. اما اگر به دنبال یادگیری یک روش و یا تکنیک برای انجام یک فرآیند درون نرمافزار هستید، بهتر است که از آموزشهای نوع دوم استفاده کنید. معمولا سازندهها بهتر از هر کس دیگری با قابلیتها و محدودیتهای ابزارهای تولیدی خودشان آشنایی دارند و به دلایل کاملا واضح تجاری نیز سعی میکنند در سادهترین حالت ممکن محصول خود و ابزارهای درون آن را معرفی کرده و در مورد تواناییهای آنان برای مخاطبان خود صحبت کنند. برای همین معمولا بهترین گزینه برای رسیدن به پاسخ این سوال که «این ابزار به چه کاری میآید؟»، مراجعه به اسناد و آموزشهای سازندهی نرمافزار است.
اما در مقابل اگر به دنبال یافتن پاسخی برای سوالهایی از این قبیل هستید که «فلان موضوع به چه روشی انجام میشود؟» یا «فلان نمونه با چه روشی تولید شده است؟» بهتر است به آموزشهایی مراجعه کنید که توسط حرفهایها و علاقمندان آن نرمافزار تهیه شده است. دلیل آن هم کاملا واضح است. مثلا هیچگاه سازندهها در زمینهی تکنیکهای مدلسازی آموزش تهیه نمیکنند اما اگر به ویدئوهای معرفیهای نرمافزارهای آنان نگاه کنید مشاهده میکنید که میگویند شما با این ابزار درون نرمافزار ما میتوانید مدلسازی را با فلان روش انجام دهید. حال شما آزادید که فلان روش را از منبع دیگری یادگرفته و از این ابزار استفاده کنید.
البته در مورد موتورهای بازیسازی این مسئله مقداری متفاوت است. به دلیل رقابت همیشگی که میان موتورهای بازیسازی در جریان است، معمولا سازندههای آنان مجموعههای کاملی از آموزشهای مرتبط با موتور خود را منتشر میکنند تا هر کسی بتواند در سریعترین زمان ممکن حداقل با اصول اولیه کار با موتور بازیسازی آنان آشنا بشود. تنها کافی است نگاهی به بخشهای آموزشی مربوط به دو موتور بازیسازی یونیتی و آنریل بیاندازید تا این موضوع را درک کنید (برای رفتن به صفحات مربوطه میتوانید روی نام هر موتور کلیک کنید). در بخش آموزشی هر دوی این موتورها جدای از اسناد و ویدئوهای فراوان آموزشی که وجود دارد، نمونههای از پیش ساخته شدهای هم وجود دارد که بسیار کاربردی هستند. البته در این زمینه موتور آنریل یک سر و گردن از یونیتی جلوتر است و واقعا نمونههای از پیش ساخته شدهی آن متنوعتر و چشمنوازتر هستند. شما به راحتی میتوانید این نمونهها را به رایگان دریافت کرده و با آنان بسیاری از مفاهیم به خصوص پیچیده را در عمل یاد بگیرید یا از مصالح به کار رفته در ساخت آنان استفاده کرده و بازی خودتان را بسازید. با این حال باز هم نمیتوان از تاثیر آموزشهای موجود در سراسر وب صرف نظر کرد اما توجه داشته باشید که بیشتر برای یادگیری روشها و تکنیکها سراغ چنین آموزشهایی بروید و به دنبال این نباشید که صفر تا صد انجام یک کار را از طریق آنها فرابگیرد. شخصا معتقدم اگر هر فرد در کنار پشتکار کافی، ذهن گیرایی هم برای یادگیری مفاهیم داشته باشد، به راحتی میتوان به وسیلهی آموزشهای خود سازندهها و اسناد درون سایت سازنده، بخش بزرگی از هر نرمافزار را یاد گرفت. البته مطالعهی محض کافی نیست و باید چندین برابر مدت زمان آموزشها را به تمرین عملی پرداخت.
مسئلهی بعدی در این زمینه این است که بخش مهمی از دنیای بازیسازی را مهارتهای مختلفی در برمیگیرد که هویتی مهمتر از نرمافزارها و موتورهای بازیسازی دارند. مثلا طراحی یک مرحله چیزی نیست که در گرو کار با موتور یونیتی یا آنریل باشد، بلکه مهارتی است که هر فرد در چینش مراحل و طراحی بخشهای مختلف بازی در اختیار دارد. جامعترین منابعی که در این مشاهده کردم کتابهایی است که در این زمینه نوشته شدهاند. شما آزادید که در این زمینه در وب جستوجو کنید و ببینید که آیا همانند نرمافزارها و موتورهای بازیسازی مجموعهی منسجمی در زمینهی آموزشی مثلا طراحی مرحله یا طراحی سیستمهای ارتقا وجود دارد. در این زمینهها مطالب پراکنده بسیار است اما اینکه مجموعهی منسجمی در این زمینه وجود داشته باشد، شخصا هنوز مشاهده نکردم مگر اینکه منبع مورد نظر یک کتاب باشد. در این کتابها که تقریبا نسخهی الکترونیکی همهی آنها موجود است، از پایهترین مسائل موجود در زمینهی طراحی بازی از قبیل تحلیل رفتار مخاطب و … تا هماهنگی بخشهای مختلف بازی صحبت شده است. باید درک کنیم که بعضی از موضوعات همانند مهارت طراحی یک بازی چیزی نیست که در قالب یک سری ویدئوی چند قسمتی گنجانده شده و برای فروش قرار داده شود. در این زمینه بخشی از مطالب را کارهای تحقیقی و بخشی دیگر را موارد تجربی تشکیل میدهد که حاصل تمامی اینها سرانجام در بهترین شکل خود یعنی یک کتاب گردآوری شده و سپس در اختیار شما قرار میگیرد. شما میتوانید با مطالعه این کتابها و سپس عملی کردن آنها در یک پروژه، قدمهای مورد نیاز برای تبدیل شدن به یک طراح بازی را بردارید. معمولا برای رسیدن به این مهم باید حداقل یا یک موتور بازیسازی نیز آشنا باشید که میتوانید براساس گفتههای قبلی آن را نیز یاد بگیرید.
اما از کتابهایی که در این زمینه وجود دارند میتوانیم به The Art of Game Design اثر Jesse Schell ، همچنین Game Mechanics: Advanced Game Design اثر Ernest Adams و Joris Dormans و Ultimate Game Design اثر McGraw-Hill اشاره کنیم. البته کتابهای مشهور دیگری هم وجود دارد اما دلیل معرفی این سه مورد در کنار ویژگیهای شاخص هر کدام، امکان دسترسی به نسخههای رایگان الکترونیکی آنان است. البته باید توجه کنید که کسب مهارتهایی از قبیل طراحی مرحله یا به طور کلیتر طراحی بازی بیشتر از آنکه متکی بر دانش نظری باشد، تکیه بر تجربهی عملی دارد اما برای کسانی که میخواهند در این زمینه اطلاعت ارزشمندی به دست آورند، این سه کتاب میتواند بسیار کارگشا باشند. البته در کنار این کتابها میتوانید به کانال گروه Extra Credit در یوتیوب هم مراجعه کنید که مطالب بسیار جالبی را در این زمینه آماده و منتشر میکند.
اما از تمامی موارد گفته شده تا الان که بگذریم باید توجه داشته باشید که بخش با ارزشی از دانستههای شما در تقابل با مشکلات ریز و درشتی شکل میگیرد که در حین فرآیند توسعه بازی با آنها مواجه خواهید شد و بعضا برای یافتن راهحل آنان مجبور میشوید ساعتهای فراوانی را به مانیتور خود خیره شوید. البته توصیه ما به شما این است که هیچگاه بیش از یک یا دو ساعت زمان را صرف مشکلی که آن را درک نمیکنید نکنید و به جای آن سعی کنید پاسخ پرسش خود را از طریق دیگران به دست آورید. در ۹۹/۹۹ درصد مواقع شما اولین کسی نیستید که با چنین مشکلاتی روبرو میشوید و برای همین کسانی قبل از شما برای یافتن پاسخ اقدام کردهاند. بسته به زمینهای که در آن فعالیت میکنید سایتهای مختلفی وجود دارد و شما میتوانید در آنها به دنبال راهحل مشکل خود باشید. مثلا در زمینهی برنامهنویسی سایت Stackoverflow بسیار معروف است. همچنین در زمینهی توسعه بازی سایت gamedev میتواند گزینهی مناسبی در این زمینه باشد اما موضوعی که از تمامی این زمینهها مهمتر است، نحوهی پرسیدن یک سوال خوب است. اگر شما بتوانید چنین مهارتی را کسب کنید، نه تنها میتوانید تمامی مشکلات خود در زمینهی توسعهی یک بازی را به سرعت برطرف کنید، بلکه در دیگر زمینههای موجود در زندگی خودتان نیز میتوانید بسیار موثرتر عمل کنید. برای آشنایی بهتر با موضوع «چگونه یک سوال خوب بپرسیم؟» میتوانید مطالب موجود در این آدرس یا این آدرس را مطالعه کنید.
هیچگاه بیش از یک یا دو ساعت زمان را صرف مشکلی که آن را درک نمیکنید نکنید و به جای آن سعی کنید پاسخ پرسش خود را از طریق دیگران به دست آورید
اگرچه منابع آموزشی بسیار متنوعی در زمینهی بازیسازی وجود دارد اما دو مسئله مهم در این زمینه وجود دارد. اول اینکه بازیسازی در دنیا به نسبت دیگر موضوعات شاخهی جوانی است و برای همین مجموعههای آموزشی در این زمینه بیشتر پیرامون یادگیری نرمافزارها و موتورهای بازیسازی ساخته شده است که مسائل اصلا پیچیدهای نیستند. اما در مقابل برای یادگیری مهارتهایی همانند طراحی مرحله باید بیشتر بر تجربیات خودتان متکی باشید و مطالب در این زمینه به نسبت بخشهای دیگر بسیار محدودتر است. نکتهی دوم هم این است که منابع فارسی در این زمینه بسیار محدود است و شما برای بهرهمندی از منابع بیشتر به ناچار باید در زمینهی زبان انگلیسی مهارت داشته باشید.
به عنوان سخن پایانی باید بیان کنیم اگرچه شاید مطالب گفته شده در بخش اول سری مقالات آموزش بازیسازی بسیار محدود و مختصر بود اما سعی ما بر این بوده که تا حد ممکن شما را با جنبههای مختلف توسعهي یک بازی آشنا کرده و در حد توان این مسیر تاریک را برای شما روشن کنیم. گفتنی است که در آیندهای نزدیک با سری جدید مقالات آموزش بازیسازی و پرداخت عمیقتر به موضوع بازیسازی در خدمت شما خواهیم بود.