جزوات و نت بردایهای من از دورههای ICT بیشتر در t.me/ICT_NoteTaking
داستان موفقیت بازی ۲۰۴۸
۲۰۴۸ یک بازی پازلی است که در زمان کمی توانست نظر جامعهی جهانی را جلب و به رتبهی بالایی دست یابد. این بازی سرگرمکننده که نسخهی اندرویدی آن در مارکتهای داخلی کشورمان هم به محبوبیت بالایی رسید از دل یک ایدهی ساده خارج شد. در این بازی یک مربع ۴ در ۴ از کاشیها کنار هم قرار گرفتهاند و بازیکن با حرکت دادن کاشیها اعداد مشابه را جمع میزند. این کار تا زمانی که به عدد ۲۰۴۸ برسید ادامه دارد. در این مقاله، مطلبی از زبان گابریل سیورولی – سازندهی این بازی – که در سال ۲۰۱۴، درست چندماه پس از انتشار آن، در وبسایت مدیوم منتشر کرد را به زبان فارسی در اختیار شما قرار میدهیم. آشنایی با داستان موفقیت این بازی، مسائلی که این توسعهدهندهی وب با آن روبرو شد و تصمیماتی که گرفت خالی از لطف نیست. حتما بخوانید.
در طی هفتههای قبل، غیرمنتظرهترین رویداد زندگیام را تجربه کردم. در ماهِ مارس، صرفا برای سرگرمی بازی ۲۰۴۸ را ساختم و به صورت متنباز بر روی گیتهاب قرار دادم. در طی هفتههای بعد، به صورت عجیبی، ۲۰۴۸ به یک بازی همهگیر جهانی تبدیل شد طوری که بیش از ۲۳ میلیون نفر آن را دانلود و بازی کردند.
این مقطع زمانی، یکی از هیجانانگیزترین و البته پراسترسترین مقاطع زندگی من بود. اینکه بدانید میلیونها نفر به ساختهی شما علاقهمند شده و آن را بازی کردهاند، حس بسیار خوبی دارد. این موضوع برای خیلیها (از جمله خودم)، انگیزهای برای پیشرفت و ساخت چیزهای جدید است. همزمان با محبوبیت جهانی بازی، چالشهای جدیدی مطرح میشود که باید فکری به حالشان بکنید. توجه جهانی و انتظارات مردم میتواند حسابی شما را به دردسر بیندازد مخصوصا اگر قادر به اداره کردن آن نباشید.
در این پست، تجربیات شخصی و حرفهایام در برخورد با چالشهای پیش آمده را به اشتراک میگذارم. بعلاوه مسیری که باعث تغییر ذهنیتم در ساخت نسخهی موبایلی بازی شد را شرح خواهم داد. مقاله طولانی است؛ ولی امیدوارم برای افرادی که ممکن است در موقعیت مشابه با چنین مشکلاتی مواجه شوند، بینش و درک خوبی فراهم کند.
شروع ماجرا
۲۰۴۸ [همان نسخهی تحت وب] را در تعطیلات آخر هفته و فقط برای سرگرمی ساختم. من به دو بازی ۱۰۲۴ و ۲۰۴۸ معتاد شده بودم. عاشق هر دویشان بودم و قصد داشتم نسخهی اختصاصی خودم با استایلی متفاوت و انیمیشنهای سریعتری تولید کنم؛ آن هم فقط محض اینکه بدانم که قادر به انجام این کار هستم یا نه. آن زمان خبری از بازی Threes – که منشاء ساخت سایر بازیهای مشابه (از جمله ۲۰۴۸) بود – نداشتم. بازیای که سازندگانش – اِشِر والمر (Asher Vollmer) و جرج وُهلوِند (Greg Wohlwend) – وقت زیادی را صرف آن کرده بودند.
آنها اخیرا سرخوردگی خود نسبت به محبوبیت نسخههای مشابه بازیشان را ابراز کردهاند. احساسشان را کاملا درک میکنم و بابت تلاش و زحمات فراوانی که صرفِ ساختن بازی Threes کردهاند قدردانشان هستم. ۲۰۴۸ ماهیت وجودی خود را مدیون این بازی میداند. همزمان با ساخت ۲۰۴۸ تصمیم گرفتم کدش را در گیتهاب قرار دهم و از آنجایی که حس میکردم با private کردن مخزن کد در گیتهاب این سوءبرداشت که بازی کپیبرداری از کار دیگران است، کدها را به صورت عمومی، در دسترس همگان قرار دادم. بعد از اتمام ساخت بازی، آن را در گیتهاب پیج منتشر و برای دریافت بازخوردها، پستی هم در Designer News ارسال کردم.
انفجار
روز بعد، ایمیلی از دوستم دریافت کردم که گفته بود سَری به صفحه اول هکرنیوز بزنم. شخصی ۲۰۴۸ را آنجا پست کرده و در جایگاه اول مطالب قرار گرفته بود. گوگل آنالیتیکز، بازدید هزاران نفر را گزارش داده بود. من واقعا باور نمیکردم چه اتفاقی داشت میافتاد.
از آنجایی که فکر میکردم، این موضوع یک جهش اتفاقی است و بعد از مدتی فروکش میکند، کل روز را به تماشای آمار نشستم اما دیدن اعداد و ارقام روبهرشد ضمن اینکه مرا هیجانزده میکرد، ترسی هم در دلم انداخته بود. تعداد بازخوردهای مثبتی که در کامنتها دریافت میکردم حسابی مرا ذوقزده میکرد. هر کسی در مورد اعتیاد خود به بازی و اینکه از کار و زندگیشان افتادهاند صحبت میکرد.
روزهای بعد
فکر میکردم علاقه به ۲۰۴۸ پس از مدت کوتاهی فروکش میکند، اما این علاقه تا چندین روز بعد هم متوقف نشد. در حقیقت جامعهی کاربران این بازی مدام در حال بزرگتر شدن بود. در مقاطعی، پست ۲۰۴۸ در هکرنیوز از رتبه اول به رتبهی سوم تنزل پیدا میکرد ولی همزمان در تویتر، فیسبوک و یا حتی به صورت آفلاین (تبلیغ دهان به دهان) بحث داغ آن روزها بود. دیدن رشد فزایندهی این بازی در سراسر دنیا کمی نگرانم کرده بود. اینباکسم با رشد بیسابقهی ایمیلها مواجه شد. ایمیلهایی از سوی علاقهمندان بازی و توسعهدهندگانی که منتظر اجازهی من برای پورت کردن بازی روی پلتفرمهای دیگر بودند.
اولین مشکلی که با آن روبرو شدم این بود که باید با ۲۰۴۸ چه کار کنم و چطور به این حجم از ایمیلها پاسخ دهم. با اینکه این بازی تنها یک پروژهی شخصی بود و انتظار خاصی از آن نداشتم ولی اطرافیانم مدام پیشنهاد کسب درآمد از این فرصت طلایی را میدادند. شخصا با ایدهی درآمدزایی از محصولی که بر پایه زحمات دیگران باشد، راحت نبودم. چیز دیگری که سخت ذهن مرا مشغول میکرد توسعه بازی ۲۰۴۸ بود. لازمهی تمرکز روی این بازی، خارج شدن از تعهداتم در دورانی که فریلنسر بودم و بر روی پروژههای دیگران کار میکردم بود.
بایستی بازی را به پلتفرم موبایل میآوردم آن هم خیلی سریع و پیش از آنکه دیگران اقدام به انجام این کار کنند. با توجه به اینکه تخصص زیادی در حوزهی موبایل نداشتم، دورنمای انجام این کار مرا میترساند چون معلوم نبود چه آیندهای در انتظار من است. این مسائل منجر شد تا روزهای پراسترس و سختی داشته باشم. احساس کردم انگار هیچ راهی برای خروج نیست و هر تصمیمی هم بگیرم به خرابتر شدن کار منجر خواهد شد.
از سویی، میتوانستم با پشتپا زدن به زحمات دیگران که خالق اصلی این ایده بودهاند، از این فرصت استثنایی استفاده و پول خوبی به جیب بزنم. از سوی دیگر، میتوانستم به زندگی عادی خود ادامه دهم و این را هم میدانستم که بعدها پشیمان خواهم شد و دیگران هم به خاطر از دست دادن این فرصت بینظیر مرا سرزنش میکردند. دستآخر متقاعد شدم که برای پایان یافتن نگرانیهایم به زندگی عادیام ادامه داده و بازی را همانطور متنباز و بدون اینکه به نسخهی موبایلی آن فکر کنم رها کنم. بعد از گرفتن این تصمیم، حالم بسیار بهتر شد. این باعث شد تا فکر کنم که بهترین تصمیم را گرفتهام و بعدها پشیمان هم نخواهم شد.
بازگشت نگرانی
دیری نگذشت که اولین نسخههای موبایلی بازی سر از تخم درآوردند. برخی بدون اجازه از من و سایر سازندگان و برخی نیز با نام بنده، بازی را منتشر کرده بودند. بعد از مشاهدهی بازخورد سازندگان Threes فهمیدم که تصمیم درستی گرفته بودم. (اینکه بازی را برای نسخهی موبایلی نساختم). با این حال بسیاری از اطرافیانم، احساس مشابهی راجع این موضوع نداشتند. والدین و دوستانم به تصمیم من احترام میگذاشتند ولی همزمان تصور از دست دادن چنین شانس طلایی که معلوم نبود دوباره تکرار شود یا نه مرا از درون آزار میداد.
در ابتدا، نظرات دیگران روی تصمیمی که گرفته بودم تاثیر چندانی نداشت، چون میدانستم انتخاب این مسیر، مرا از دست استرسها و نگرانیهایی که داشتم نجات میداد و برای من این موضوع از پول و شهرت اهمیت بیشتری داشت. اما طولی نکشید که چند روز بعد، همهی مشکلاتی که فکر میکردم بر آنها غلبه کردهام با شدت بیشتری بر سَرَم آوار شد. دوباره شروع کردم به حسرت خوردن از اینکه چه فرصتی را از دست دادهام. یک جورهایی احساس میکردم اطرافیان من از کارهایی که میکردم مایوس شدهاند. چیزی که باعث میشد احساس بدتری پیدا کنم، دیدن نسخههایی از ۲۰۴۸ بود که توسط دیگران ساخته شده و در صدر برنامههای محبوب استور قرار داشت.
آن روی سکه
به خاطر موقعیت بدی که در آن قرار داشتم، سخت آشفته بودم؛ اما دلایلی هم برای شادمانیام داشتم. با اینکه برای خیلیها کپیبرداری از زحمات دیگران به منظور سودآوری اهمیت چندانی ندارد، افراد خلاقی نیز در دنیای متنباز دنبال بهبود ایدههای موجود هستند. آنها فقط میخواهند چیزی را بگیرند و بهترش کنند یا حتی آن چیز را کاملا وارد سطح جدیدی نمایند. دیدن تعداد بیشماری از نسخههای مختلف ۲۰۴۸ خیلی هیجانزدهام میکرد. هر یک از این بازیها در جای خود، سرگرمکننده بودند و حس خوبی داشتم از اینکه یک بازی بتواند تا این حد نظر توسعهدهندگان را جلب کند. مردم با خلاقیت بالای خود، ۲۰۴۸ را به چیز کاملا جدیدی تبدیل کردند. آگاهی از این موضوع که فرد دیگری زمانش را صرف بهبود برنامهی شما کند واقعا جذاب است بخصوص اگر مهمترین انگیزهی شما از ساخت برنامه، خوشحال کردن دیگران باشد.
تغییر ذهنیت
ضمن تشکر از کمکهای والدین و دوستانم، تنها راهی که میتوانست مرا از فکر اینکه فرصتی را از دست دادهام رها کند، پذیرفتن شرایط موجود و تولید یک برنامه است. هدفم از ساخت برنامه، سودآوری از آن نبود. در واقع مباحث مالی هیچ اهمیتی برایم نداشت. تنها چیز مهم، بدون توجه به پیروزی یا شکست، این بود که احساس نکنم، شانسی را از دست دادهام. با این حال مردم چه فکری در مورد من میکنند؟ در هر مصاحبهای میگفتم به دلایل اخلاقی، هدفم از ساخت برنامه، کسب منافع مالی از آن نیست. فکر میکردم با تغییر ذهنیتم شخصی دورو شناخته خواهم شد که من واقعا نمیخواستم چنین آدمی باشم.
سختترین چیز در مورد این تصمیم این بود که احساس میکردم با این کار به انتظارات دیگران از خودم، خیانت میکنم. خب بالاخره، ذهنیتم تغییر کرده بود و به نوعی بایستی چیزی که سخت با آن مخالف بودم را دنبال میکردم. گرفتن این تصمیم چند روزی مرا به خود مشغول کرد، ولی چیزی که نهایتا باعث شد تن به این تصمیم بدهم این بود که هدف من بر پایه طمع و پول نبود. من این تصمیم را گرفتم تا مابقی عمرم را با واحسرتا و غصه خوردن برای شانس از دست رفته سپری نکنم.
با گزینش این انتخاب، آنهایی که قبلا به من اعتماد داشتند ممکن بود احساس کنند که خیانت دیده یا فریب خوردهاند. دقیقا یکی از دلایلی که باعث نوشتن این مقاله شد، همین مسئله بود؛ با این مقاله خواستم تا دلیل موجهی برای انتخاب این تصمیمِ سخت که در شرایط خاصی رقم خورد را توضیح داده باشم. خوشبختانه بستری که منجر به اتخاذ این تصمیم شد به اندازهی کافی برای توضیح فعالیتهایم کافی بود. اگر اینطور نیست، امیدوارم لااقل این مقاله هر طوری که شده، اطلاعات اندکی در مورد داستان ۲۰۴۸ و پشتصحنهی آن در اختیار دیگران قرار دهد.
ساخت نسخهی موبایلی ۲۰۴۸
همچنان تصورم این بود که تبدیل یک بازی، دقیقا همانطور که هست به نسخه موبایلیاش ایده خوبی نیست. ۲۰۴۸ دیگر متعلق به من نبود. این بازی را انبوهی از توسعهدهندگان با خلاقیتهای مختلف ساختهاند و من حق نداشتم کپی آنها را با نام خودم منتشر کنم. برای قابلقبول نشان دادن تصمیمم بایستی وقت زیادی را صرف یک نسخه جدید از ۲۰۴۸ میکردم. بالاخره یک ماه زمان گذاشتم و صفر تا صد نسخهی جدیدی از آن را ساختم.
?
به عنوان یک توسعهدهندهی وب و کسی که هیچ مهارتی در توسعه اپلیکیشنهای موبایل نداشته، نمیتوانستم شروع به ساخت برنامهی اندروید یا iOS کرده و انتظار چیز شکیل و خوبی هم داشته باشم. به همین خاطر به فکر استفاده از Phonegap افتادم. فونگپ به شما اجازه میدهد تا با همان تکولوژیهای وب یعنی HTML, CSS و جاوااسکریپت، برنامههای موبایلی بسازید. ولی مشکلش این بود که ساخت یک برنامهی استاندارد و Native با استفاده از فونگپ کار دشواری است. خوشبختانه من قصد ساخت یک بازی اندرویدی را داشتم، بنابراین نیازی به رعایت سفت و سخت استانداردهای گرافیکی در چارچوب ویژگیهای بصری سیستمعامل را نداشتم.
از آنجایی که اجرای مستقیم بازی همزمان با اجرای برنامه تجربه خوبی به کاربران نمیدهد بایستی منویی را در صفحه اول نشان میدادم که از طریق آن بازی آغاز شود. این منو همچنین برای اضافه کردن مدهای جدید بازی و سایر قابلیتها ضروری بود. منطق بازی را هم میخواستم کلی و عمومی در نظر بگیرم تا اضافه کردن مدهای جدید بازی، تنها با اضافه کردن hookهای جدید به هستهی اصلی کد و تغییر رفتار برنامه امکانپذیر شود.
خودم تمام کدهای برنامه را از صفر نوشتم. تنها چیزی که از نسخه متنباز ۲۰۴۸ (همان نسخهی تحت وب) وام گرفتم، منطق جابهجایی کاشیها بود تا تجربهی اصلی بازی دستخوش تغییر نشود. به خاطر متنبسته (closed-source) بودن برنامه (شاید در آینده متنبازش کنم)، جای نگرانی بابت استفاده از کدهای دیگران وجود نداشت. کداصلی نسخه موبایلی ۲۰۴۸ تقریبا ۳ برابر نسخهی وب آن شد که اغلب کدها هم جدید بودند.
در حین ساخت برنامه، راههای مختلفی برای بهبود و سادهسازی کد و ظاهر برنامه یافتم. خیلی دوست داشتم به نسخهی متنباز ۲۰۴۸ برگردم و کدها را آنطور که دوست داشتم ریفکتور و بهینهسازی کنم. اگر مایلید دستاورد نهایی بنده را مشاهده کنید، میتوانید نسخه iOS و اندروید این بازی را دانلود کنید. امیدوارم بازی را دوست داشته باشید.
مطلبی دیگر از این انتشارات
از گیم تا فیلم؛ معرفی چند فیلم گیمرپسند و یک کتاب
مطلبی دیگر از این انتشارات
بررسی بازی Pokemon Unite برای موبایل
مطلبی دیگر از این انتشارات
قابلیت فتومُد در بازی های ویدیویی