چطور بازی سازی را شروع کردم.

سلام و عرض ادب خدمت همه ی خوانندگان عزیز. اسم من محمد علی سجادی و تخصص اصلیم ساخت و طراحی Real-Time VFX برای بازی هستش. نزدیک به 5 سال هم تجربه بازی سازی دارم. کارم رو با یکسری از دوستانم شروع کردم و با هم تیم آرورا و بازی SpaceZ رو ساختیم.با تشکر فراوان از جناب آیدین ذولقدر بابت تمامی کمک هاشون در حال حاضرم یکی از اعضای پردیس سرگرمی پیله سازنده "ارباب جنگ" هستم. توی این مقاله میخواستم بگم که چجوری و از کجا بازی سازی رو شروع کردم و مهم تر از همه اشباهاتی که ازشون تجربه کسب کردم چیا بودن. بازی ارباب جنگ ساخت استدیو پردیس سرگرمی پیله شروع بازی سازی یا علاقه به اون برای خیلی ها توی این صنعت تقریبا به یک حالت شکل گرفته. یک روز مثل بقیه روزا که دارین بازی میکنین این فکر به ذهنتون میرسه که چطوری این بازی ساخته شده و از اونجایی که به بازی کردن هم علاقه زیادی دارین با خودتون میگین که چقدر عالی میشد اگر شغل آیندمم مربوط به همین بازی هایی که انقدر بهشون علاقه دارم بشه. اولین کاری که کردم سرچ کردن توی گوگل بود که تو این حین تجربه چندین و چند ساله ای که از بازی کردن داشتم کمک بزرگی به جست و جوی پاسخ سوالاتم کرد. اولین نکته ای که متوجه شدم مبحث انجین بازی سازی بود که بیشترین چیزی هم که راجع بهش برای شروع بازی سازی صحبت میشد انجین بازی سازی Unity بود. یک انجین رایگان و بهترین و ساده ترین انتخاب برای شروع.Unity Game Engineاولین تصویری که با باز کردن یونیتی با اون مواجه میشینبعد از آشنا شدن با یونیتی متوجه مشکل بزرگتری شدم. مشکل اینکه در چه دنیای بزرگ و بی پهنایی از علم قدم گذاشتم. برای همین شروع کردم به دیدن محتوا های آموزشی که در یوتیوب و در بعضی سایت ها به صورت پک آموزشی وجود داشت. اما همان گونه که حدس میزدین کافی نبودن. این روال پیش میرفت تا یک روز با سایت انستیتو ملی بازی سازی آشنا شدم و دیدم که در اونجا یکسری کلاس ها و کارگاه ها برگزار میشن من تصمیم گرفتم که یکی از این کلاس هارو ثبت نام کنم. پس از گذشت چند جلسه با چند نفر از افراد دیگری که مثل خودم تازه بازی سازی رو شروع کرده بودن یک تیم رو تشکیل دادیم و تصمیم گرفتیم با تجربیاتی که کسب کردیم اولین بازیمونو بسازیم. باید بگم این مهم ترین قدم من در این صنعت بود که الانم تمام تجربیاتمو مدیون اون تصمیمی که 4.5 سال پیش گرفتم و تک تک اعضای اون تیم هستم. (و البته اولین بازی که ساختیم). https://www.irangdi.ir/ شروع به ساخت اولین بازیمون همانا و شکل گیری طوفانی از مشکلات و اشتباهاتم همانااولین اشتباهی که مرتکب شدیم تحقیق نکردن درست، راجع به بازیمون بود. صرفا یک ایده ای داده شد روی ساختش بحث کردیم و شروع به ساختش کردیم. در صورتی که اولین قدم برای ساخت یک بازی تحقیق راجع به مارکت اون بازی و درست کردن GDD(Game Design Document) و ساخت یک پروتوتایپ برای تست کلیت بازیه نه اینکه مستقمیا با چیدن پایه و اساس بازی توی اینجین کار رو شروع کنیم.(لینک دانلود نمونه GDD بازی Diablo 1 در ادامه) http://www.graybeardgames.com/download/diablo_pitch.pdf خود این مسئله چندین مشکل برای ما ایجاد کرد. به طور مثال آشفته بودن و پیچدگی کار ها. یک دیزاینر فیچری از بازی رو طراحی میکرد، برنامه نویس اون رو پیاده میکرد، بعد از گذشت یک ماه کار تازه متوجه میشدیم این چیزی نبود که میخواستیم. یا مشکل دیگه ای که برامون بوجود اورده بود اشتباه انتخاب کردن ژانر و پلتفورم و تارگت بازی بود. بازی که ما میخواستیم بسازیم، یک پازل ادونچر با تم sci-fi بود که این بازی نه مناسب با پلتفورم موبایل بود نه مانیتایزینگ درست برای بازی F2P داشت و نه یوزر متناسب با اون پیدا میشد. از دیگر مشکلاتی که نداشتن GDD برامون ایجاد کرده تغییر خیلی زیاد Core بازی و استایل آرت اون بود که بابتش زمان زیادی هدر رفت که میشد روی توسعه بیشتر بازیمون بذاریمش. این رو با تست بازی و درست کردن اون اشتباه نگیرین. در تیم های بزرگ چنین اتفاقاتی میفته مثل Brawl Stars بازی Supercell که سه بار بازی رو بعد اینکه رسیده بود به مرحله Alpha عوض کردن. https://www.youtube.com/watch?v=VSVAmf5LCuo(%D9%88%DB%8C%D8%AF%D8%A6%D9%88%D8%AA%D9%88%D8%B6%DB%8C%D8%AD%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1%D8%A7%D8%AA%D8%A8%D8%B1%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D8%A7%D8%B1%D8%B2) اما این اتفاقات نباید برای بازی کوچیک یک تیم تازه کار میافتاد. ولی مشکل اینجا بود که اولین بازی که ما میخواستیم بسازیم و توی ذهنمون داشتیم اصلا کوچیک نبود !!! اشتباهی که بسیاری از تیم های تازه کار و با تجربه مرتکبش میشن. (مثل گندی که Cd Project Red با Cyberpunk 2077 بالا اورد) CyberBUGنمونه اشتباه های دیگه ای که داشتیم نداشتن یک سری برنامه های جانبی هندل پروژه مثل Task manager به عنوان مثال Trello و یک Source Control به عنوان مثال GIT بود. نبود تسک منیجر باعث شده بود که هماهنگی درست برای کار بین اعضای تیم شکل نگیره. مثلا برنامه نویس در حال انجام کار دیگه ای بود بعد یکدفعه دیزاینر ها یک تسک جدید تعریف میکردن که کاملا متناقض با کار فعلی برنامه نویس بود. و این دوباره کلی زمان انجام کار های کوتاه رو طولانی میکرد. (درست کردن حرکت کاراکتر به همین خاطر نزدیک به 6 ماه طول کشید !!!) نداشتن سورس کنترل ریسک کار رو زیاد میکرد به عنوان مثال یک روز به خاطر یک اشتباه تمامی Splash های آرت اصلی بازی پاک شدن و این امر کار رو یک ماه عقب انداخت. در صورتی که اگر سورس کنترل داشتیم اینجور اشباهات زیانی نمیرسوندن. نمونه ای از Trelloنمونه ای از سورس کنترل Tortoise HGو در آخر همه ی این مشکلات بعد از مدتی نه چندان دور گریبان گیرمون شدن که عصاره این مشکلات پاشیده شدن تیم از هم به دلیل نبود گردش مالی بود. اما همه ی اعضای تیم قبول دارن که اگر این تجربیات نبود الان به جایی نمیرسیدیم ولی با خودمونم یک وقت هایی خیال پردازی میکنیم که اگر این اشتباهات نکرده بودیم الان چه وضعیتی داشتیم... ممنون از وقتی که گذاشتین و مطالعه کردین امیدوارم بتونم کمکی کرده باشم به اولین قدم هایی که در بازی سازی میخواین بذارین.