كيفية بناء لعبة بسيطة 2 لاعب, التواصل عبر الإنترنت, مع عدم وجود رمز مخصص على أي خادم?

StackOverflow https://stackoverflow.com/questions/2144287

  •  23-09-2019
  •  | 
  •  

سؤال

كيف يمكنني بناء لعبة بسيطة 2 لاعب, أن يتصل عبر الإنترنت?

أنا بحاجة إلى حل مشاكل:

  • بحث أو موعد-يريد لاعبان العثور على بعضهما البعض.

  • الاتصالات الجارية.يمكن لأي لاعب بدء إجراء يتطلب توصيل المعلومات إلى الجانب الآخر ، في إطار زمني سريع بشكل معقول (زمن انتقال من نوع المراسلة الفورية ، وليس زمن انتقال من نوع البريد الإلكتروني).

في هذا الصدد ، أفترض أنه يعادل دردشة 2 في اتجاه ، حيث يريد الناس أن يكونوا قادرين على العثور على بعضهم البعض ، ثم أيضا ، بمجرد الاقتران ، التواصل.

متطلبات أخرى:

  1. في الوقت الراهن ، افترض أن نقاط النهاية هي نظام التشغيل ويندوز ، حديثة نسبيا.

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

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

  4. يجب تشغيل كافة التعليمات البرمجية المخصصة فقط على أجهزة الكمبيوتر العميل.

  5. افترض أنه لا يوجد خادم في الإنترنت تحت سيطرتي.

  6. يسعدني استخدام خوادم الجهات الخارجية لتسهيل الاتصال الداخلي ، مثل خادم المراسلة الفورية أو شيء من هذا القبيل ، طالما أنه مجاني ، ولست مطالبا بتثبيت رمز مخصص عليه.


ما هي واجهات برمجة التطبيقات المتاحة لتسهيل هذا التصميم?

هل يمكنني القيام بذلك مع واجهات برمجة التطبيقات إم?صندوق رأس المال العامل?هل هناك قنوات وف ويندوز ماسنجر?

ما البروتوكولات?المتشعب?لدي هذا الموسومة ب "الند للند" ولكن أعني أن تقريبا;ليس هناك متطلبات صعبة لبروتوكول بي 2 بي الرسمي.

ما هي تنسيقات الرسائل التي تستخدمها?


تحرير

لتوضيح المتطلبات حول الخوادم ، ما أريده هو عدم وجود خادم تحت سيطرتي.ولا شيء من التعليمات البرمجية المخصصة الخاصة بي على أي خادم.هذا ليس هو نفسه "لا خادم".

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

تحرير 2
لقد وجدت هذا أيضا: مكتبة للرسائل الفورية, مثل ليببوربل, لكنها مكتوبة بخط ج#


الجواب

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

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

المحلول

libpurple جنبا إلى جنب مع otr يمكن أن يمنحك الخصوصية التي سيحتاجها مثل هذا التطبيق.

نصائح أخرى

ايم هو أداة خاطئة.في حين أن, استخدام غرفة دردشة المركز.

مع غرفة دردشة إيرك ، زبائنك " تسجيل الدخول "إلى غرفة الدردشة ، والتي يتم استخدامها ل"وجود" الخاص بك.أي شخص في غرفة الدردشة "متاح" للعب اللعبة.

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

القضايا التي يجب حلها:

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

  • بينغ المرور.أساسا تدفق هو تسجيل الدخول إلى الغرفة ، العميل الخاص بك هو في وضع "متاح للعب".ثم الأصوات الجميع لمعرفة ما إذا كانت متاحة للعب.سيحدث هذا مع كل عميل "تسجيل الدخول" إلى غرفة الدردشة.يمكنك بعد ذلك استخدام الغرفة العامة لبث الأحداث "فرانك جاهز للعبة جديدة" ، "بدأ فرانك لعبة مع جو" ، إلخ.يمكن أن يساعد ذلك في الحفاظ على مزامنة الألعاب وليس الدردشة ، ولكن عندما يتصل العميل بغرفة الدردشة ، فسوف يذهب "مرحبا بالجميع ، إنه بوب ، ماذا تفعل جميعا".لذلك تحتاج إلى إدارة ذلك.

  • حجم حركة المرور.غرف المركز يمكن التعامل مع الكثير من حركة المرور ، ولكن ليس الكثير من حركة المرور.تم تصميم معظمها لمنع " البريد العشوائي "و" الفيضانات " وما إلى ذلك.لذلك قد يكون جيدا معدل محدود عليك اللعب.ليست مشكلة ل" لعبة الداما", أكثر من ذلك ل" علب من العالم " خلال 40 غارة رجل.هذه مشكلة في تصميم اللعبة.

  • شروط الخدمة.قد يقول مزود إيرك جيدا "اه لا ، لا يمكنك أن تفعل ذلك مع خدمتنا".أنا لم ينظر في ذلك ، لذلك أنا لا أعرف ، ولكن يمكن أن يكون مشكلة.

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

يجب أن يكون لكل لعبة لاعبين نوع من بيئة الخادم من خلال الحاجة الأساسية إلى التواصل بين عميلين/لاعبين على الأقل. ضع في اعتبارك أن كل من العملاء/اللاعبين يمكنهم أيضًا أن يعمل كخادم خاص به للتواصل مع العملاء الآخرين المرتبطين. لكن الحاجة إلى الاحتفاظ بعلامات تبويب على جميع العملاء/اللاعبين في أي وقت محدد والحاجة إلى تسهيل البحث عن العملاء/اللاعبين الآخرين بطبيعتها تتطلب نوعًا من بيئة الخادم.

يمكنك إعداد لوحة رسائل على أحد خوادم لوحة الرسائل المجانية حتى يتمكن اللاعبون من العثور على بعضهم البعض. ربما تريد تشجيعهم على استخدام رسائل خاصة لتبادل عناوين IP. ثم ، استخدم بروتوكول يتصل باستخدام عناوين IP. حظا جيدا في ذلك. جدران الحماية تجعلها ألمًا.

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

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

حظا طيبا وفقك الله. ستحتاج إليها.

أو يمكنك فقط كتابة لعبة لعميل IM ، مثل Microsoft Messenger. لقد رأيت ألعابًا لذلك ، لذلك أعلم أنه يمكن القيام به.

كما قال أحدهم ، قد لا يكون من الممكن بعد القيام بذلك إذا لم يكن لديك أي خادم بوساطة بين لاعبين. بما أنك سعيد باستخدام خادم طرف ثالث ، أقترح أن تقوم ببناء نظامك باستخدام محرك تطبيقات جوجل + XMPP Over HTTP. إنه يعمل بشكل جيد عبر الإنترنت وخلف جدار الحماية. ومع ذلك ، فهو مجاني (طالما أن نظامك لا ينمو من حصة GAE).

الأقران إلى الأقران خارج بسبب قيود جدار الحماية الخاص بك. هذا لا يعمل بسهولة لخدمات الدليل على أي حال.

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

أفترض أنه يمكنك ربط نوع من مكتبة دردشة الطرف الثالث. لا أعرف عن بروتوكولات IM الحالية ، لكن IRC القديم الجيد وقناة منفصلة للعبة الخاصة بك ستعمل. يمكنك حتى أن تجمع شيئًا معًا باستخدام FTP. ستعمل تعليقات المدونة على موقع مدونة مجاني أيضًا. السؤال هو لماذا؟

هذه كلها kludges. ينجزون المهمة بطرق منفرجة ، غير محتوية ، وسوء تحجيم.

أحثك على إعادة النظر في حل خادم الويب.

لديك الكثير من المتطلبات المتضاربة. كل من العملاء وراء جدار الحماية يمنع الطلبات الواردة إلى حد كبير أنه لا يمكنهم القيام بنظير Peer-2 نظرًا لعدم إمكانية العمل كخادم ، وستحتاج إلى خادم نقل في الوسط في مكان ما رسائل توجيه إلى كل عميل. الآن ما تطلبه غير ممكن إلى حد كبير بالنظر إلى متطلبات الخادم.

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