صفحه ی اول؛ 6 ماه گذشته

صفحه ی اول؛ 6 ماه گذشته

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

- داستان از کجا شروع شد

داستان از حدود 6 ماه پیش شروع شد، زمانی که طی جلسه که با مدیرفنی و مدیر پروژه ی یکی از بازی های ایرانی داشتم، تصمیم به طرح ریزی و ایده پردازی برای پیاده سازی کلاین آنلاین ( نرم افزاری شبیه به Steam ) برای یک بازی اول شخص ایرانی شد. و در نهایت بعد از گفتگو و چالش ها و ریسک های زیاد فاز عملیاتی پروژه شروع شد. برای پیاده سازی این سرویس من با چند مشکل روبرو بودم:

 


- پیاده سازی کلاینت آنلاین برای یک بازی اول شخص، باتوجه به تجربه های قبل صنعت بازی ایران ریسک زیادی در درآمد زایی داشت، البته دو دیدگاه وچود دارد برای این مسئله، عده ای این موقعیت را فرصت و عده ای این موقعیت را مانع می بینن، فرصت برای اینکه این سرویس در صورت پیاده سازی بدون باگ اولین کلاینت آنلاین واقعی برای یک بازی اول شخص ایرانی هست که همین مساله می تواند باعث هجوم کاربر بشه، و مانع، بدلیل عدم شناخت کافی از آینده ی بازار، چون هیچ سرویس مشابه ای وجود ندارد.
- یکی از مشکلات اصلی ما در پیاده سازی سرویس، انتخاب صحیح زبان برنامه نویسی بود که دارای سرعت بالا در انجام توسعه در شبکه، ابزارهای متنوع برای پیاده سازی رابط کاربری و مدیریت صحیح مموری باشد، در حقیقت زبان های برنامه نویسی، ابزارهایی برای پیاده سازی سرویس ها هستند و عدم انتخاب صحیح زبان برنامه نویسی باعث بروز مشکلات زیادی در آینده می شود.
- طراحی دیتابیس، برآورد کاربران سرویس در 6 ماه اول لانچ حدود 50 هزار کاربر است. طراحی درست دیتابیس، نرمالایز کردن، ارتباطات صحیح جداول وظیفه ی خطیری بود که باید درست و با دقت انجامش میدادم.
- همیشه، هماهنگی های تیمهای فنی سخت بوده!

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

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

- احتمال شکست از احتمال پیروزی کمتر نبود و به نحوه ی پیاده سازی و خروجی سرویس ارتباط مستقیمی داره : بهتر ~ پیروزی
- پروژه در 6 ماه باید انجام می شد
- هیچ سرمایه ای برای انجام این کار جذب نکردیم

- ایده ی ما، نمونه ی خارجی قدرتمندی داره: STEAM !
- بازی اول شخص ایرانی، بازار کوچکتری داره
- پیدا کردن اسپانسر

 

و چندتا امتیاز داشتیم
 

- ما به انجام پروژه احساس فوق العاده ای داشتیم
- بازی تو STEAM گرین-لایت رو برده بود و میتونستیم بازی رو بزاریم رو استیم
- بازی تو نمایشگاه E3 ارایه شد
و  این !


- اگر شکست بخوریم؟

وقتی ایده ای دارید که در انجام آن بار ریسک مالی مواجه باشید که آیا سرویس تان توانایی بازپرداخت هزینه ی منابع انسانی مصرف شده را دارد یا خیر، قطعا داشتن برنامه ی زمانی برای رسیدن به اهداف کوتاه مدت در تمامی مراحل، یعنی از شروع پردازش ایده تا اولین خروجی مالی از سرویس، مهم ترین نکته ای هست که باید رعایت کنید. هدف گذاری دقیق در مورد تعداد کابران مورد انتظار و مقدار درآمد سرویس وقتی سخت تر می شود که هدف، بازار ایران باشد و هیچ نمونه ی دیگری از سرویس شما وجود نداشته باشد.
برای بالا بردن ضریب اطمینان تیم از خروجی محصول، تصمیم به تحقیقات گسترده کردیم، درآمد ها، فرصت ها و چالش های تیم هایی که در زمینه های دیگری از صنعت بازی در حال ارائه سرویس بودند را کردیم، سرویس های مشابه غیرایرانی مانند STEAM را بصورت عمیق بررسی کردیم و در نهایت با این نتیجه رسیدیم که در صورت پیاده سازی صحیح سرویس می توانیم حتی از انتظاراتمان هم بیشتر دریافت کنیم.
اما! هنوز هم یک مشکل دیگر داشتیم، پیاده سازی سرویس کلاینت بازی، از چند بخش تشکیل می شود، که هر کدوم نیازمند دانش توسعه گری مربوط به خود می باشد، ما نیازمند به استفاده از ابزاری بودیم که انتظاراتمان را در سرعت پاسخگویی، ارتباط با سرویس های خارجی، پردازش های زمانی، رابط کاریری و تعامل با دیتابیس برآورده کند.
در نهایت، می تونم بگم ما برای انجام این پروژه حدود یک ماه تحقیق و جستجو کردیم و وارد فاز عملیاتی شدیم. اگر شکست بخوریم، باز هم تجربه ی خیلی خوبی داریم برای انجام ایده ی بعدیمون (که تو همین زمینه هست) بدست آوردیم و با بازار ایران و جهان بیشتر آشنا شدیم.

- از چه ابزارهایی استفاده کردیم ؟

فکر به آینده ی پروژه، چیزی هست که باعث میشه ما در استفاده از زبان برنامه نویسی و فریم ورک ها با احتیاط تر قدم برداریم، سرویس ما از یک کلاینت که در سیستم عامل ویندوز قابل اجرا هست، و دو سرور پاسخ دهنده به کلاینت تشکیل شده است.
برای پیاده سازی اپلیکیشن دسکتاپ نیاز به یک ساب_سیستم گرافیکی برای رندر رابط کاربری نیاز داشتیم، برای این نیاز دو پاسخ موجود است، WPF، که توسط مایکروسافت در 3 NET. ارائه شد. ما روش اول را انتخاب کردیم، دلیل استفاده از WPF سازگاری کامل با #C بود، و همچنین #C ابزارهای لازم برای برنامه نویسی و توسعه سرورس با شبکه و عملیات پردازشی را خیلی خوب ارائه می کند و همچنین سریع تر گرفتن نتیجه! این به این معنی نبود که چون سریع تر هست، پس بهترین انتخاب هست، اگر از QT استفاده می کردیم، ابزارهای بیشتری در اختیار داشتیم اما نتیجه ی دلخواه برای این فاز از پروژه در زمان طولانی تری بدست می آمد، در مسئولیت تسک های اپلیکیشن دسکتاپ بر عهده ی behzadmokhtarei@ بود که در آینده راجع به بخشی که بهزاد در حال انجام بود اطلاعات بیشتری در اختیارتون قرار می دهم.
در بخش General Server ما ابزارهای متعددی  داشتیم، PHP, Python و Ruby. اینجا قسمتی بود من به عنوان برنامه نویس هم باید درگیر می شدم. خب، من سالهاست که PHP کار میکنم، روی فریم ورک های مختلف؛ من PHP رو انتخاب کردم، با اینکه بهترین انتخاب نبود، اما باز هم از قانون سریع تر گرفتن نتیجه! استفاده کردم و خروجی مطلوب را با استفاده از PHP فراهم کردم.
قسمت دوم، TCP Server کمی متفاوت هست، ما چهارچوب داشتم، یعنی ما نیاز به فریم ورکی داشتیم که علاوه بر مدیریت منابع بر روی ویندوز سرور، امنیت بالا و نگه داری را تامین کند. بهترین و تنها انتخاب در این قسمت ++C بود، با چاشنی QT.

- الان پروژه در چه وضعیتی هست؟

6 ماه از  شروع پروسه ی ایده پردازی تا فاز قابل ارائه ی پروژه گذشته است، سرویس به نسخه ی بتا رسیده، تمام ماژول ها پیاده سازی شده، تست شده و قابل استفاده هستند، اما به Family Test نرسیدیم، با این حال بازی آنلاین رو برای جشنواره بازی های تهران هم فرستادیم که احتمال بهترین بازی سال شدنمون بالاست و در آستانه ی لانچ سرویس هستیم. اینم تصاویری از اپلیکیشن پیاده سازی شده:

ETArmies-Online-Game-Client-Beta




- سامان قراره چه اطلاعاتی رو به ما گزارش بدی؟

الان دارم موزیکی گوش میدم که واقعا بهتون پیشنهاد می کنم ( Radiohead - Yes I Am )، خوب؛در پست های بعدی نگاهی کلی به چند موضوع می کنیم:

 

Business Plan و راه های درآمدزایی ما
بررسی امکانات سرویس
بررسی جزئیات مشکلاتی که مطرح کردم، و نحوه ی هندل کردن آن در یک تیم اسکرام
گپ های تکنیکالی که به وجود اومد، مشکلاتی که ابزارها و فریم ورک ها در حین پیاده سازی برای ما ساختند!
و ارائه ی جامعه ی آماری از کاربران

البته گزینه ی آخر بعد از لانچ سرویس هست.

- بازی رو بپذیرید!
شما هم از سرویس هایی که 6 ماه ازتون وقت گرفت و یا در شرف وقت گرفتن هست و یا اگر می خواهید سرویسی را در 6 ماه آینده راه اندازی کنید، وارد بازی بشید. با استفاده از هشگ IranDevChallenge# در توییتر، میتونید بقیه افرادی که این چلنج رو قبول کردن دنبال کنید. :)

 

 

۰ ۱ دیدگاه

دیدگاه‌ها (۱)

محسن الهامیان

۱۷ شهریور ۹۳ ، ۱۶:۴۰
ممنون بابت اشتراک تجربیات و اطلاعات
هرچند که خیلی جاهاش رو نفهمیدم یعنی چی! :D اما بیشتر دنبال تجربه های مرتبط با مدیریت پروژه و چالش های ایجاد شده در جریان کار هستم.
پیگیر مطالب بعدی هستم. :)

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی