سؤال

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

  1. ما هي اللغة التي يجب أن أستخدمها؟تفسيرها أو تجميعها؟وهل هناك فرق؟SMAUG مكتوب بلغة C.أنا مرتاح مع الكثير من اللغات، وليس لدي مشكلة في تعلم المزيد.
  2. هل هناك نهج معين يجب علي اتباعه حتى لا يعيق الأداء؟كائنية التوجه، وظيفية، وما إلى ذلك؟
  3. ما هي الوسيلة التي يجب أن أستخدمها لتخزين البيانات؟الملفات المسطحة (هذا ما يستخدمه SMAUG)، أو شيء من هذا القبيل SQLite.ما هي إيجابيات وسلبيات الأداء لكليهما؟
  4. هل هناك أي أدلة يعرفها أي شخص حول كيفية البدء في مشروع مثل هذا؟

أريد توسيع نطاقه للسماح لـ 50 لاعبًا عبر الإنترنت في وقت واحد دون انخفاض في الأداء.إذا استخدمت Ruby 1.8 (بطيء جدًا)، فهل سيحدث فرقًا مقارنة باستخدام Python 3.1 (أسرع) أو C/C++ المجمعة؟

إذا كان بإمكان أي شخص تقديم المساعدة وتقديم بعض المعلومات أو النصائح، سأكون ممتنًا إلى الأبد.

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

المحلول

سأعطي هذه اللقطة:

  1. في عام 2009، بالنسبة للعبة تضم 50 لاعبًا، لا يهم.قد ترغب في اختيار لغة تكون على دراية بأدوات إنشاء ملفات التعريف الخاصة بها، إذا كنت ترغب في تطويرها بشكل أكبر، ولكن بما أن ذاكرة الوصول العشوائي (RAM) رخيصة جدًا في الوقت الحاضر، فإن القيود التي أدت إلى ظهور LPMUD المبكر (الذي لدي خبرة به) وDikuMUD (الذي سموغ الخاص بك مشتق من) لا تنطبق.(يمكن لـ LPMUD التعامل مع ما يقرب من 10 إلى 15 لاعبًا على جهاز مزود بذاكرة وصول عشوائي (RAM) سعة 8 ميجابايت)
  2. لا يؤدي أسلوب البرمجة بالضرورة إلى صعوبات في الأداء، كما هو الحال في المواقع الكبيرة مثل خادم الويب "obidos" الخاص بأمازون مكتوبة بلغة C، لكن المواقع الكبيرة مثل متاجر Yahoo الأصلية كانت مكتوبة بلغة Lisp، وStackOverflow مكتوبة بلغة ASP.NET، وما إلى ذلك.كنت /شخصيًا/ أستخدم لغة C ولكن الكثير من الناس قد يطلقون عليّ اسم السادي.
  3. تعد الملفات المسطحة عديمة الفائدة نوعًا ما في يومنا هذا وفي عصرنا هذا بالنسبة للكثير من تخزين البيانات، وهناك استثناءات لحالة محددة (تستخدم خوادم البريد الكبيرة أحيانًا "maildir" وهي ملفات مسطحة منظمة، على سبيل المثال).من المحتمل أن يعني حجم لعبتك أنك لن تواجه بطءًا كبيرًا بسبب التأخير في استرداد البيانات، ولكن من المحتمل أن تكون سلامة البيانات في حالة التعطل هي الحجة الأكثر إقناعًا.
  4. لا أعرف أي دليل، ولكن ما سأفعله هو محاولة بدء اللعبة كخادم دردشة غبي للبدء، والتأكد من أنه يمكن للمستخدمين تسجيل الدخول والقيام بشيء ما (أخذ مدخلاتهم وتفريغها لجميع المستخدمين الآخرين) ، ثم قم ببناء ذلك للسماح بعمليات تسجيل دخول محددة، لذلك ستبدأ في مواجهة التحدي المتمثل في التعامل مع اسم المستخدم/كلمة المرور، وإعداد خيارات المستخدم/التخزين/الاسترداد ...ثم ابدأ بإضافة عناصر برنامج تشغيل اللعبة (احصل على ألعاب tic tac toe تعمل في اللعبة)، ثم انتقل إلى مرحلة أكثر تعقيدًا (احصل على إعداد مكون من 5 غرف يعمل مع الكائنات التي يمكنك التقاطها / إسقاطها / ضرب بعضها البعض بها)، ثم قم بإضافة بعض العناصر غير - شخصيات اللاعبين، ثم تقلق بشأن التهام قلاع سموغ المشتقة من Diku / وما إلى ذلك والعمل معهم.:)

هذا أمر بعيد المنال بعض الشيء، وأنا متأكد من أن هناك آراء مخالفة.:) حظ سعيد!

نصائح أخرى

هذه لعبة تعتمد على النص، أليس كذلك؟في هذه الحالة، مع الأجهزة الحالية، يبدو أن كل ما يجب أن تقلق بشأنه هو عدم إنشاء خوارزمية O(n**2) عن طريق الخطأ.حتى هذا ربما لن يكون سيئًا للغاية مع 50 مستخدمًا.

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