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

چرا کارایی انجام بدیم که برامون چالش برانگیز باشه و مقداری سخت و سعی نکنیم کم ریسکترین کار ممکن رو انجام بدیم

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

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

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

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

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

دانش و توانایی فنی خوب و عمیق

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

 

مسایل روانی/فلسفی/اخلاقی

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

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

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

 

مسایل مشخص فنی

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

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

 

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

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

چرا سعی کنم خوب باشم؟ نمی خوام همه عمرم رو صرف این کار کنم

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

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

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

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

 

چرا جست و جوی زودتر از نیاز و تجربه کرد؟

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

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

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

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

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

مقایسه انواع مختلف بازی از نظر مدل تجاری و پلتفرم و بررسی تفاوت های آنها

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

قبل از شروع بگم که من روی بازی های F2Pکار کردم و صحبتم سر این نیست که هیچ کس و هرگز نباید این کار رو انجام بده. چیزی که می خوام راجع بهش صحبت کنم تفاوت های بنیادی بازی های premium و F2P هست و همچنین تفاوت بین پلتفرم های مختلف که باعث می شه ساخت بازی برای کامپیوتر رو برای بازی سازان مستقل تجربه درستتری بکنه. برای این که بتونم این کار رو بکنم باید اول بگم که منظورم از F2P بازی هایی مثل Fortnite, DOTA, LOL و امثالشون که بازی های با replay value خیلی بالا هستند و قدرت رو در بازی به فروش نمی گذارند نیستش هر چند که اون ها هم برخی ویژگی ها رو به شکل مشترک با بازی های F2P دیگر دارند. همچنین بازی های premium موبایلی هم جایی خاص قرار می گیرند و می تونند با رعایت مسایلی جایی قرار بگیرند که جای خوبیباشه هر چند این جنگ با توجه به شرایط بازار و محدودیت تعداد بازی ها در Apple Arcade جنگ سختی هستش. این مطلب به این معنا نیست که یک بازی سازی F2P موبایل از نامناسبترین نوعی که من این  جا توضیح می دم کاملا بی فایده یا اشتباه هست و سودمند بودن اون رو از جنبه هایی در جایگاه خودش نفی نمی کنه. همچنین توجه کنید که اگر تنها و اولین مساله ای که باهاش بازی رو می سنجید فقط و فقط میزان پول در اومده از یک نمونه خاص باشه این مقاله براتون جذابیت و فایده ای نداره چون به تحلیل سرگرمی و امکان تولید نوع مناسبش در بلند مدت برای تیم کوچیکی که ابزارش خلاقیتش هست خواهم پرداخت.

 

پیش زمینه

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

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

 

اثر مدل تجاری بر تجربه بازی و نوع ساخت

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

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

بازی هایی اندک هستند که می توانید مثال بزنید که هم کمی نوآوری داشتند و هم نسبتا عمیقتر بودند مثل clash roayle و heartstone که از مدل f2p استفاده می کردند باید بگویم که ژانر بازی هایی مثل heart stone و در دنیای واقعی magic the gathering نوع خاصی از بازی و تجربه هستند که خود collect کردن در آن ها بخشی از بازی است و عده خاصی از افراد از آن ها لذت می برند و در عین تفاوت با بازی هایی چون  pokemon از نظر مکانیک جمع آوری همچنان طرفداران خاص خود را دارند. بیشتر بازی های F2P شبیه heart stone نیستند. clash royale و بازی های شبیهش هم با بازی های F2P دیگر فرق خاصشان فقط این است که در مسابقه شما را با کسی طرف می کنند که در حد خودتان باشد تا اثر فروختن قدرت را کم کند ولی در نهایت تجربه بازی معمولی نیستند و شما راه مشخصی برای موفق بودن و خوب بودن در بازی ندارید و همیشه حس خوشحالی محلی نسبت به مسابقه فعلی/قبلی دارید و در کل چنین حسی ندارید که در رقابتی طولانی در حال گذران معنا دار زمان هستید و این دقیقا به مساله خرید یک تجربه رقابت عادلانه و کاملا مشخص و مثلا پرداخت حق عضویت مثل بازی های MMO و یا شرکت در بازی با قوانین شبیه قوانین کازینو ها است. مخاطبان متفاوت و عمر اثر متفاوت و نوع رویکرد سازنده و بازی کن متفاوت است.

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

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

 

تفاوت در platform

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

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

 

مطلب پایانی 

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

همچنین در نظر داشته باشید که حتی امثال 15 درصد بازی ها در استیم ماه اول 10000 دلار پول در می آورند و در گوگل پلی و اپ استور کمتر از دو درصد بازی ها به سود 1000 دلار هم می رسند. حتی اگر به قول یکی از دوستان پول اول هستید هم اگر به آمار ها نگاه کنید ساخت بازی premium برای یک تیم مستقل کار بهتری است. 

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

داستان اولین بازی جدی که خواستیم بسازیم.

من و دوستم سینا آل علی در انتهای دوره دبیرستان/شروع دانشگاه با فردی آشنا شدیم از طریق یکی از دوستای سینا که می خواست ده هزار دلار پولشو سرمایه بده به تیمی که با هم یه پروژه تکنولوژیک بسازند. می شد نه میلیون که  تو یه سری رفت و آمد تصمیم گرفتیم بازی کشاورزی شبیه هاروست مون بسازیم ولی به شکل شبکه ای و سه بعدی که بتونی با همسایه هات که آدمای واقعیند کارای مختلف مثل مسابقه اسب سواری کنی و به هم کمک کنید تو کار و ... یه سری کار درست کردیم و یه سری اشتباه. قطعا مسایل شخصیش بعد 12 سال کمتر یادمه ولی فنی هاش بیشتر. به سینا هم اینو دادم که تهش نظرات اضافه بر ایناشو بنویسه.

ما دو کار درست کردیم یک داشتن ایده ای با اندازه نسبتا مناسب و دوم تحقیقات جامع از تکنولوژی های مختلف ساخت بازی و ساخت MMO از جمله big world, Hero Engine, monumental engine و ... اولش که خواستیم شروع کنیم فکر کردیم بخشای بلادرنگ رو با شبکه خود یونیتی که رکنت بود و بخشای دیگه رو با smartfox پیاده سازی می کنیم ولی به زودی فهمیدیم که نمی تونیم و رفتیم دنبال تکنولوژی درست. کلی گشتیم. اون وقت Photon دو محصول داشت و خیلی برامون مهم بود تکنولوژی کاملی باشه که با دو نفر برنامه نویس اصلی بشه باهاش همه چیو نوشت برای همین هر تکنولوژی که مثلا باید 100 تا فایل ادیت می کردی و به سه زبون توش کد می زدی رو حذف کردیم. کتاب سی شارپ گرفتیم programming C# 3.0 و کل مستندات یونیتی رو خوندیم و نفری یه بازی کوچیک ساختیم. آخر رسیدیم به تکنولوژی های شرکت MuchDifferent و حتی با خودشون هم رو بازی Badanamu کار کردیم و بعدا ها من بیشتر هم کار کردم. 


اشتباهمون در مورد تکنولوژی این بود که در باره بعضی چیزای دیگه مثل substance و تکنولوژی کش کردن داده در براوزر برای web player یونیتی زیاد وقت گذاشتیم و یک کمی هم رفتیم دنبال خرید تکنولوژی های گرونی که بالا اسم بردم قبل بررسی کامل که البته بررسی خوب مستنداتشون کلی بهمون چیز یاد داد. خیلی هم کلا به ابزار اهمیت می دادیم و مثلا یه ابزار نوشتیم از تو منو های یونیتی توابع SVN رو در اختیارمون می ذاشت و فقط یه روز نوشتنش وقت گرفت ولی خوب سرعتمونو می برد بالا و برای خیلی چیزای دیگه مثل ساخت prefab و قرار دادن object رو زمین و .. هم ابزار داشتیم و این بعد ها هم فکر کنم کم و بیش تو کار هردومون ادامه پیدا کرد.


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

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

ECS قسمت اول، کارایی بالاتر و نگهداری ساده

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


 فرض کنید یه سیستم سکه هم داریم که اگه بین کاراکترایی که می تونن اونا رو بخورن و سکه ها برخورد اتفاق افتاد به تعداد سکه اونا اضافه می کنه. تو حالت معمولی یونیتی می اومدین و یه component تعریف می کردین به اسم Coin که هر وقت مثلا OnTriggerEnter صدا زده می شد و طرف مقابل بازی کن بود براش یه متدی صدا می کردین که سکه ها شو زیاد می کرد و اگه لازم بود جونش رو هم زیاد می کرد مثلا اگه 100 تا می شدن سکه ها. تو ECS میاید یه سیستم تعریف می کنید که همه entity هایی که coin بهشون وصله رو می گیره و بعد اگه یه کاراکتری بیش از حد بهش نزدیک بود میاد متوجه می شه که باید به اون کاراکتر سکه اضافه کنه و سکه رو از بین ببره. البته می تونید این کار رو به شکل برعکس هم انجام بدین که مثلا برای همه کاراکتر ها بگرده و اگه سکه ای نزدیکشون بود از بین ببره و بهشون اضافه بکندش.

اگه دقت کنید کل بازی این شکلی می شه که شما یه سری سیستم می نویسید که اول میان همه entity هایی که یه سری component خاص رو دارند پیدا می کنند و بعدش روی همشون یه منطقی اجرا می کنند. سوال اولی که پیش میاد اینه که بین این سیستم ها چه طور اطلاعات جا به جا کنیم و سوال دوم این که اطلاعات عمومی بازی که معمولا تو singleton ها بودن رو چه طوری بهشون بدیم و سوال سوماین که چه طوری بیایم اولویت اجراشونو مشخص کنیم و از همه اینا سختتر و مهمتر این که بهترین روش نوشتن چیه


در واقع حلقه اصلی بازی بدین شکل می شه که ما میایم یه سری سیستم رو به شکل job تعریف می کنیم و بعد به نوبت متد های Schedule اونا رو صدا می کنیم و dependency هاشونو که برمی گردونن به Job های دیگه می دیم. حالا بقیه مطلب رو یونیتی هندل می کنه و به ما می گه اگه مثلا روی داده هی همزمان دوتا جاب بنویسند و ... بعد برای این که مثلا بتونیم کارمونو راحت کنیم باید بین این سیستم ها اطلاعات جا به جا کنیم که تو یونیتی با Native Array و رفقای Native دیگش انجام می شه. مثلا ما داده سکه ها و کاراکتر های نزدیک به هم رو که تو یه سیستم جمع کردیم به یه لیست اضافه می کنیم که به سیستم دیگه ای پاس داده می شه که همه اون سکه ها بعدش از بین می رن و اون سیستم میاد به همه اون کاراکتر ها امتیاز اضافه می کن ه و اگه امتیاز از 100 بیشتر شد یه جون اضافه می کنه. تفاوت این روش با سیستم های قدیمی که کد می نوشتیم دوتا چیز مهمه.

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

شاید چند سوال پیش بیاد که مثلا برخورد بین سکه و آدما تو ECS چه طور تشخیص داده می شه (تو مدلی که نخوایم از APIهای قدیمی یونیتی استفاده کنیم). دو راه هستش، یکی این که جای اشیا رو توی یه hash map قرار بدیم و بعد برای تشخیص برخورد ببینیم تو کدوم خونه های همسایه هر کاراکتر سکه ای هست که فاصلش از یه مقداری باهاش کمتره و راه دوم انجام raycast توسط job مربوط یعنی RayCastCommand هستش.

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

یه مساله دیگه که خوبه بدونید اینه که یونیتی همه سیستماشو یکی یکی به شکل jobified/ECS در میاره و از اون جا قابل استفاده می شه. مهم اینه که شما یاد بگیرید برای نوشتن کد با ECS باید به جای دیدن این که فلان object/component چه رفتارایی داره این رو ببینید که من به چه داده هایی نیاز دارم که این منطق رو اجرا کنم و چه عملیاتی باید روی این داده ها انجام بدم و برای ارتباط بین این عملیاتا کجا ها به ساختمان داده میانی اضافه نیاز هستش. مثلا برای ارتباط بین سیستم برخورد و سیستم از بین رفتن سکه و امتیاز دادن به داده میانی لیست/صف نیازه ولی برای این که بعد از زیاد شدن سرعت به دلیل خوردن Power up سیستم حرکت کاراکتر شما رو سریعتر حرکت بده نیازی به یه لیست نیست که همه کاراکترایی که سرعتشون اضافه شده باشه داشته باشیم چون سیستمی که داره اثر پاور آپ روی کاراکتر رو چک می کنه می تونه با علم به این که این power up از نوع تغییر سرعت هست بگه من اون entity هایی رو می خوام که کامپوننت سرعت دارند و کامپوننت آدم و بعد اونایی که تو لیست برخورد با پاور آپ سرعت هستند رو اون پاور آپ مربوط رو بگه براشون پاک بشه و بعد همون کامپوننت سرعت رو درجا سرعتشو مثلا دو برابر کنه و اگه تایمی هم داره اون رو هم ست بکنه که مثلا ثانیه x این سرعت بالا رفته. می تونیم سیستم دیگه ای داشته باشیم که همه کامپوننت های سرعت رو  چک می کنه و اگه از xشون 5 ثانیه گذشته باشه دوباره به سرعت عادی برشون گردونه.

یه مطلب دیگه مساله سختن/از بین بردن entity هست و اضافه/کم کردن component که همیشه باید روی thread اصلی انجام شه و معمولا وسط سیستم هایی که Multi-threaded هستند که بهشون JobComponentSystem گفته می شه قابل اجرا نیستند. به جاش یه بافری هست که توی اون سیستم پر می شه و بعد در دیر ترین زمان ممکن اجرا می شه.

مسایل دیگه ای مثل barrier ها و این که مثلا اضافه /کم کردن component به entity از نظر performance چه باری داره و این که کلا entity ها و در واقع آرایه های component ها چه طور روی حافظه چیده می شند یا با کدوم API ها باید این کارارو بکنیم رو توضیح ندادم چون که اولا خسته هستم و دوما به نظرم مساله مهم اینه که یاد بگیرید چه طور فکر کنید که کد  ECS بنویسید و اون API ها رو به سادگی یاد می گیرید. خودم هم نوشتن sampleم یحتمل می ره واسه بعد GDC که نسخه نسبتا stableتری از اینا بیاد بیرون. الآن هم کاملا ممکنه و من کد های یونیتی رو به چیزایی که دلم خواست تغییر دادم ولی بخشای کوچیک ی گنگ هستند و تغییر کردن و چون فرصت کمه فعلا سراغ ساخت سمپل کامل نرفتم.


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

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

فروش بسته کد، مدل و ... در assetstore یونیتی

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

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

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


چه بسته هایی به فروش بالا خواهند رسید


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


من خودم موفقیت خیلی زیادی در فروشگاه نداشته ام و البته هیچ وقت هم بسته خیلی بزرگی که توقع فروش بالا از آن داشته باشم را نیز در فروشگاه قرار نداده ام. شاید بعد از یاد گرفتن ECS بسته های سیستم های مختلف با استفاده از آن را برای تفریح در این فروشگاه قرار دهم. نکته ای که خوب است بدانید این است که ممکن است برخی افراد به شما بگویند که assetهایشان فروش خیلی زیادی در فروشگاه یونیتی دارد در حالی که تعداد review ها و rating چیزی که در فروشگاه دارند آن را نشان ندهد. دقت کنید همیشه تعداد فروش هر بسته چندین برابر تعداد review ها و rating ها است ولی اولا در برخی کشورها مثل کشور ما خیلی از reviewها و rating]های تشریفاتی استفاده می شود و دوما به هر حال ممکن نیست بسته ای با 5 ریویو مثلا 10000 نسخه فروخته باشد و اجازه ندهید این تصور در شما ایجاد شود که یک بسته ساده می سازید و پول دار خواهید شد.

در صورت داشتن سوال یا نیاز به کمک در این باره می توانید به من ایمیل/پیام دهید.

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

در باره وارونگی و ضرر سوال چرا به خارج نمی روی؟

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

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

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

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

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

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

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

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

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

نوع ارتباط و دید کارفرما به کار و اهمیت آن

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

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

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

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

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

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

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

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

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

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

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

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

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

درست جلوی کامپیوتر بشینید(لینک هایی مثل این dev.bodycarephysio.com.au/how-to-sit-at-a-computer/
را ببینید). 

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

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

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

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

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


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

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

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

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

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

ما در شرکت دنبال 5 برنامه نویس خوب #C هستیم که به NET. آشنایی خوبی دارند و دوست دارند روی پروژه های جذاب کار کنند. شما روی چیزهای مختلفی از ابزار برای گسترش visual studio تا کتابخانه تولید برنامه های تحت وب و از ابزار های code generation تا بازی های جالب کار خواهید کرد.

کار به شکل تمام وقت برای حد اقل 5 نفر و همچنین به شکل پاره وقت هم موجود خواهد بود. بیمه و ... هم طبعا به درستی انجام خواهد شد.

شرایط شما برای پذیرفته شدن

- آشنایی خوب با دات نت و سی شارپ

- شجاعت و علاقه به یادگیری تکنولوژی های جدید

- روحیه انجام کار (حتی اگر گاهی بخشی از کار خیلی جذاب نباشد کسی باید آن را انجام دهد)

- سعی برای رسیدن به اخلاق بهتر و ارزش های انسانی والا

- شفاف و صادق

در صورت توانا بودن، به شما برای یادگیری تکنولوژی های جدید وقت داده خواهد شد پس نگران این که مثلا تا به حال visual studio extension ننوشته اید نباشید.

چیزهایی که ما فراهم می کنیم.

- محیطی محترم و آرام، در صورت علاقه شما شاد و صمیمی

- پروژه هایی open source که نام شما در GitHub در پروژه خواهد بود

- پروژه های جذاب و چالش برانگیز

- آزادی عمل مناسب و mentoring و کمک در صورت نیاز

- امکان رشد علمی

- حقوق مناسب، بیمه و ...


در صورت علاقه به من ایمیل بزنید ashkan.saeedi.1989@gmail.com یا info@nooparmygames.com و یا در تلگرام(Ashkansm@) با من در ارتباط باشید.

لطفا نام، رزومه، و دلیل علاقه خود به کار را برایم ارسال کنید.

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