درود مهمان گرامی! ورود ثبت نام


مشکل real time
#1
سلام 
من تو قسمت انلاین بازیم یه چیزهایی رو میخوام وقتی پیر و هاست به هم متصل شدن و گروه های هاست و پیر فعال شدن نشون بده و بعد بازی شروع بشه . برای اینکه اینارو نشون بده که مشکلی نیست اما بعدش که نشون داد گفتم 5 ثانیه wait کن و بعد گروهی که مرتبط به شروع شدن بازی هست فعال بشه اما این زمانش دقیق نیست و یادمه توی اموزش مولتی پلیر اقا مجتبی هم همین روش رو رفتن و گفتن "این wait همزمان نیست و حالا میفهمم چرا سیرا از همون روش چت روم استفاده کرده بود" . میخواستم ببینم چطوری این همزمان سازی باید صورت بگیره ؟ سیرا از چه روشی استفاده کرده بود ؟
اخه من تو بازیم تایم هم گذاشتم و این ناهمزمانی باعث میشه تایم یکی زودتر از اون یکی شروع به کم شدن کنه و در اخر که زمان به پایان میرسه چون یکی زودتر شروع شده مشکلاتی به وجود میاد و دقیقا زمان ها باید یکی باشن . (علاوه بر این در اول فعال شدن گروه اصلی و شروع بازی مشکلات بصری هم هست)
ممنون میشم بگید باید چیکار کنم ؟؟؟
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
 
پاسخ دهید
 سپاس شده توسط:
#2
(1399/1/2، 03:53 عصر)محمد 82 نوشته است:  


میتونی کاری کنی که بعد از اون 5 ثانیه یک هدر یا درخواست برای سینک ارسال بشه به همگی (مثل اینکه توی چت روم به یک نفر  پیام بیاد اما در یک قالب خاص و غیر قابل حدس و البته منحصر به فرد) و بعدش تعریف کنی که وقتی پیام توسط کاربرها دریافت شد وارد صفحه بازی بشن. در واقع به نوعی یک جواز ورود با الگوریتمی مثل هش که منحصر به فرد باشه (با استفاده از پلاگین میتونی جنریت کنی هر رشته هش دلخواهی رو CB Hash) ایجاد میکنی.
البته برای جواز ورود میتونی از الگوریتم های RNG استفاده کنی. یا هم یک سالت (Salt) تعریف کنی و بعد جوازهای ورود بر طبق اون سالت جنریت بشن. البته که این مکانیزم مشابه اتفاقی هست که توی بعضی از الگوریتم های RNG میفته.
اینطوری جلوی حمله ای مثل مرد میانی (ژانوس) هم گرفته میشه.
 
پاسخ دهید
 سپاس شده توسط: محمد 82 ، ""M.gh""
#3
ممنون . فقط تا خط دوم رو فهمیدم . فک کنم کلا منظورتون سینک کردن بود دیگه از طریق ارسال پیام . بقیه اش رو RNG و.. چیزی نفهمیدم . ولی ممنون راه حل خوبیه

حالا باز اگه کسی پیشنهاد بهتری داشت بگه .
یه سوال دیگه دارم دیگه تاپیک نمیزنم . توی بخش انلاین گفتم یه اسپرایت پوزیشنش اینطوری باشه :
کد:
in peer group :
if hostscore>peerscore >>> set position (ball-(hostscore-peerscore)*20)
if peerscore>hostscore >>> set position (ball+(peerscore-hostscore)*20)
توی اجرای اول درسته . وقتی بازی تموم میشه و دوباره میرم تو منو و دوباره استارت میکنم ، این اتفاق توش تداخل ایجاد میشه . نه متغیری تغییر میکنه نه جای اسپرایتی . ولی نمیدونم چرا اول درسته و بعد یکبار بازی خراب میشه و بهش عمل نمیشه . البته تو هاست درست کار میکنه تو پیر این اتفاق میفته اونم فقط توبار دوم . چرا اینطوریه ؟؟؟ تاحالا از این خطاها براتون پیش اومده ؟؟؟
(اینم بگم این خطا در دفعه دوم بازی وقتی در دفعه دوم جای هاست و پیر تغییر میکنه پیش میاد . یعنی اول مثلا محمد هاست و علی پیر هست و تو دفعه دوم علی زودتر شروع میکنه و هاست میشه و محمد پیر)
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
 
پاسخ دهید
 سپاس شده توسط:
#4
میشه یک عکس کامل از سینک کردن متغیر ها و همین که گفتی بزاری؟ شاید مشکل از سینک کردن باشه 39
( نام اسپرایت هات رو مخدوش کن)
 

 
پیام مدیر انجمن ( آقای ثنایی ) :
 
نقل قول:  
دعوا نکنید و هم دیگر رو دوست داشته باشید.
      
 
پاسخ دهید
 سپاس شده توسط: محمد 82
#5
از کدوم گروه ؟ 
main , game over , host, peer , signal ؟؟؟
جالبیش اینجاست که یه دوتا اسپرایت واسه باختن گذاشتم . یکی رفتن به منو و یکی ری استارت . وقتی رو ری استارت میزنم ، درسته ، اما وقتی روی رفتن به منو میزنم و از اونجا دوباره استارت میکنم این مشکل پیش میاد . توی ری استارت هم از اکشن restart layout استفاده کردم 

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

یه مشکل دیگه هم پیش میاد. کلا در دفعه اول همه چی درسته اما در دفعات بعد عجیبه که همون اونتهاست اما اینطوری خراب میشه . منطقی به نظر نمیاد .
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
 
پاسخ دهید
 سپاس شده توسط:
#6
دوستان زحمت نکشید . مشکلم حل شد . سر یه کار مسخره الان 2 روزه 24 ساعته دارم فک میکنم ، اونت حذف و تغییر میدم . الان فهمیدم وقتی پیر تو بازی دوم جای هاست رو میگیره هردو گروه peer و host براش فعال میشن . تنهاکاری که باید میکردم این بود که بگم در اغاز لیوت گروه ها غیرفعال بشن . همین 2 روز وقتمو گرفت . ممنون که کمکم کردید . برم سراغ زمانه ببینم چیکارش میتونم بکنم . 
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
 
پاسخ دهید
 سپاس شده توسط:
#7
(1399/1/2، 05:48 عصر)محمد 82 نوشته است:  

عبارت RNG مخفف (Random Number Generator) هست پس الگوریتم RNG عدد تصادفی میسازه. من بهتون پیشنهاد کردم که اون جواز ورودی که قراره ارسال بشه برای کاربرا رو با استفاده از الگوریتم هش ایجاد کنین تا منحصر به فرد و تصادفی باشه.
 
پاسخ دهید
 سپاس شده توسط: محمد 82 ، ""M.gh"" ، shazde
#8
ببخشید ولی میشه بیشتر توضیح بدید . چرا و چطور باید این اعداد رو به وجود بیارم . یعنی بگم در ابتدای لیوت یه متغیر یه عدد تصادفی بین 0 تا 999999999999 پیدا کنه . خب بعدش چی ؟
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
 
پاسخ دهید
 سپاس شده توسط: ""M.gh""
#9
(1399/1/2، 09:55 عصر)محمد 82 نوشته است:  





نه اگر بیشتر دقت کنیم می بینیم عدد معیار خوبی نیست چرا که کسی که بخواد بازی رو هک کنه خیلی راحت میتونه با بروت فورس یک عدد رو spoof (جعل) کنه. پس بهتره از تلفیق اعداد و کاراکترهای مختلف استفاده بشه. حالا هر چی هم طول رشته بیشتر باشه بهتره. پس بهتره از الگوریتم هش از طریق پلاگین CB Hash استفاده کنی تا یک رشته منحصر به فرد و طویل و تلفیق اعداد و کاراکترهای مختلف داشته باشی. میتونی هم با یک ریکوئست ajax به یک فایل php در سرور رشته موردنظرت رو هش کنی. اصلاً میتونی از مکانیزم هش هم استفاده نکنی و  خودت یک رشته تصادفی نسبتاً طویل با تلفیق اعداد و کاراکترهای مختلف بسازی. 
اگر از مکـانیزم هش استفاده کنی مثلاً میتونی نام کاربر رو هش کنی و بعد بگی هر وقت کاربر رشته هش شده نامش رو دریافت کرد به بازی وصل بشه. یعنی نام کاربر رو در دستگاه خودش هش کنی و بعد مقایسه کنی با رشته دریافتی. چون هش الگوریتم برگشت پذیر نیست.
اگر هم بخوای خودت یک رشته تصادفی بسازی میتونی رشته های ساخته شده رو به دیتابیس بفرستی و بعد که کاربر دریافتش کرد مقایسه کنی با رکوردهای دیتابیس و اگر موجود بود رشته ای که کاربر دریافت کرده در دیتابیس به بازی وصل بشه.
اینکه چطور رشته تصادفی ایجاد شده رو با الگوریتم هش یا با هر روش دیگه برای کاربر ارسال بشه هم میتونی یک مکانیزمی شبیه ارسال و دریافت پیام مثل چت روم بسازی.
 
پاسخ دهید
 سپاس شده توسط: محمد 82 ، ""M.gh""
  


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  حل شده مولتی پلیر (حیاتی) محمد 82 10 196 دیروز، 04:42 عصر
آخرین ارسال: Master Badfar
Wink مشکل| در دریافت متن فایل txt با php ""M.gh"" 6 78 دیروز، 02:10 عصر
آخرین ارسال: ""M.gh""
  حل شده رندوم بدون تکرار محمد 82 9 164 1399/1/13، 06:17 عصر
آخرین ارسال: rezamms
  بالا رفتن شخصیت از پله و رفتن از روی پل amin hosseini 11 244 1399/1/11، 02:16 عصر
آخرین ارسال: amin hosseini
  بیشترین فریم محمد 82 22 340 1399/1/11، 12:11 عصر
آخرین ارسال: mhp

پرش به انجمن: