از کافه‌بازار تا کافه‌بازی

۴ آبان ۹۳، حدود ۶ سال و نیم پیش، من کارم رو توی کافه‌بازار شروع کردم. ترم ۳ دانشگاه بودم و جوان و جویای نام. :)) البته خیلی هم نوب نبودم. از راهنمایی برنامه‌نویسی می‌کردم و توی دبیرستان ربوکاپی بودم و خیلی جدّی کار می‌کردم و کلّی هم تلاش کرده بودم توی اون یه سال دانشگاه که خفن‌تر شم. خلاصه که در چنین روزی به «خانواده» کافه‌بازار اضافه شدم. که الحق چه خانواده‌ای. حیف که این بار قرار نیست راجع به این خانواده بگم وگرنه که شروع می‌کردم و کلّی می‌گفتم از خوبیا و بدیاشون و بالا و پایینایی که توی این مدّت توی خانوادمون داشتیم.اون ۴ سال رو اگه بخوام خیلی خلاصه بگم تا برسیم به ۲.۵ سال پیش، کلّی جا بودم و کلّی کارای خفن کردیم با بقیه و لذّت بردیم و لذّت خلق کردیم. از پنل توسعه‌دهندگان کافه‌بازار شروع کردم، بعد پایه‌های بیگ دیتا رو گذاشتیم توی زیرساخت، سیستم ریکامندیشن برنامه رو راه انداختیم و بعد این مدّت وارد دیوار شدم و چالشای خاص اون موقع توی دیوار. بعد از حدود ۲ سال توی دیوار بودن، یه روزی رسید که دیگه من خیلی خسته و دلزده بودم و از کارای اون موقعی که توی دیوار می‌کردم، دیگه خوشحال نبودم. ماجرا از همین جا شروع شد. قرار شد که یه کار جدید بکنم و گشتم دور و بر هولدینگ به دنبال یه کاری که ذوق من رو دوباره روشن کنه.بعد از کلّی گشت زدن رسیدم به میز تکی جناب مسعود منتظری که شروع کرده بود ایده‌ی بازی ساختن می‌برد جلو. یه بازی ساخته بود اون موقع به نام کلمدون که بازی کلمه‌ای بود و یه کلونی از بازی تون‌بلست رو شروع کرده بود. من که قبلاً هم با مسعود کار کرده بودم و خیلی با مدلش حال می‌کردم و هم‌زمان هم در همون مدّت کمی که اون دور و بر بودم شیفته‌ی کاری که داشت می‌کرد شده بودم، با ذوق زیادی خودم رو به تیم تک‌نفره‌ی مسعود اضافه کردم و دو نفره شدیم. و این جا بود که پایه‌های استادیو کافه‌بازی شکل گرفت.توی مدّت دو سال ما کلّی آدم بهمون اضافه شد و امروز استادیویی داریم با اردر ۳۰ تا آدم خفن که توش کار می‌کنن و ۵ تا بازی بالا اومده (یا خیلی نزدیک به بالا اومدن که موقع انتشار این مقاله هم شاید حتّی بالا اومده باشن همشون :)) ) و یه بازی در حال جلو رفتن. البته که اگر دستی در صنعت بازی داشته باشین می‌دونین که چه قدر باید بی‌رحمانه بازی کشت و سراغ بازی جدید رفت اگر بازی‌ای داشت KPI هاش رو ملاقات نمی‌کرد و … بنابراین بالا و پایین زیاد هست و باز هم شاید بازی کشته باشیم تا زمان انتشار این مقاله.این که فرآیند اسکیل شدنمون و نیرو گرفتنمون و تیم‌های مختلفمون چه طور جلو رفت موضوع خیلی خیلی جذّابیه که فکر کنم یه بار باید کامل بنویسم در موردش. به طور خلاصه فکر می‌کنم به جرات می‌تونم بگم که بهترین دو سال کاریم بود توی این مدّت ۱۰ سالی که به طور جدّی برنامه‌نویس بودم. تیم بسیار بسیار با استعداد، کارهای بسیار جالب و شگفت‌انگیز، تصمیم‌های جالب محصولی و فنی و انسانی و خلاصه کلّی کلّی چالش‌های بسیار جالب.این جا امّا فکر کردم که از فرآیند تبدیلم از یک برنامه‌نویسی فول‌استک با تمرکز بک‌اند به یک بازی‌سازی بگم. به طور خلاصه، فرآيند خاصی نبود. :)) نکته دقیقاً در همینه که اگر شما برنامه‌نویس خوبی باشید، یاد گرفتن هر گرایش جدید در این صنعت خیلی هم براتون کار سختی نیست. البته که کلّی چالش خفن وجود دارن توی بازی‌سازی. من هنوز هم که هنوزه رابطم با shader ها خیلی خوب نیست. :( اما وقتی که شروع می‌کنین وارد صنعت بازی‌سازی شدن، می‌تونین توی مدّت خوبی گلیم خودتون رو از آب بکشین بیرون. در مدّت این دو سال من افتخار این رو داشتم که تعداد کمی هم شاگرد در یونیتی و گودوت داشته باشم و تعداد خوبی نیروی جونیورتر رو هم تربیت کنم و در اون‌ها هم سرعت تغییر رو می‌دیدم. البته که «خفن» شدن توی بازی‌سازی مثل هر کار دیگه‌ای کار زمان‌بر و سختی هست ولی حرف من اینه که اگه دنبال این باشید که یه بازی ساده بزنید و ایده‌ای که توی ذهنتونه رو پیاده‌سازی کنید، مثلاً یه چیزی شبیه به دودل‌جامپ یا aa رو به سرعت می‌تونید بزنید، ولی خب کلش زدن رو … خب میشه گفت که یه مقدار «کوچیک» کار لازم داره. :)) مهم‌ترین تغییری که حس می‌کنین، مخصوصاً اگر که قبلش بک‌اند کار بوده باشین، اینه که ظاهر و حسّی که مخاطبتون می‌گیره خیلی مهمه. به عبارتی، جوسی (juicy) بودن خیلی خیلی مهمه. بازیتون باید حال بده. بهترین تالکی در این مورد گوش کردم، یه تالک جمع و جور و کوله به نام Juice it or Lose it. حالا کلّی چیز جالب دیگه هم هست که میشه در این موردها یاد گرفت. بگردین کلّی هست.اون موقع که من و مسعود داشتیم وارد این سیستم می‌شدیم، به طور غیرقابل‌انتظاری از طرف جامعه‌ی بازی‌سازها، به این نتیجه رسیدیم که به جای یونیتی از گودوت (Godot) استفاده کنیم. دلایلمون اون موقع برای این کار چند تا چیز بودن:من و مسعود جفتمون توی پایتون خفن بودیم و gdscript که زبان اصلی اسکریپتینگ توی گودوته بسیار به پایتون شبیهه.جفتمون لینوکسی بودیم و زیاد به ویندوز علاقه نداشتیم و ورژن یونیتی روی لینوکس هم عملاً قابل کار کردن باهاش نبود.گودوت متن‌باز (Open Source) و این نکته علاوه بر جذّابیت‌های معمولی که برای برنامه‌نویسا داره، برای ما این خوبی رو داشت که می‌تونستیم توی سرسش دست ببریم و اگر مشکلی می‌خوردیم بتونیم خودمون درستش کنیم و ورژن خودمون از گودوت رو داشته باشیم.خلاصه به این دلایل بود که ما با گودوت شروع کردیم و بازی ایرونی (احتمالاً با اسم قبلیش یعنی تهرونی بشناسینش) کامل روی گودوت هست. اگر الآن برگردیم به قبل احتمالاً با شرایط اون موقع دوباره همین انتخاب رو بکنیم. ولی خب گودوت با این که خیلی جامعه‌ی اجایل و کاربلدی داره و خیلی سریع داره رشد می‌کنه، هنوز جای کار زیادی داره. احتمال میدم که تا چندین سال دیگه بیاد کامل یونیتی رو بخوره ولی خب هنوز هم حس می‌کنم اگر می‌خواین بازی حرفه‌ای صنعتی بسازین احتمالاً یونیتی گزینه‌ی بهتری هست. ولی در مورد هایپر کژوآل‌ها یا بازی ایندی‌ای که سختی زیادی درش نمی‌بینین، گودوت رو پیشنهاد می‌کنم. ما یک ورژن از گودوت برای خودمون درست کردیم که لینکش رو در ادامه می‌ذارم. افراد زیادی روی این ورژن کار کردن که عمدش من و مسعود و دو از برنامه‌نویس‌های خفنمون، سینا زندکریمی و محمدحسین نوروزی بودیم. این ورژن چیزای خفن و جالبی داره. پرداختش پرداخت بازاره (ورژن مایکت هم داره)، ماژول اسپاین (Spine) بهش اضافه شده، یه ماژول داره که یه سری چیزایی که از اندروید لازم داشتیم مثل نوتیفیکیشن و اینا رو بهش اضافه کردیم، فایربیس (firebase) رو بهش اضافه کردیم، کرش‌لیتیکز (Crashlytics) رو اضافه کردیم و کلّی چیزای دیگه. البته که کلّی‌هاشون از ریپوزیتوری‌هایی که وجود داشتن برداشته شدن و تغییر داده شدن که توی خود پروژه اطّلاعاتشون هست. کلّی هم هنوز جای کار داره و انشالله که کنار هم خفن‌ترش هم هی بکنیم. البته که خیلی دوست داریم که شما هم اگر تجربه‌ای دارین و دوست دارین همکاری کنین که خفن‌ترش کنیم.حرف آخر، حتماً تست کنید بازی‌سازی رو. :))‌ شاید هم حالا دوستش نداشتین، ولی واقعاً واقعاً دنیای فوق‌العاده‌ایه و احتمالش کمه که تست کنید و دوست نداشته باشید. هزینه‌ی یادگیری گودوت برای برنامه‌نویس‌های غیرگیمی کمه و می‌تونید اگرم که نمی‌خواید شغل دائمتون بازی‌سازی باشه، یه بازی‌ای واسه دل خودتون زدین و خدا رو چه دیدین، شاید همون شد فلپی‌برد و کلّ بازار بازی جهان رو ترکوندین. ^__^