وبلاگ - نکات و ترفندها

0
208
مشکلات فنی Pokémon Go به توسعه دهندگان چه می آموزد؟

مشکلات فنی Pokémon Go به توسعه دهندگان چه می آموزد؟

بازی های موبایل در بین کاربران محبوبت فراوانی دارند، Pokémon Go یکی از بازی هایی است که اخیرا منتشر شده و در عرض مدت بسیار کوتاهی توانسته در صدر فهرست اپ استورهای مختلف قرار گیرد و میلیون ها دلار را عاید سازنده خود کند، اما هیچ چیزی عاری از خطا نیست و Pokémon Go نیز از این قاعده مستثنی نمی باشد. اما چه چیزی برای Niantic مشکل آفرین شد؟ سایر توسعه دهندگان از مشکلات سازنده بازی برای آماده سازی خود برای آینده چه می توانند بیاموزند؟ Griff Parry مدیرعامل و بنیان گذار GameSparks این موضوعات را مورد بررسی قرار داده و در ادامه به یافته های او می پردازیم، با ما همراه باشید.

Pokémon Go از برخی جهات کل دنیا را متحد کرده، بازیکنان در سراسر جهان از هیجان هایی که این بازی در اختیار آنها قرار داده لذت می برند و همگی به دنبال شکار پوکمون ها هستند. البته مشکلاتی مانند داون شدن سرورها، کرش ها و مشکلات فنی دیگر نیز گریبان گیر گروه انبوهی از طرفداران این بازی بوده است.

سرزنش کردن Niantic Labs جهت مسائل پیش آمده کمی ناعادلانه خواهد بود، اما بازی Pokémon Go و مشکلات پیش آمده برای آن به صنعت بازی سازی نشان می دهد که حفظ ثبات و پایداری یک بازی، زمانی که میلیون ها نفر به صورت آنلاین و همزمان در حال انجام آن هستند، مخصوصا در زمانی که بازی ها به طور فزاینده ای نیازمند یک ارتباط پایدار و بک اندهای پیچیده تر می باشند، تا چه میزان چالش برانگیز است.

داون شدن سرور

مشهودترین مشکل فنی که بازی Pokémon Go را تهدید می کند، داون شدن سرور بازی می باشد. این مشکل به صورت مستمر پیش نیامده، اما روز شنبه 16 ام جولای پیشترین دوره داون تایم در بازی را شاهد بودیم.

پس از کار بی وقفه در انگلیس در طول صبح، سرور بعد از ظهر کاملا قطع شد و ادامه بازی را برای بازیکنان غیرممکن ساخت و مبنی بر شایعات دلیل این مشکل به یک حمله DDoS از سوی یک گروه هکر ربط دارد.

اما حتی با وجود این احتمال، دلیل حقیقی برای داون شدن سرور این است که بازی به صورت هم زمان در 26 کشور عرضه شد و میلیون ها بازیکن را تنها در چند ساعت به بازی اضافه کرد.

از سوی دیگر این موضوع جنبه مثبتی برای توسعه دهنده بازی داشته است، دانلود ارگانیک بازی از سوی میلیون ها کاربر تنها در چند ساعت یک سناریوی رویایی برای هر کسب و کار بازی موبایل می باشد.

البته این سرعت دانلود به کرش کردن سرور نیز منجر شد. نرخ افزایش ظرفیت سرور به یقین کمتر از نرخ افزایش تقاضای دانلود از سوی کاربران است و نوع سرویس بک اندی که Niantic Labs برای پشتیبانی از بازی مورد استفاده قرار داده تفاوت چندانی ایجاد نمی کند و همین امر به مشکلات فنی منجر می شود.

اما Niantic برای پیشگیری از این مشکلات راه حل بهتری را در اختیار داشت؟ پاسخ این پرسش چندان واضح نمی نماید، چرا که تمامی عرضه کنندگان سرور با مشکل مدیریت حجم بی سابقه ترافیک تا حدودی دست و پنجه نرم می کنند.

اما توسعه دهندگانی که مایل به کسب آمادگی لازم در صورت افزایش انبوه تقاضا پس از انتشار اپلیکیشن خود هستند، باید مطمئن باشند که هنگامی که میزان لود افزایش می یابد، بازی آنها هنوز هم قادر به پشتیبانی از آن است.

برای این منظور باید یک زیرساخت پایدار متکی بر PaaS که از بک اندهای بازی پشتیبانی می کند را مانند Amazon Web Service، Microsoft Azure یا Google Cloud Platform مورد استفاده قرار داد.

سپس باید آن را بر روی یک لایه نرم افزاری مقیاس پذیر که قادر به مقاومت در برابر لود بازی به میزان بیشتری از انتظار باشد ساخت. چنین معماری توسعه دهندگان را قادر به کنترل شرایط کرده و صفر تا میلیون ها کاربر به راحتی قادر به استفاده از سرویس می گردند و حتی با نرخ افزایش شیب دار نیز مانع از عملکرد آن نمی شود، بدین معنی که داون تایم تا حد زیادی قابل پیشگیری است.

شاید این راهکار نیز به طور کامل مانع از داون تایم نشود، اما بهتر است در صورتی که یک بازی فوق العاده ساخته اید که احتمالا کاربران به طور فزاینده ای آن را مورد استفاده قرار خواهند داد، پلتفرم هایی که امکان افزایش ظرفیت را به سادگی در اختیار قرار می دهند، مد نظر قرار دهید.

فریز شدن اپلیکیشن

علاوه بر مشکلات مرتبط با سرور، دو مشکل فنی دیگر نیز پس از انتشار بازی پیش روی بازیکنان قرار گرفتند. فریز اپلیکیشن یکی از این مسائل بود، این مشکل اغلب زمانی پیش می آید که بازیکن در حال گرفتن پوکمون است، بازیکن محبور می شود که اپ را با این امید که پوکمون در لیست پوکمون های گرفته شده او ظاهر خواهد شد ببندد. علت یابی چنین مشکلاتی دشوار است اما احتمال دارد که مشکل مذکور به سیستم ذخیره سازی کلود بازی مربوط باشد.

کسب اطمینان از قابلیت تحمل خطا در سمت کلاینت و سرور راه حل برطرف کردن این مشکل می باشد، وقتی که بازیکن یک پوکمون را می گیرد، کلاینت باید قادر به همگام سازی این موفقیت با سرور باشد. اما بسیاری از متغییرهای غیرقابل کنترل مانند ارتباطات شبکه ممکن است در این فرآیند اختلال ایجاد کنند، در این حالت کلاینت باید به ذخیره سازی این موفقیت در گوشی کاربر پرداخته و وقتی که ارتباط مجددا برقرار شد آن را برای سرور ارسال کند.

گم شدن پرداخت های درون برنامه ای

آخرین و حادترین مشکل در بازی به Pokecoins مربوط می شود که بازیکنان در حین بازی خریداری کرده اند، این امتیازات در بازی به کمک بازیکنان می آیند، اما برخی از بازیکنان گزارش کرده اند که خریدهای انجام شده آنها در فهرست خریدها ظاهر نشده است.

این موضوع بسیار مهمی است، وقتی یک مشتری برای کارنسی پریمیوم پول پرداخت می کند و رقم پرداخت شده در کیف پول مجازی او ظاهر نمی شود، احساس سرقت شدن به مشتری دست می دهد و این شرایط منجر می شود که مشتریان به طور عمومی به شکایت از بازی بپردازند.

اما چه شرایطی موجب این مشکل می شود و چگونه می توان آن را برطرف کرد؟ محتمل ترین دلیل به ناتوانی در ارتباط متناوب اینترنتی باز می گردد که به درستی قادر به پردازش درخواست خرید درون برنامه ای نمی باشد و علی رغم ثبت تراکنش، کارنسی مجازی را به بازیکن تحویل نمی دهد.

بهترین روش جهت رفع این مشکل ذخیره سازی درخواست پرداخت درون برنامه ای ارسال نشده در گوشی کاربر و ارسال کارنسی آنها به محض برقراری ارتباط است. به این طریق مشتری به طور قطع خرید خود را دریافت می کند و احساس سرقت شدن از آنها در بازی به او دست نمی دهد.

نتیجه گیری

Pokémon Go یک لانچ فوق العاده موفق تلقی می شود، با این وجود که بازی مشکلات فنی مشهودی داشت، اما موفقیت کسب شده از سوی آن به ندرت از سوی سایر بازی ها و کمپانی های بازی سازی اتفاق می افتد. درسی که می توان از این موفقیت بزرگ کسب کرد این است که باید پیش از وقوع مشکلات به پیش بینی آنها پرداخت.

با استفاده از یک پلتفرم مدیریت زیرساخت مبتنی بر کلود که در صورت افزایش ناگهانی تعداد کاربران به سرعت قادر به افزایش ظرفیت سرور باشد، تست بازی به صورت گسترده پیش از انتشار و تفکر درباره مشکلات محتمل، تیم های توسعه می توانند مشکلات را پیش از آنکه پیش آیند از بین ببرند. مشکلات فنی ممکن است برای هر تیمی پیش بیاید، اما موفقیت کسب و کارها به میزان پذیرش مشکلات و رفع آنها بستگی دارد.

بازی هایی مانند Pokémon Go اهمیت مقیاس پذیری سرور را برجسته می کند، در این میان مدیریت بازیکن برای یک تجربه خوب و مستمر نقش حیاتی دارد. در بازی Pokémon Go مشکلات پیش آمده برای بازی به ترویج آن نیز کمک کردند و با در دسترس قرار گرفتن مجدد بازی کاربران در شبکه های اجتماعی فعال شده و هیجان خود را به نمایش می گذارند.

 

منبع:

http://www.develop-online.net

این نوشته را به گوگل توصیه کنید :

بسته های آموزشی جذاب!بیشتر