سؤال

أنا حاليا ترميز آر بي جي استنادا عن طريق الانتقال عبر الإنترنت للحصول على مهمة. في لعبة اللاعبين يمكن للاعبين الدردشة مع بعضهم البعض وإرسال أفعالهم بمجرد إكمال بدوره. ما هي أفضل طريقة لرعاية تبادل البيانات بين اللاعبين. مآخذ أو تخزين جميع المعلومات في قاعدة بيانات والبرنامج بشكل دوري طلبات التحقق من أي تحديثات؟ ما لم يكن هناك نهج أفضل.

يرجى ملاحظة أن اللعبة تهدف إلى أن تكون على نطاق واسع، أي الكثير من اللاعبين سوف يكون لديهم عدد من الألعاب بزيادة على نفس الشيء، لذلك يجب أن أحاول أن أكون فعالا قدر الإمكان.

هل كانت مفيدة؟

المحلول

في Silverlight، يمكنك الاتصال مرة أخرى فقط للمضيف الذي خدم تطبيق Silverlight، بحيث تستبعد مآخذ عميل العميل. كل شيء في لعبتك (بما في ذلك الدردشة) يجب أن يذهب عبر خادم.

مؤسسة اتصالات Windows (WCF) لطيفة جدا للعمل مع Silverlight2. إن امتلاك لعب لعبتك يجعل الأشياء أسهل قليلا لأنها تعني أنك لا تضطر إلى الحفاظ على نفس حالة اللعبة بالضبط بين اللاعبين في الوقت الفعلي (أي: لا تهدف إلى أقصى 100ms الكمون).

نصائح أخرى

استخدم WCF إذا كان ذلك ممكنا.

هناك اثنين من الاحتمالات الرئيسية. يمكنك تطبيق مآخذ الاتصالات أو يمكنك استخدام دوبلكس WCF.. وبعد فيما يلي المقاضات:

مآخذ => أداء أفضل على إنتاجية أصغر
Duplex WCF => أداء أسوأ ولكن إنتاجية أكبر

هناك بعض الأمثلة الكبيرة على الشبكة لكلا السينير ولكن إذا قررت حل WCF هنا بعض الموارد:

أ تعليمي جيد جدا بواسطة بيتر MCG.
معلومات حول دوبلكس WCF من MSDN.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top