Back to Top
 
 
 

بلاگ

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

درورد بر شما همراهان عزیز، نوروز باستانی رو به شما تبریک می‌گویم و آرزو می‌کنم سالی شاد توام با موفقیت داشته باشید. 

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

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

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

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

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

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

پروژه مفاهیم پیشرفته سیستم شبکه یونیتی uNet را بدون استفاده از NetworkManager توضیح می دهد و همچنین دارای 40 صفحه مستندات انگلیسی می باشد.  

لیک دریافت : http://apadana-platform.ir/downloadapadana.html?download=7:deep-networking-with-tanks  

امیدوارم که این هدیه مورد توجه شما قرار گیرد.  

 

GUID چیست و چگونه کار می کند؟ روش انتخاب شناسه برای کاربر ها

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

 شاید از خود بپرسید که یک GUID دقیقا چیست و چگونه کار می کند. یک GUID یا UUID یک عدد 128 بیتی است که می تواند 2^128 حالت مختلف را پوشش دهد. البته 6 بیت از این 128 بیت برای مشخص کردن نوع GUID و نگارش آن استفاده می شوند که 122 بیت را برای تولید شناسه باقی می گذارند. انواع مختلفی از GUID وجود دارند که به روش های مختلف تولید می شوند. 4 بیت اول بخش سوم GUID به ما نوع آن را می گوید که در این بخش شما معمولا عدد 4 را مشاهده می کنید. این نوع از GUID ها با استفاده از یک عدد random تولید می شوند. انواع دیگری از GUID ممکن است با استفاده از ترکیبی از مک آدرس کارت شبکه و زمان فعلی سیستم، گرفتن انواع hash از محتوایی که برایش GUID تولید می شود و ... استفاده می کنند. 

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

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

تاثیر حضور دوستان در جذاب تر شدن بازی ها.

 

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

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

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

جان رمروJohn Romeroطراح سرشناس بازی در سال 2010 بازی به نام Ravenwood Fair طراحی کرد، این بازی ظرف چند ماه توانست 25 میلیون کاربر از طریق فیسبوک جذب کند. او در این باره می گوید: تعریف من از بازی اجتماعی (social game) یک منحنی با شیب ملایم در یادگیری، رابط کاربری(UI) بسیار آسان و قابل فهم، زندگی در شبکه اجتماعی و استفاده از دوستان به شکل تاثیرگذار و معنادار درون بازی است.

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

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

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

 پلتفرم آپادانا همواره تلاش می کند پیادهسازی قابلیت های آنلاین بازی را آسان کند. قابلیتی که اخیرا به آپادانا اضافه شده لیست دوستان یاFriend List نام دارد.

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

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

 

 

  آپادانا چگونه به تیم های بازی سازی در صرفه جویی زمان و هزینه کمک می کند؟  

 

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

در این پست قصد داریم درباره اهمیت وجود افراد با تجربه‌ درکنار تیم اجرایی یک پروژه بازی سازی صحبت کنیم. 

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

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

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

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

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

 

 

احراز هویت یا Authentication

چرا تشخیص هویت بازی کن ها ضرورت دارد؟

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

در این پست قصد دارم قابلیت احراز هویت آپادانا را معرفی کنم، همچنین توضیح بدم کاربرد های اصلی این قابلیت چیست؟ 

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

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

برای جدا کردن بازی کن ها شما نیاز دارید به هر بازی کن یک مشخصه منحصر به فرد اختصاص بدهید. 

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

این فرایند به بازی کنان امکان بازیابی رمز عبور، انجام بازی روی چند دستگاه و همچنین انتقال بازی به دستگاه دیگر را می‌دهد. 

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

 

 

 

صفحه1 از6

تمامی حقوق مادی و معنوی این سایت متعلق به گروه آپادانا می باشد.
 info@apadana-platform.ir