زندگی، فلسفه، تکنولوژی صنعت <- اندیشه ها، احساسات

شیوه درست جلب اعتماد مشتری و برقراری ارتباط

این پست رو بیشتر بدین دلیل می نویسم که تو فیدبک پست قبلیم و پستای قبلش راجع به کار خارجی، شایان و دیگران درخواست کرده بودند و مطلبم کامل نبود و توضیحات بیشتری می خواست. راجع به یافتن پروژه قبلا نوشته بودم که مثلا unity connect و reddit از معدود جاهایی هستند که الآن هنوز ایرانیا می تونند و برند و پروژه بگیرند و برای همین راجع بهش صحبت نمی کنم. البته در باره گرفتن پروژه های مربوط به هنر مثل مدل سازی و concept و ... ممکنه از جاهای دیگه ای هم ممکن باشه که من ندونم. اگه از دوستان هنرمند کسی لطف می کنه و این مطلب رو می خونه، لطفا تو نظرات توضیح بده و یا خودش پستی بنویسه و بده من که لینکشو منتشر کنم. 

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

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

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

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

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

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

۱۸ آبان ۹۷ ، ۲۱:۰۰ ۱ نظر موافقین ۰ مخالفین ۰
اشکان سعیدی مزده

مهمترین مشکلات گرفتن پروژه از خارج

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

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

مشکل دیگر هم آن است که معمولا پروژه هایی که قیمت بهتری دارند، پروژه کامل نیستند و به یک یا چند شخص برای برخی کارهای خود نیاز دارند. البته در سایت هایی مثل upwork و freelancer گه گاه پروژه های خوب هم یافت می شود ولی اولا حد اقل من نتوانستم به عنوان یک ایرانی در آن ها فعالیت کنم و دوما این که تعداد پروژه های خوب در آن ها بسیار کم است. بسیاری از کارها توسط افراد غیر حرفه ای در این سایت ها قرار داده می شوند و شروع شدنش با شما و تمام شدنش با خداست و بسیاری دیگر قیمت های احمقانه ای دارند. مثلا درخواست ساخت بازی COD با زیر 5000 دلار!

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

۱۲ آبان ۹۷ ، ۲۱:۲۶ ۰ نظر موافقین ۰ مخالفین ۰
اشکان سعیدی مزده

طراحی بازی آزادانه بعد از چند سال

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

من دوباره کتاب theory of fun رو خوندم و یه سری ویدیو از یه سری دیزاینر معروف دیدم که در بارش این جا گفتم. شروع کردم به فکر و قبلش هم با یه سری تکنولوژی جالب بر پایه واکسل ها آشنا شده بودم به اسم voxel farm که دوست داشتم ازش استفاده کنم. اول این که بعد چند سال داشتم بازی برای خودم می ساختم و به علاوه بازی دیگه ای رو الگوی شروع و تغییر قرار نمی دادم. تو دو سه بازی قبلی که سعی کرده بودیم تو تیمایی که بودیم بسازم همیشه مثلا می گفتیم بیاید یه بازی عین تانک میکرو بسازیم و بعد شبکه ایش کنیم و فلان بهش اضافه کنیم و یا یه بازی شبیه فلان بازی با این امکانات فلان بازی دیگه. انجام این کار معنیش این بود کار تولید خیلی کندتر از اون حالتایی که گفتم پیش می رفت.

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

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

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

مساله دیگه ای که خیلی جدی باهاش مشکل داشتم چون بازی دیگه ای رو الگو قرار نداده بودم انتخاب حس و تم کلی بازی بودش. مثلا وقتی به اون بازی با مکانیک بر پایه ساخت با واکسل می ساختم، این که آیا المان های پازل زیاد کنم بر حسب فیزیک یا المان های RPG بیارم و یا مثلا المان اکشن توش بذارم جواب دادن بهش سوال آسونی نبودش. این سوال که مثلا آدمی که با building حال می کنه ترجیحش کدوم این المان ها هستش. من نمی خواستم Minecraft v-next بسازم که مثلا رزلوشنش بالاتره. این مساله تصمیم راحتی هست اگر یا شما بازی خاصی تو ذهنتون بوده باشه که همیشه می خواستید بسازید (این ایده ها معمولا ترکیب ایده های بازی های گذشته هستند و گیم دیزاینرای تازه کار به خصوص از این ایده ها دارند، لزوما بد هم نیست) و یا یه بازی دیگه رو الگوی خودتون قرار دادید. مساله این بود که من فکر می کردم مثلا black and white یهو از کجا ایدش اومده و یا mario و ... حتی مثلا یه اسلاید بود از Raph Koster که همه مکانیک های موجود رو توش نوشته و هی فکر می کردم که یه چیز جدید چی در بیارم که خوب اون کار خیلی سخت بود و خیلی از این کارا و ایده ها وقتی قرار باشه کار جدیدی انجام بشه باید با یه نگاه خاص از زاویه خاص پیش بیاد و یا تو تجربه ساخت اتفاق رخ بده.

به طور کلی اون فاز اول این مشکل جهت نداشتن بیشتر بود و این که به این موقعیت فکر نمی کردم که مقداری باید از الگو های خاصی تو بازی پیروی کنم و همه چی رو سعی نکنم از نو بسازم. شاید اون کار می تونست موفق باشه و اگه زمان بود خیلیم می تونست چیز نو آورانه باشه. البته این هم لزوما باعث موفقیت نبودش. مثلا یه بازی ماشین سواری از code masters اومد بیرون که خوب استدیویی که خریده بودند رو تعطیلش کردند. من بیشتر مشکلم این بود که تصمیم در باره نوع جهت گیری کلی بازی خیلی عقب افتادش و مثلا goal های اصلی بازی تعریف نشده بود و هنوزم نشده و الآن دیگه پروژه خارجی گرفتم و دوباره احتمالا فقط آخر هفته ها رو یکی از این اینده ها و چند تازی دیگه ای که نگفتم کار خواهم کرد. مشکلایی که خوردم و باعث شد توی این مدت به نتیجه خاصی نرسم از ناتوانی در مورد رسیدن به یه الگوی کلی که بشه توش مکانیکای کوچیک جا داد یا همون core loop بود تا آسیب دیدن دستم و این که دو هفته هیچ کاری نکردم. همچنین مسایل جانبی دیگه ای هم بود ولی مهمترین چیزی که باید بهش می رسیدم یه core loop بود که با وجود یافتن چندین مکانیک کوچیک جذاب به اون نرسیدم. البته فکر می کنم که به چیزای خوبی رسیدم و اگه ادامش بدم سرعت بالا بره و بهتر به جلو برم. یه توضیح که دلیل این که من نتونستم به core loop برسم این نبود که کلا نمی دونستم باید بهش برسم، بیشتر این بود که اکشن هایی که دنبالشون می رفتم خیلی پخش بودش و مثلا تو الگوی های core loop ژانر خاصی دنبال مکانیک نمی گشتم و حتی تو طول زمان رو نوع حسی که به کاربر می خواستم بدم و تجربش هم خیلی دقیق نبودم و هر مکانیکی که ساختن با واکسل رو معنی دار می کرد رو سعی می کردم پیدا و بررسی کنم که کارم رو وقت گیر می کرد. شاید خوب باشه نسبت به زمانتون مقدار بیشتر /کمتری از الگو های آماده رو در بازیا استفاده کنید. نمی دونم کارم اشتباه بوده و یا فقط تو زمانم به نتیجه نرسیدم ولی می دونم چنین اتفاقایی از اجزای اصلی هر کار نو آورانه ای هست و ازش کلی یاد گرفتم.

اگه سوالی هم هست و چیزی رو باید بیشتر توضیح بدم بپرسید.

۱۴ مرداد ۹۷ ، ۱۷:۲۸ ۰ نظر موافقین ۰ مخالفین ۰
اشکان سعیدی مزده

درک درست مطالب یک کتاب یا نویسنده

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

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

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

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

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

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

من معمولا بعد از خواندن یک کتاب یا گاهی قبل از آن (برای این که بفهمم آیا ارزش خواندن دارد یا خیر) زندگی و عقاید نویسنده را مطالعه می کنم (حد اقل به صفحه ویکی پدیای او می روم و آن را کامل می خوانم). گاهی نظرات دیگران راجع به کتاب را هم می خوانم. مثلا بعد از خواندن کتاب صد سال تنهایی واقعا گیج بودم که چرا این کتاب چنین شهرتی دارد و این قدر مورد ستایش قرار می گیرد. بعد از خواندن مطالب دیگران متوجه شدم که اولا بسیاری از اتفاقات درون کتاب برگرفته از اتفاقات واقعی دورانی در آمریکای جنوبی و برخورد آمریکا با کشور های این منطقه به خصوص کلمبیا است. همچنین متوجه شدم که حس کتاب و فضای آمریکای جنوبیش و حالت خرافه هایش و گاه زود گذشتن از مطالبش و خالی بودن جای حرف های کمتر کلی درونش توسط خیلی ها حس شده و خیلی ها ایراد های مختلفی را به کتاب وارد می دانند و شبیه من راجع به آن فکر می کنند. این فکر را هم برخی از دوستانم که کتاب را خوانده بودند، هم برخی منتقدین ادبی/نویسندگان دیگر و هم برخی نظرات در good reads داشتند. همچنین حرف های خود مارکز و روش برخوردش با مسایل در زندگی (مثل دوستی با یک دیکتاتور چون او از نظر ادبی دانا و جالب است و ...) برایم بیشتر نوع دیدگاه وی را روشن کرد. جوایز نوبل و ... هم که معمولا تحت تاثیر عوامل مختلفی هستند و خوب اگر مثلا در دورانی magic realism روی بورس باشد و ادبای زمان به این نتیجه برسند که بهترین نمونه آن آقای مارکز است خوب جایزه را به ایشان می دهند. 

به نظرم اگر این بررسی ها را انجام دهیم بسیاری از کتاب های نچندان مشهور برایمان بسیار ارزشمنتر خواهند شد و ممکن است گول شهرت برخی کتاب ها را نخوریم و بی خودی کلا فکر نکنیم که مثلا چون فلان نویسنده مشهور بوده یعنی حتما اگر هم ما چیز خوبی در آن نمی بینیم، باید آن را ستایش کنیم. همچنین با درک بهتر و واقعی از نظر/دیدگاه نویسنده ها با دیدگاه های واقعی بیشتری آشنا می شویم و احتمالا درستتر تصمیم می گیریم و بیشتر می آموزیم و همچنین با شجاعت بیشتری تصمیم هایمان را بیان/عمل می کنیم. این آخری بسیار در دوران ما مهم است که راست تند رو در دنیا هر که با ارزش های مذهبی شدیدش مخالف باشد را فاسد و چپ تندروی آن هرکه با عقایدش مخالف باشد را نادان و عقب مانده می داند و حدودا از بهترین پشتیبانی رسانه ای ممکن هم برخوردار است، مثلا اگر با دیکتاتوری بر پایه عقیده خاصی مخالف باشید با خواندن درست کتابی مثل 1984 و زندگی اورول و کتاب brave new world و زندگی هاکسلی و ... می توانید با درک بهتری در این باره صحبت و فکر کنید. اگر با همچنس گرایی مخالفید و یا حد اقل دلیل برای پرستش این پدیده نمی بینید، با خواندن نظرات مختلف راجع به آن هم در دنیای حال و در طول تاریخ و دلیل نظرات نویسندگان و یا حتی تحقیقات علمی بهتری می توانید با عقیده خودتان در برابر موج سنگین طرفدار آن کنار بیایید. و این بزرگنمایی نیست زیرا هم موج طرفداریش آن قدر سنگین است که مثلا یکی از معدود مطالبی که بخشی از فرایند تولید و فروش بازی نیست و در گاماسوترا به شکل مدام می توان در باره اش پست نوشت و feature شد همین LGBTQ+ و مطالب مربوط به آن است (مثلا تریلر the last of us جدید به خاطر آن ستایش شده). و سختی بیان نظرتان یا آن جایی سخت می شود که شما را می چسبانند به کسانی که این افراد را اعدام می کردند/می کنند و ... خواندن کتاب و تحقیقات به شکل دقیق و بررسی نویسنده به شما کمک می کند حتی دلیل رفتار فعلی این موج را نیز بدانید. یکی از کسانی که راجع به اثر گذشته و محیط و ... در تفکرات ما خوب صحبت می کند آقای Jordan Peterson است.

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

۰۶ تیر ۹۷ ، ۱۳:۲۶ ۱ نظر موافقین ۰ مخالفین ۰
اشکان سعیدی مزده

تفاوت تولید بازی با تولید انواع دیگر نرم افزار و راه های دست و پنجه نرم کردن با آن

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

وقتی شما یک نرم افزار از هر نوعی جز بازی تولید می کنید دو چیز می تونه تولیدتون رو به عقب بندازه که پیشبینیشون سخت هست و محاسبه زمانی که می گیرند هم سخت هست. اول مسایل فنی که شما قصد حلشون رو دارید و یا قبلا حل نشدن و یا بسیار سخت هستند و شما تجربه ای در اون ندارید و دوم مسایل زیبایی شناختی و مسایل مربوط به تجربه کاربری (UX) نرم افزار.

مثلا اگر شما در حال ساخت یک نرم افزار سمت سرور پیچیده و یا یک سیستم عامل یا یک زبان برنامه نویسی جدید با ویژگی های خاص و type system خاص باشید ممکن است مسایل فنی حل نشده زیادی داشته باشید. در مورد تجربه کاربری هم حتی در تولید سایت های معمولی و کوچک به این مشکل بر بخورید. مثلا اگر مشتری شما یا خودتان از تجرقبه کاربری راضی نباشید، یافتن UI و UX مناسب ممکن است زمان خوبی طول بکشد. البته در بیشتر مواقع شما زمان کمتری برای حل دومی نیاز دارید.

این مسایل فقط تا موقعی مشکل هستند که شما قصد کپی کردن UX و UI و یا قابلیت های معمول نرم افزارهای دیگری را نداشته باشید. در آن صورت برنامه نویسی شما فرق زیادی با کار دستگاه کپی ندارد و عملا به قول یکی از دوستان کار یدی است (کار با دست مثل نجاری ساده یا تکه تکه کردن سنگ و چوب و ...).

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

این کار برای بازی هایی که سعی می کنند خاص باشند و حرف تازه ای برای گفتن داشته باشند بسیار سختتر هم هست. در مقابل اگر مثلا شما بخواهید به بازی shooter معمول خود یکی دو قابلیت اضافه کنید از نظرهایی کارتان راحتتر است هر چند باید مراقب ناراحت نکردن مخاطبین خود باشید. از بازی های گروه کاملا تازه منظورم بازی هایی مثل papers please یا this war of mine یا minecraft هستند که اساسا شبیه بازی خاصی قبل از خود نیستند و شما با یک بوم سفید سخت سر و کار دارید که اگر خط اول را در آن بکشید یا کلمه اول را بنویسید بقیه اش خودش می آید (حد اقل اگر مثل ایرج میرزا معتقد باشید که شاعری فقط طبع روان می خواهد، که من موافق نیستم) اما این بوم سفید سخت است و هر چه رویش بکشید و بنویسید بد جلوه می کند و ... 

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

اولا کتاب بخوانید و فیلم ببینید و در باره مسایل مختلف تحقیق کنید تا با ایده های مختلف و مسایل متفاوت آشنا شوید. اگر اطرافتان آدم های جالب زیاد هستند با آن ها ایده هایتان را در میان بگذارید و بازی را به آن ها نشان دهید. یا یک مکانیک را به آنها نشان داده و توضیح دهید. گاهی حرفهایی می زنند که شاید دقیقا قابل پیاده سازی نباشند اما اگر شما یاد بگیرید خوب گوش کنید ممکن است خیلی هم خوب باشد و بتوانید از آن الهام بگیرید. به خصوص کسانی که بازی زیاد نکرده اند و تا بازی را می بینند نمی گویند باید کجایش را مثل Call Of Duty کنید (و یا نسخه های تیریپ انتلکتی که می گویند کجایش باید مثل فلان بازی ایندی باشد که در عین شایستگی معروف نشد و هدف این است که شما بدانید آن ها چه قدر خفن هستند) :) 

در حد امکان برخی چیزهایی که به ذهنتان جالب می آید را prototype کنید و با آن ها بازی کنید. لازم نیست پیاده سازی کاملی باشد. اگر می خواهید یک آیتم جدید تست کنید 1000 تا از آن در اختیار کاربر بگذارید و تمام وسایل لازم را هم دم دست کاربر ظاهر کنید و با بازی سر و کله بزنید. هی بازی کنید و مکانیک را تکرار کنید و در این میان گاهی متوجه می شوید کدام بخش و چرا جالب است. 

به تکنولوژی هایی که می توانید تولید کنید و کاربرد های مختلفشان در نوع بازیتان فکر کنید و ببینید چه طور می توانید برای gameplay متفاوت از آن ها استفاده کنید. مثلا من با دانستن این که می توانم در بازیم با voxel هایی که می سازم path finding هم انجام دهم، سیستم جاده و ماشین ساختم. تنها دلیل به نظر رسیدن من هم این بود که می دانستم این کار را می توان کرد و فکر می کردم که چه استفاده ای از یک سیستم path finding می توان کرد به طوری که هدف جنگ نباشد. به این نتیجه رسیدم که باید هدف جا به جایی باشد و کم کم به ایده واگن رسیدم. شاید کارت های درون معدن فیلمی که دیدم هم بی اثر نبودند یا رفیق بد حتی.

سعی کنید به تجربیاتی که داشته اید فکر کنید. به تجربیات کودکیتان. شاید ما مثل میاموتو ماریوی بعدی را از تجربیات کودکیمان نساختیم و شایدی که احتمالتر که مثل او بگوییم من کاری نکردم و نمی دانم چرا این قدر معروف شده و شاید کار خدا بوده است (ترجمه انگلیسی می گفت intervention from above با توجه با ژاپنی بودن میاموتو من نمی دانم او دقیقا چه گفت). ولی به هر حال این بسیار مفید است. من خودم یکی از مکانیک های اصلی بازی را از بازی در کودکیم الهام گرفتم که هنگام برخی سفر ها با بچه های دیگر بوته های درون صحرا را می کندیم و روی هم جمع کرده و آتش می زدیم.

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

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

۰۵ خرداد ۹۷ ، ۲۱:۴۵ ۱ نظر موافقین ۰ مخالفین ۰
اشکان سعیدی مزده

دلیل وضعیت فعلی بازی سازی مستقل از دید من

قبلا در پستی یه فرم قرار دادم که افراد نظراتشون رو در این باره بگن و داستانشونو که خوب فقط یه پاسخ گرفتم که نا مفهوم بود که فردی که لطف کرده بود و فرم رو پر کرده بود ، چه تصمیماتی گرفته و چه نتیجه ای که در وضعیت فعلی هستش. انتشارش خیلی فایده ای نمی تونست داشته باشه. خودم قول داده بودم که نظرم رو و داستانم رو بگم که خوب این کار رو می کنم. 
من در دوره مدرسه بازی سازی رو شروع کردم و اولشم یه کمی انگیزه من و دوستم سینا که با هم این کار رو شروع کردیم برای یه پروژه زیاد شد. پروژه رو معلممون قرار بود بهمون بده که آزمایشگاه فیزیک بسازیم تو game maker برای سی دی های آموزشی که منتشر می کرد. اون پروژه هرگز انجام نشد ولی ما تو بازی سازی موندیم. بعدا یه پروژه های کوچیکی خودمون انجام دادیم و یه بار هم تو مسابقه yoyogames شرکت کردیم که خوب تجربه کم بود و زمان هم و به نتیجه خاصی نرسیدیم. با یه آقایی آشنا شدیم که 10 میلیون به ما پول داد برای خرید لایسنس برنامه و ساخت مدل و کلا آرت و ما هم قرار شد رو بازی مجانی کار کنیم و هرکس یک سوم پروژه رو برداره. به علل مختلف از جمله کم تجربگی ما و کم بودن پول و ... پروژه بعد دو سال و نیم کنسل شد و بعد از اون چون دیگه باید برای خودم درآمد می داشتم تصمیم گرفتم فعلا روی پروژه مشتری کار کنم. قبل اون هم چندین بار روی پروژه های دیگران کار کرده بودیم. از یه سری بازی iPhone خیلی داغون برای یه نفر که شغل اصلیش رستوران بود تا پروژه های کوچیک برای کسانی در انجمن یونیتی و یه سری بازی برای کاربرد های پزشکی در فیزیوتراپی ها. ولی بعد از اون تا مدت زیادی به ساخت بازی مستقل فکر هم نمی کردم چون نه تیمش بود و نه پول زیادی که بشه ریسک کرد روش. 
وقتی تجربه و پولم بیشتر شد و یه تیم کوچیکی دست و پا شد دوباره یه سعیی کردم دو سه بار با یه بازی تحت شبکه تانک و یه بازی واقعا بد روی کافه بازار که خیلی ساده بود و مشکلات فراوان داشت و لینکشو روم هم نمی شه بذارم. بازی تانک همونی هست که رو سایت آپادانا رایگان گذاشتیم برای آموزش بقیه بگیرندش و خوب به نتیجه نرسید. بین اون همه الآن دوباره دارم جدیترین سعیمو بعد اون بازی با سینا انجام می دم و بازی نم نمک پیش می ره. بازی که با سینا می ساختیم کشاورزی سه بعدی مثل harvest moon بودش و برای فیسبوک داشتیم می ساختیمش. اون موقع mafia wars و farmville و امثالشون خیلی گرفته بودند و ما اول شروع کردیم یه چیزی مثل second life بسازیم و بعد سویچ کردیم رو این. 
حالا که اینا رو گفتم سوالات توی فرم رو هم جواب می دم. اولا که رویای ساخت چیز خاصی رو ندارم ولی همیشه دوست داشتم بازی روی کامپیوتر یا کنسول بسازم و بازی نسبتا پیچیده که حرفی هم بخواد بزنه به جز این که سرگرم کننده هستش و خیلی علاقه داشتم که نو آوری درش داشته باشه. بازی که دارم می سازم با voxel farm و یونیتی هستش و واکسلیه و این بازی به شکل sandbox هست و المان های مختلفی رو دارم prototype می کنم و بهش اضافه می کنم. تا این جا احتمالا تو یه دنیایی یه سری آدم رها می شند که باید کارایی بکنند مثل جاده سازی و راه انداختن یه سری کارت/قطار روشون که یه سری بار جا به جا کنند و بار ها رو می بری و می فروشی و کارای دیگه ای مثل کندن تونل و فراری دادن حیوونا و کارای عجیب دیگه ای هم باید انجام بدین و شبیه بازی های survival معمول می خوام نباشه. حد اقل کل کارتون پیدا کردن material و crafting و جنگ نباشه. شایدم به اون سمت رفت. الآن زوده که بخوام قطعی بگم. 
دلیل این که تا حالا نشده بازی خوبی برای خودم بسازم و اگرم پروژه خوب بوده مال مشتری بوده این بود که اون اوایل که قصدش جدیتر بود، دانش و تجربمون کم بود. هم دانش چگونگی تولید و هم کار با دیگران و هم برنامه ریزی و .... توانایی کد نویسیمونم کمتر بود ولی اصلا مشکل اصلی نبود و به نظرم برای هر پروژه حدودی توانایی های فنیمون خوب بود. پروژه کشوارزیمون ولی scope کلیش خیلی برای ما بزرگ بود و خوب تجربه سفارش آرت و کار با هم و ... هم نداشتیم. بعد از اون هم گاهی مشکل مالی بود و نبودن سرمایه لازم برای انجام کار و گاهی استخدام افراد نامناسب و رفتار اشتباه با اون ها. مثلا الآن فهمیدم دادن آزادی کامل به کسی که توانایی کمی داره می تونه باعث مشکلات زیادی بشه و روشی که امثال valve انجام می دن فقط با افراد خیلی خوب و منطقی و با شخصیت مناسب قابل انجام هست. به نظرم همیشه باید سعی برای رسیدن به حالت flat کامل باشه ولی گاهی بعضی افراد رو بهتره task بهشون بدی و نتیجه بخوای و خودشونم همینو می خوان. با بعضی ها کمتر باید خودمونی شد و ... مثلا من یک بار با فردی رو به رو بودم که اگر سر کار باهات مشکلی پیدا می کرد به علت ضعف شخصیتی سعی می کرد تو مسایل غیر کاری تا جایی که می تونه برات مشکل درست کنه. همون آدم رو می شد فقط یه سری تسک های ساده بهش داد و باهاش نزدیک نشد و برای بعضی کارها ازش استفاده کرد. البته شاید اون طور هم دوامش کم بود. دقیق نمی تونم بگم ولی می دونم که دادن قدرت و آزادی و توقع برخورد منطقی برای همه آدم ها چیز عادی نیست. 
الآن فکر می کنم که چیزی که لازم دارم اینه که یه هسته خوب برای تیم از آدمای خیلی خوب بچینم که بشه بهشون اعتماد کرد و کار رو بهشون سپرد. مثل کاری که توی آپادانا انجام دادیم و موفق هم بودیم به نسبت و با این که مثل همه مشکلاتی داشتیم سر راه، مشکل شدیدی که باعث از بین رفتن همه چی بشه پیش نیومد و مشکلات به وجود اومده حل شد. یه prototype خوب لازمه و بعدشم باید بتونیم سرمایه بگیریم که با خیال راحت کار رو ادامه بدیم. تجربه هم قطعا بعد این 10-11 سال خیلی بیشتر پیدا کردم و تو تولید چند بازی و نرم افزار نقش های مختلف داشتم از برنامه نویس تازه کار تا کارای تصمیمی مثل عضویت توی board شرکت (وقتی تو MuchDifferent بودم) که حس می کنم کمک زیادی بهم بکنه در انتخاب آدمای مناسبتر و در رفتارم و تصمیمام در مورد کار و شرکام و ... 
در باره صنعت هم باید بگم که انتقاد دارم ولی چیزای خوب زیادی هم هست. آدمای زیادی هستند که می خوان کار کنند و این خوبه. قدیما آدمای حرفه ایتری به فکر اومدن تو game  می افتادن و خوب تعدادشون کمتر بود و الآن یافتنشون از بین تعداد زیاد کسایی که وارد می شن گاهی سختتره و اینم شاید بخشیش هم اشکالی قدیمیترا بوده که دانششون منتقل نشده. از نظر برخوردی و شخصیتی هم از بچه لوس که هنوز هیچ کار نکرده فکر می کنه بزرگترین خفن گیم دنیاس دیدم تا آدمای باحال منطقی و خوب. فکر نمی کنم هنوز اون قدر تعدادمون زیاد شده باشه که بخش ها و زیر فرهنگ های جدی زیادی وجود داشته باشند. فقط امیدوارم هممون به هم کمک کنیم که بهترا بیشتر دیده شن و اونا که کمتر خوبند بهتر بشن و بالا کشیده بشن تا شاید اتفاقای خوبی رخ بده. 
از نظر عامل تاثیر گذار هم فکر می کنم هم نبود سرمایه به خصوص اون قدیما که آرزو ها بزرگتر بود خیلی اذیت کرد و هم نبودن دانش و تجربه کافی قطعا دردسر ساز بوده و الآن بیشتر هست. اون تیمای اولی که اومدن بازی پی سی بسازند برای کل دنیا معمولا مشکلات مادی بزرگترین مشکلشون بود و از نظر توانایی فنی و هنری و خواستن مشکلی نداشتن ولی الآن خیلی بیشتر این یکی مشکلا اومده رو و خیلیا میان که سریع یه چیز ساده بسازند بذارن کافه پول دار شن که از دید من حرکت به جلو نیست ولی ممکنه بخشیش هم برای بعضیا دلیلش اقتصادی باشه و بخوان بعدش برن سر کارای جدیتر. این که هی می گم قدیمیا و جدیدا نمی خوام بگم بعد ها هرکی اومد بد بود ها خدایی نکرده. منظورم اینه که خوب بعد اومدن کافه و گرفتن چند بازی و شاید یه کم قبلیش تعداد بیشتری آدم اومد و خوب تو همه جا وقتی تعداد می ره بالا کیفیت کلی میاد پایین. اون گروه اولی که بازی ساز شدن تو ایران رسما یه سری دیوونه بودن که یه رویا ها و فکرای عجیبی داشتن و احتمالا هممون فکر می کردیم که جادو خواهیم کرد و عصای موسی داریم و همه مشکلاتو می زنیم برن کنار :) که البته بعضیا تا حدی زدن که دمشون گرم.

آها انگیزه شخصیم هم این طوری شروع شد که من خوب خیلی از کودکی بازی می کردم و ذهنم خیال پرداز بود. اسباب بازی ایده عالم یه چیزی بود عین خمیر بازی ولی محکم. مثلا یه عالمه دونه ریز که به هم بچسبونی هرچی می خوای بسازی. پسر خالم هم یه بار از سفر برام یه خونه سازی اورده بود که خیلی ریز بود و کلی باهاش حال می کردم. بعدا ها که کد زدم دیدم دوست ندارم برنامه اداری بنویسم و دلم می خواد یه برنامه بنویسم که یه کار خاصی کنه. اولش از مثلا برنامه ماشین حساب خیلی خفن و آموزش ریاضی با برنامه به بچه ها شروع شد و بعد که تصادفا game maker رو تو یه سی دی دیدم، دیگه زندگیم اون زندگی قبلی نشد. این که می گم حرف نیستا. شبا وقت خواب هی فکر می کردم مثلا تو شورش اون کارو چه طوری پیاده کردن، یا مثلا فیفا یا ماریو کارت یا ... چه طوری دو بعدی بودن ولی اون شکلی. ماریو پرششو چه طور می شه کد کرد. و بعد بعضیاشو سعی می کردم کد کنم و بعضیا رو نمی تونستم و بعضیا رو می تونستم و کلی حال می کردم. الآنم که خدمت شمام شبا موقع خواب و صبح موقع ورزش فکر می کنم که فلان مکانیک خوبه یا نه و چه طوری کدش کنم و ...
۲۶ ارديبهشت ۹۷ ، ۱۳:۰۷ ۱ نظر موافقین ۰ مخالفین ۰
اشکان سعیدی مزده

بیایید سعی کنیم راجع به هم دیگر بیشتر بدانیم تا شاید بتوانیم صنعت را بهتر به جلو ببریم

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

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

می توانید فرم را از این جا پر کنید.

۰۸ ارديبهشت ۹۷ ، ۱۰:۱۰ ۰ نظر موافقین ۰ مخالفین ۰
اشکان سعیدی مزده

یه سری کتاب

امروز کلی تستای عجیب دارم که برای همش هی باید build  رو iOS بگیرم که با یه MacBook سه چهار ساله و یونیتی کلی وقته. تصمیم گرفتم این وسط یه کار خوبی که از آقای فصیحی یاد گرفتم رو شروع کنم. یه سری از کتابایی که چند وقت گذشته خوندم رو اسمشو می نویسم و کمی توضیح می دم. ایشون این کارو زیاد می کرد قبلنا. چون خوبه بقیه پستاشونم ببینید لینک به پست خاصی نمی دم.
در چند وقت گذشته کتاب فنی زیاد نخوندم. به آمازون و اینا هم چون این سیستم بلاگ ، پلاگین نداره لینک نمی تونم بدم.
بینوایان: من کلا ادبیات کلاسیک زیاد نخوندم. یعنی کلا تو زندگیم کتاب خیلی نخوندم :( و زیر 100 تا خوندم. از حدود 22-23 سالگی شروع کردم بفکر کنم. این کتاب سومین کتابی بود که از ادبیات کلاسیک می خوندم و باید بگم خیلی از فیلم و کارتونو هر چیز دیگه ای که ازش دیدین بهتره. فرق بزرگش اینه که هم داستان کامل خیلی طولانیتره و از اون مهمتر، پر مطالب جدی در باره مسایلی مثل قانون، اخلاق، فلسفه، جنگ، میزان درستی قانون و محدودیت هاش، مذهب، معنویات و .... داره. یعنی شبیه تولستوی گه گاه داستان اصلی رها شده و به این مسایل مربوط پرداخته شده. تنها نکته منفی کتاب این بود که گاهی مسایل کناری که توصیف می کرد اصلا جالب نبود برام و حوصلم سر می رفتش. مثلا یه تعداد خوبی صفحه به توضیح شکل داخل معبد راهبه ها توضیح می داد که حوصلم سر رفت. یا مثلا جای دیگه ای راجع به شبکه فاضلاب پاریس و باز سازی هاش و ... توضیح می ده. احتمالا همینا برای یک فرانسوی و یا کسی در تاریخ نزدیکتر به سال نوشته شدن جذابتر بوده. بعد از این کتاب یه کوچیک از کوژپشت نتردام رو خوندم که فعلا ولش کردم تا بعد. راستی من ترجمه انگلیسی موجود روی kindle رو خوندم. این که نسخه بهتری هست یا نه و این که فارسی کدومش بهتره رو نمی دونم. 

Diffusion of innovations نوشته Everett M Rogers این کتاب راجع به این هست که یک اختراع چه طور بین مردم گسترش پیدا می کنه و هر ایده نویی رو هم اختراع فرض کرده. مثلا به جز هواپیما و فکس به ایده نوی کنترل خانواده و جمعیت در یک روستا و یا روش جدید شستن دست و میوه و ... هم اختراع/نو آوری می گه. این کتاب عالی بود و بهترین نکته این بود که به شکل آکادمیک با بررسی انواع دیدگاه و تاریخچه هر چیزی و انواع روش تحقیق یه دید کلی بسیار خوب به آدم می داد. من این کتاب رو هم زمان با The tipping point خوندم و اون به نظرم مزخرف اومد در برابر این. تنها نکته کتاب که می تونه منفی باشه اینه که چون آکادمیک هست گاهی قلمش خیلی خشک می شه و خوب یه کم هم طولانی هست. یه چیز خیلی جذاب دیگه توش هست که به طبعات منفی اختراع ها می پردازه. مثلا یه داستان داره که توش تعریف می کنه ، کشیشا و خیر خواها تو استرالیا یه سری تبر فولادی داده بودند به یه سری از این قبایل اون جا که به جای آسایش باعث شد برای گرفتن تبر هم حتی دختراشونو بفروشند، کلی تنبل بشند و به جای تولید بیشتر، بیشتر بخوابند و ... ما معمولا نگاهمون به نو آوری صرفا مثبته که هم دلایلش رو بررسی می کنه و هم بحث مناسب انجام می ده.

The tipping point نوشته Malcolm Gladwell این کتاب از دیدگاه اپیدمی به نشر ایده ها و وقایع و کلا مفاهیم اجتماعی می پردازه. از بررسی انتشار یک مد تا بررسی از بین رفتن خلاف در New York تو کتاب داستان هست. بعضی از داستانا با کتاب قبل یکیه و با این که قلم گلدول بسیار شیرینه و کلا کتاب pop هستش و عمقش کمتره، خوندنش خیلی راحت و ملوه. هر چند کتاب دیدگاهش خیلی یه طرفس و در ضمن به نظر من نویسنده که به شکل رادیکالی لیبراله، زیادی آسمون ریسمون به هم می بافه که ثابت کنه برخی نظرای دیگه اش راجع به ارزش های بشر و نوع برخی برخورد ها درسته. کلا کتاب قبل و ترجیح می دم و این کتاب به نظرم حتی می تونه گول زننده هم باشه. کتاب جالبه و ایده کلیش و نگاه کلیش لنز جالبی هست برای نگاه و بررسی به وقایع یا حتی استفاده برای فروش و ... اما باید به نظرم این موضوع در نظر گرفته بشه که میزان مطالب علمی کتاب بسیار کمه (در مقایسه با کتاب قبل) و دیدگاه جامعی نداره. 

Philosphical investigations نوشته Ludvig Wittgenstein این کتاب یه کم سخت و پیچیده هست و گاهی برای من لازم بود هر صفحه رو دو بار بخونم. البته ظاهرا بهتر بود کتاب اول ایشون رو اول می خوندم. کتاب اولش متاثر از تفکرات راسل و کلا دورانش سعی در این داشته که ساختار منطقی کاملی برای تعریف همه چیز پیدا کنه و طبعا ابزارش منطق و یافتن یه سری گزاره هایی بوده که می بایست پایه همه چیز های دیگه قرار می گرفتند. این کتاب بیش از سی سال بعد اون نوشته شده و در باره غیر ممکن بودن اون کار هست. کتاب کلا در باره این هست که زبان ما چه قدر به تجره ما وابسته هست و هر کلمه چه قدر به تعریفی که ما ازش می کنیم و موقعیتی (context)ی که در اون استفاده می شه چه قدر تغییرش می ده و ... بخش اول کتاب پر از بازی های زبانی و مثال از انواع بازی و تعامل و ... هست که سعی می کنه انواع مشکلات مربوط رو نشون بده و ثابت بکنه. یه 20 صفحه از کتاب موند و هنوز تمومش نکردم چون وقت نشده و از این کتابا هم نیست برداری دو صفحشو بخونی بذاری بعدا و ... حیف می شه. اگه تو جو خوندن کتابای فلسفه و منطق این طوری جدی هستید توصیه می کنم و اگه نیستید هم خوندنش و یا نگاه بهش رو توصیه می کنم. چون هر مطلبش شبیه به کتاب "چنین گفت زرتشت" نیچه یک مطلب کوتاه هست و بریده بریده، هم خوندنش راحت می شه و هم چون ساختار کلی نداره (کتاب کلا بر علیه ساختاره) ، فهمش کمی سخت. 

برادران کارامازوف نوشته داستایوسکی من ترجمه بدش رو از gutemberg گرفتم و خوندمو وسطش فهمیدم. کلا این کتاب و crime and punishment رو دلم می خواست بخونم چون از اثرات معروف کلاسیک بودند و چون تولستوی اثر خوبی به عنوان یه روس روم گذاشته بود. اول بگم که اصلا در حد تولستوی نیست و می خوره تو ذوقتون اگه دنبال همچون شاهکارایی باشید. کلا کتاب خوبیه و داستان جالبی داره ولی قلم خیلی جذابی و قوی نداره و ظاهرا همه هم تو منتقدا موافقند با این. وسط خوندنش تو The Ney Yorker به یه مطلب از مصاحبه با مترجم های مختلف این کتاب برخوردم که بسیار جالب بود. چیز جالبی که تو ادبیات کلاسیک و یا حد اقل این دو تا کتاب این پست بود اینه که راجع به خیلی چیزا که تو جامعه امروز بحث نمی شه بحث می کنند. مثلا در باره وطن پرستی، برتر دیدن نژاد و یا مثلا نقش و جای معنویات تو زندگی، تاریخ دین و خوبیا و بدیاش و ... ما اصلا بحث نمی کنیم. تو غرب هم در باره بعضیش بحث نمی شه تا جایی که ما از بیرون می بینیم و در باره بعضی می شه. اون قدر بعضی بحثا سخته که مثلا وقتی تو theory of fun می خواست راجع به این که چه کارایی رو مردا و چه کارایی رو زنا معمولا بهتر انجام می دن، با این که پشت حرفش و دلیلش تحقیق دانشگاهی بود، قشنگ اول کلی گارد ها رو نرم کرد و گفت که من sexist نیستم و ... بعد حرفشو زد. در باره بعضیای دیگه شون هم مثل تو کشورایی مثل ما بحث نمی شه. گذشته از اون کتاب راجع به انواع تفکری بود که ذهن آدم ها و به طور خاص جوانان روس تو اون دوره رو دوره کرده و چیزایی که تو زندگی پیش میاد و نوع برخورد آدمای مختلف با فکرای مختلف باهاشون و این کتاب هم مقداری راجع به قانون و مجازات و این که چه قدر می تونه گاهی خلاف هدف اصلیش عمل کنه بود. 


کلا این که می گم کتاب در باره فلان بود یه کم حسش خوب نیست، شاید بهتره بگم چیزی که من الآن ازش یادمه بعد 3-4 ماه و اثری که روم مونده اینه. چون حافظه من ضعیفه و خیلی چیزا رو فراموش می کنم. تو 5-6 ماه گذشته طقریبا فقط همینا رو خوندم چون کار زیاد داشتم. امیدوارم بیشتر شه و بعدا هم در باره کتابایی که قبلترش خوندم و دوست داشتم، اگه به حد کافی یادم بود می نویسم.

۰۹ اسفند ۹۶ ، ۱۹:۲۵ ۰ نظر موافقین ۰ مخالفین ۰
اشکان سعیدی مزده

کد ناهمگام (Asynchronous) چیست و چرا مهم است؟

با تشکر از حجت جعفری برای ترجمه کله asynchronous

از آن جایی که به عقیده من دانستن مطالب پایه ای و احتمالا خواندن/مطالعه برنامه ها و روش های طراحی دیگران قویترین ابزارهای پیشرفت ما برنامه نویس ها هستند، امروز می خواهم در باره کد ناهمگام و اهمیت آن صحبت کنم. کد ناهمگام امروزه دیگر یک مفهوم خاص برای جاهای خاص نیست و در بسیاری از پلتفرم های برنامه نویسی رخنه کرده است (اگر معادل فارسی خوب و قابل فهم غیر عجیب برای platform می دانید، لطفا در کامنت ها به من بگویید. اخطار کسی که سکو را پیشنهاد دهد در طبقه دوازدهم جهنم در کنار javascript و visual basic با نسخه ابتدایی DOS همنشین و ... خواهد شد). تقریبا همه توابع در API های Universal Windows Platform در Windows 10 ناهمگام هستند و مشهور است که در Facebook تمام API های داخلی مورد استفاده برنامه نویس ها ناهمگام هستند.
اما کد ناهمگام چیست؟ برنامه ای که در آن شما پس از درخواستی برای انجام یک کار، منتظر تمام شدن آن نمانید و به کار خود تا جای ممکن ادامه دهید و پس از باز گشتن پاسخ ، پردازش درخواست خود را ادامه دهید، شما در حال استفاده از کد ناهمگام هستید. معمولا درخواست های کند مثل خواندن و نوشتن دستگاه های ورودی I/O چون دیسک و یا خواندن/نوشتن در شبکه و هر عمل کند دیگری که احتمالا به این سیستم های ورودی و خروجی مربوط است و/یا شامل پردازش های طولانی می شوند به شکل ناهمگام پیاده سازی می شوند.
در زبان های مختلف برای اجرای کد ناهمگام یا تعریف آن مکانیزم های مختلفی وجود دارد. مثلا در سی شارپ async await تقریبا راحتترین روش برای فهم کد ناهمگام و تعریف و اجرای آن است که به وسیله بسیاری زبان های دیگر نیز در سال های اخیر پیاده سازی شده است. در برخی زبان ها به شما یک آبجکت به نام future برگردانده می شود که شما می توانید با استفاده از آن چک کنید که آیا عملیات ناهمگام تمام شده است یا خیر و یا برنامه را تا تمام شدن آن بلاک کنید. بلاک کردن برنامه بدین معنا خواهد بود که thread جاری برنامه دیگر هیچ کدی را اجرا نمی کند تا عملیات ناهمگام مربوطه به پایان برسد. از این لحظه به بعد برنامه شما به شکل همگام منتظر پاسخ آن عملیات خواهد ماند. اگر دقیقا پس از فراخوانی کد ناهمگام منتظر جواب آن برنامه را بلاک کنید آن گاه گویی کد همگام اجرا کرده اید.
معمولا کد ناهمگام به دو روش push و Pull قابل پیاده سازی است. در روش pull برنامه اصلی باید در بازه های زمانی چک کند و ببیند که آیا عملیات گرفتن داده از شبکه یا نوشتن روی دیسک و ... تمام شده است یا خیر. این روش به صرفه نیست و دیگر طقریبا مورد استفاده قرار نمی گیرد. در روش push طرف دیگر عملیات ناهمگام (مثلا دیسک) به شما سیگنالی ارسال می کند و یا وقفه ای تولید می کند که نشان می دهد عملیات تمام شده و شما می توانید نتیجه را گرفته و کار مربوط به آن عملیات را ادامه دهید. توضیحات کامل چگونگی اتفاق افتادن push بین سخت افزار و driver و سیستم عامل بخشی از مطلب فعلی نیست و به آن نمی پردازم. در سیستم های ناهمگام نرم افزاری هم شما معمولا از سمت دیگر عملیات ناهمگام به سمت فراخوان اطلاع می دهید که جواب حاضر است. مثلا اگر یک سیستم جست و جوی داده نوشته باشید که درخواست جست و جو دریافت می کند و پس از تمام شدن به شکل ناهمگام پاسخ را پس می دهد، برای پیاده سازی آن باید یا یک تابع (function pointer / delegate / ...) بگیرید که پس از تمام شدن عملیات آن را فراخوانی کنید و یا یک رفرنس به یک future را به فراخوان برگردانید که پس از تمام شدن کارتان نتیجه را در آن قرار خواهید داد. خیلی از سیستم ها در engine های مدرن بازی سازی بدین شکل کار می کنند. در بسیاری سیستم ها درخواست های بررسی به physics engine ارسال شده و physics engine پس از یافتن جواب آن را در صفی قرار می دهد و یا به گونه ای دیگر به درخواست کننده برمی گرداند. به خصوص در معماری بازی های تحت شبکه و MMO این کار بسیار معمول است.
اما فایده این همه پیچیدگی اضافه در کد و استفاده از سیستم های ناهمگام چیست؟ فایده اصلی این است که پردازنده و برنامه شما منتظر و معطل باقی نمی ماند تا عملیاتی نسبتا کند تمام شود وی شما می توانید به کار خود ادامه دهید یا درخواست هایی به که عملیات فعلی ربطی ندارند را پاسخ دهید. بدین شکل سیستم های کامپیوتری بسیار بهینه می شوند و قدرت پاسخ گویی بسیار بالاتری هم پیدا می کنند. فرض کنید یک برنامه وب سرور پس از گرفتن هر درخواست کل برنامه را تا خواندن صفحه مورد نظر از دیسک متوقف می کرد. در این صورت هر وب سرور احتمالا در ثانیه زیر 100 درخواست را پاسخ می داد. البته خیلی از وب سرور های قدیمیتر از روش های مثل ایجاد thread برای هر کاربر استفاده می کنند و داخل thread تا دلتان بخواهد توابع همگام اجرا می کنند ولی در وب سرور های مدرن و تمام سیستم های تحت اینترنت و حتی در تمام API های جدید Windows از کد غیر ترتیبی استفاده می شود. تعداد کاربران امروزی سیستم ها و با کامپیوتر های فعلی بدون استفاده از برنامه های ناهمگام و برنامه های توضیع شده قابل پاسخ گویی نیستند. ما باید سعی کنیم تا جای ممکن کد های مختلف را روی هسته های مختلف پردازنده به پیش ببریم و هرگز منتظر عملیاتی نمانیم مگر مجبور باشیم و نتوانیم تا رسیدن پاسخ به کار دیگری ادامه دهیم.
سیستم بسیار جالبی برای نوشتن کد کاملا ناهمگام و موازی به یونیتی هم اضافه شده است که به C# job system معروف است و در نسخه های سال 2018 کم کم به برنامه اضافه خواهد شد. البته این سیستم ها به جز امکان اجرای ناهمگام بسیاری درخواست ها ، امکانات مهم دیگری مثل امکان اجرای کد gameplay روی چندین هسته و thread به شکل موازی و استفاده از حافظه unmanaged را هم به شما می دهد که از دلایل مهم اثر بسیار بالای آن روی performance برنامه هستند.
معایب سیستم های ناهمگام پیچیدگی بیشتر و نامناسب بودن بسیاری از ابزارهای برنامه نویسی ما برای کار با آن ها هستند. مثلا در .NET تا همین نسخه 2.1 تمام stack trace های مربوط به کد async بسیار ناخوانا بودند. به طور کلی به بهترین ابزار ها هم ، آنالیز کد های ناهمگام بسیار سختتر است زیرا شما نمی دانید در هر لحظه چه کد های دیگری دارند چه کاری انجام می دهند. اگر برنامه خطی باشد بیشتر این مشکلات وجود ندارند.
امیدوارم این پست به شما کمک کند که قدرت واقعی و مشکلات کد ناهمگام را بهتر درک کنید و بتوانید برای استفاده از آن در بنامه های مختلف تصمیمات درست بگیرید.

۰۱ اسفند ۹۶ ، ۱۴:۰۱ ۲ نظر موافقین ۰ مخالفین ۰
اشکان سعیدی مزده

چگونه پرداخت درون برنامه ای Google Play را در ایران تست کنیم؟

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

هنگامی که شما می خواهید با گوگل پلی خرید کنید و یا در آن لاگین کنید، اگر در ایران باشید اجازه خرید به شما داده نمی شود و مثلا بخش IAP یونیتی حتی Initialize هم نمی شود و با پیام PurchaseUnavailable و اجرای کالبک خطا به کار خود پایان می دهد. من در گذشته این مشکل را حل کرده بودم ولی در دو هفته گذشته ناگهان هر کاری می کردم نمی توانستم گوگل را گول بزنم. فرایند را به همراه پستی و بلندی هایش توضیح می دهم، امید به این که وقت برنامه نویسی چند دقیقه بیشتر صرف کارهای مفید شود. نکته: اینستاگرام و تلگرام عموما مصرف مفید وقت محسوب نمی شوند.

برای گول زدن گوگل لازم است سرویس Location گوشی خود را خاموش کنید و می توانید برای خاطر جمعی auto sync سرویس Date And Time را هم خاموش کنید و تیکش را بردارید (نمی دانم این یکی اثر دارد یا خیر).  با این کار Google Play Store هنگام سعی در فهمیدن مکان شما از IP شما استفاده خواهد کرد. باید یک VPN را وصل کرده و به فروشگاه Google Play رفته و چیزی download کنید (نمی دانم آیا باز کردن و بستن کافی هست یا خیر و چه قدر تعامل با فروشگاه لازم است، شاید سرچ هم کافی باشد). پس از download گوگل پلی از روی IP شما ، تصور می کند در کشوری دیگر هستید. دقت کنید که در home screen مکان شما درست تشخیص داده شده و حتی ساعت هم (با وجود خاموش بودن sync) درست نمایش داده می شود ، حتی اگر منطقه خود را جای دیگری انتخاب کرده باشید. اما این ها مهم نیستند. پس از این کارها می توانید به برنامه خود رفته و IAP را تست کرده و انجام دهید. 

دقت کنید اگر بعدا بدون VPN کاری کنید که Google Play بخواهد location شما را چک کند (مثل تست خرید یا گرفتن برنامه از فروشگاه)، مجبورید گوشی را reset کنید و به VPN متصل شوید و با فروشگاه تعامل کنید تا Locationتان عوض شود. اگر بعد از reset فقط VPN را وصل کنید و بدون رفتن به فروشگاه بازی خود را باز کنید، قادر به انجام خرید نخواهید بود و ممکن است مثل من گول Home Screen را بخورید و فکر کنید چون در آن جا location شما درست تشخیص داده شده نمی توانید خرید کنید، در حالی که نیاز است بعد از Reset و وصل کردن VPN یک تعامل با فروشگاه داشته باشید و بعد وارد بازیتان شوید. 

تست های من توسط ,Unity 2017.3 و Unity IAP روی Galaxy Tab 3 و Android 4.4.4 صورت گرفته و نمی دانم روی گوشی های دیگر در شرایط دیگر کار می کند یا خیر. من دو سال پیش هم این کار یعنی تست IAP را انجام داده بودم اما متوجه پروسه دقیق مورد نیاز نشده بودم چون احتمالا برای تست اولیه که ببینم آیا گوگل گول من را خورده یا نه به فروشگاه رفته و سعی کرده بودم برنامه ای که در بازار ایران نیست را بگیرم. ببخشید که این پست برعکس چیزی که باید باشد، پر از نمی دونم این کار می کنه و نمی دونم آیا این لازمه یا نه و ... بود. خوبه که تست بشه و پروسه دقیق مشخص بشه ولی زندگی کوتاهتر از این هاست که بتونیم همه کارایی که خوبه انجام بشه رو انجام بدیم پس من تا این جا رو انجام دادم و به اشتراک گذاشتم. اگر کسی فرایند دقیقتری و با اما و اگرهای کمتری را انجام داده / می دهد، خوشحال می شوم که پست را با اطلاعات او کامل کنم.

به روز رسانی طبق یکی از کامنت ها توسط آقای مسعود، به جای راه اندازی مجدد گوشی می توانید اطلاعات Google Play Store را پاک کرده و sign out کنید و پس از وصل کردن VPN دوبارهدر play store خود را sign in کنید و سپس پرداخت های خود را تست کنید. این که راهاندازی مجدد و اتصال VPN را انجام دهید یا پاک کردهن داده ها و sign out انتخاب شما است و بسته به این که کدام راحتتر است. به نظر من چون راه اندازی مجدد نیاز به کار کمتری توسط شما دارد، زمان کمتری از شما صرف می کند و مجبور نیستید passwordتان را تایپ کنید، راحتتر است. این را هم بگویم که در تست من، بدون sign out کردن و فقط با پاک کردن داده های Play Store موقعیت جغرافیایی من تغییر نکرد و نتوانستم خرید درون برنامه ای را تست کنم (این تست را فقط یک بار انجام دادم و دقت نتیجه شدید نیست).

۰۴ بهمن ۹۶ ، ۲۱:۳۴ ۶ نظر موافقین ۰ مخالفین ۰
اشکان سعیدی مزده