موضوع: الرجاء المساعدة بخصوص قاعدة بيانات في لعبة ... باستخدام xna ..

ردود: 9 | زيارات: 1026
  1. #1

    الرجاء المساعدة بخصوص قاعدة بيانات في لعبة ... باستخدام xna ..

    السلام عليكم ..

    حبيت أسأل عن قواعد البيانات في xna & #c ..
    أنا عندي لعبة فيها قاعدة بيانات كبيرة نوعا ما ..
    فيها تخزين لبيانات اللاعبين أسماءهم وكلمات المرور والجنس و العمر و مجموع النقاط ووووو إلخ
    وفيها استعلامات برضو أحد يقدر يساعدني في كيفية انشائها ؟؟
    - هل بالـ structer لوحدها تنفع ؟؟
    - أو بتخزينها في فايلات وعمليات الاستعلام تكون على الفايل اللي يحوي البيانات للاعب أقصد بطريقة linked list ؟؟
    - وهل هناك امكانية عمل قاعدة البيانات هذه بالأكسس ثم ربطها بالشارب في اللعبة ؟؟ أم أن xna لاتدعم ذلك ؟؟


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Mar 2006
    المنطقة
    Lake Oswego, Oregon, United States
    ردود
    474
    سؤال ممتاز .... شوف أخي

    الملفات؟

    هناك أساليب عديدة بالسي شارب لحفظ البيانات. كل واحدة لها خاصية معينة.

    يمكنك استعمال ملفات تسلسلية نصية (Sequential Files) بنوعيها العادي والـ CSV . مشكلتها أنها ليست محمية بشكل تلقائي. يمكنك حمايتها إذا وضعتها على سيرفر ، الحماية ليست جيدة لأن أي شخص ببرنامج ( Packet Sniff ) سيستطيع معرفة كلمة سر السيرفر والتلاعب بالملفات النصية.

    ملفات الإكسس هي الأفضل لأنها تحتوي على حماية ذاتية. ليست بالسهولة ذاتها مقارنة بالملفات النصية ولكنها منظمة وبها خصائص أفضل من الملفات النصية.

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

    ملاحظات فنية لكل نوع:

    Sequential Files
    أوامرها سهلة للغاية ، ستظهر لك بمجرد كتابة System.IO كل الأوامر المتاحة لصنع وأو مسح الملفات بالإضافة لأوامر فتح وإغلاق الملفات للقراءة والكتابة. اخذت اسم Sequential لأنها تكتب السطور بالترتيب المتتالي. وتقرؤهم أيضاً بالتتالي من السطر الأول للأخير.

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

    لمبتدئ نصيحة مني استعمل الملفات النصية إلى أن تفهم أسلوب تسجيل معلومات على ملف خارجي ن وبعدها انتقل إلى ملفات XML واللي هي شبيهة بملفات الـ HTML وتستعمل Tags لتفريق المحتويات. وإن شعرت بالقدرة على المتابعة في مجال الداتا بيس فيمكنك الذهاب للأكسس.

    من داخل البرنامج كيف تتعامل مع المعلومات؟

    لك الحرية في استعمال ما شئت ، يمكنك عمل Struct بمتغيرات تلائم قواعد البيانات. ولنقل أن الملف النصي يحتوي على معلومات عشر لاعبين. يمكنك عمل متغير يقوم بحساب عدد السطور في الملف النصي ولكل سطر يمكنك تغيير حجم المصفوفة المصنوعة بالاعتماد على الـ Struct اللي انت صنعته من قبل.
    ابحث عن معلومات بخصوص الـ Multi dimensional Arrays

    ملاحظة : في الـ #C لا أعتقد أنه يوجد أمر لتغيير حجم المصفوفة فلربما تضطر لعمل Public Void يقوم بعمل ذلك يدوياً.

    اعلمني ان احتجت لأي مساعدة في حال سلكت احدى هذه الطرق

    هل يدعمها الإكس إن أيه؟
    الـ XNA سيدعم ملفات قواعد البيانات ، فقط تأكد من تضميين عبارات الـ Using المطلوبة لكل نوع تستعمله.
    أخر تعديل بواسطة towfieee في 18 / 03 / 2011 الساعة 04:01 PM

  3. #3
    عضو متميز
    صور رمزية The MAS
    تاريخ التسجيل
    Apr 2009
    المنطقة
    Amman, Jordan, Jordan
    العمر
    24
    ردود
    2,132
    أرى أن أفضل طريقة هي التعامل مع الملفات مع كتابة نظام تشفير بسيط خاص بك للملفات و بهذه ترتاح من وجع راس قواعد البيانات و بنفس الوقت تضمن نوع من الحماية على ملفاتك

    <<Nobody>> سابقاً

  4. #4
    شكرا جزيلا على التجاوب الرائع .. والردود المثرية ..

    لكن حبيت أضيف
    بعد ما استشرت أحد المختصين نصحني بـــ MySQL .. ما رأيكم ؟؟؟

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Mar 2006
    المنطقة
    Lake Oswego, Oregon, United States
    ردود
    474
    MySQL هي قاعدة بيانات لها ميزات عالية ، أنا كما قلت صحيح أنها قوية وستنظم العمل ، لكن ستواجه أنت مشاكل في استعمالها لأن البرمجة معها أصعب بكثير من الملفات النصية ( txt ) ، أنا أنصحك بالتقدم بخطواط صغيرة جداً في مجال الـ DataBase علشان تتعلم طريقة حفظ المعلومات بشكل صحيح.

    حاول أن تبدأ بعمل برنامج صغير لنادي رياضي ، يقوم الناس بالاشتراك به وبتسجيل أسمائهم وأرقام الهواتف. إذا استطعت عمل برنامج يسمح بحفظ وتعديل وحذف البيانات وترتيب الأعضاء بشكل أبجدي والبحث عن أعضاء باستعمال الإسم أو الهاتف ، إذا استطعت فعل ذلك انتقل بعدها للـ MySQL.

  6. #6
    عضو متميز
    صور رمزية naoufal
    تاريخ التسجيل
    Feb 2010
    المنطقة
    دولة الخلافة
    العمر
    23
    ردود
    1,141
    ما اعرف اه تعني بكلامك يعن هل تريد تعمل قاعدة بياناة عل سيرفر حيت يتم احد بتسجيل من العبة وترسل البياناة الى قاعدة بياناة او يفتح حساب من العبة فترسل رسالة من العبة الى سرفر ليتحقق من صحتها واخد معلوماة تم ادخلك الى العبة لو كان هد هو مطلوب يعن هد طريقة متل الي عملها الاخ اسامة في لعبته مسجدي
    المهم عليك تكون عندك خبرة في لغة php وخبرة في استعلاماة خاصة ب قاعدة بياناة
    تقوم بعمل سكربتين ب php وتعمل قاعدة بياناة
    سكريبت الاول يقوم بتسجيل معلوماة يعن في متغيراة تعطيهم قيمة وتضغط تم ترسل الى قاعدة
    تاني سكريبت هو يقوم بجلب معلوماة
    تم تعمل سكريبت xna يقوم بارسال متغيراة الى سكريبت الاول ادى كان تسجيل
    وسكريبت تاني لاسترجاع معلوماة
    هد الفكرة هي التي تستعمل في اي لعبة عل ما اضن
    لان ملفاة php من صعب وصول الا محتواهم الى اد تم ختراق موقع او سيرفر باحد تغراة نضام او تغراة php
    بعد ان تعمل لعبة الاولى حول تلتفت وتبحت عن دروس لتشفير لان يمكن للهكر ادا كان يلعب لعبتك متلا وحقق سكور قدره 100 فعندما ستاتي معلوماة لترسل الى سيرفر سيعترض طريقها ويعدلها الى 50000000000 ويرسلها وهكد يصبح الاول لو كان هناك ترتيب للعبين
    ارجو تكون فهمت الفكرة واكون فهمت استفسارك جيدا
    الثورة الاسلامية الكبرى لاعادة الخلافة الراشدة
    بسم الله الرحمان الرحيم... انما النصر صبر ساعة فلا هوان ولا ستكان حت يعود الضلم تحت الاقدام ويعاقب الخونة وانجاس وترفع الرايات سود و لترتاع يهود لقرب الوعود فالتكن هته الثورة يا اهل مصر و سورية ويا اخواني في العالم اجمع ثورة غضب ثورة غضب خالصة لوجه الله فالتكن بداية النهاية ليعلم اليهود ان الامة اصبحت على فجر النصر وليكن اول بشارات النصر الانتقام من الخونة هم من بني جلدتنا وما هم منا...
    امة واحدة راية واحد حرب واحدة

  7. #7
    اقتباس الموضوع الأصلي كتب بواسطة towfieee معاينة الرد
    mysql هي قاعدة بيانات لها ميزات عالية ، أنا كما قلت صحيح أنها قوية وستنظم العمل ، لكن ستواجه أنت مشاكل في استعمالها لأن البرمجة معها أصعب بكثير من الملفات النصية ( txt ) ، أنا أنصحك بالتقدم بخطواط صغيرة جداً في مجال الـ database علشان تتعلم طريقة حفظ المعلومات بشكل صحيح.

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

    طيب يا أخي أنا تخصصي نظم معلومات بس ما مرة تعاملت بالـ mysql .. كل تعاملي مع الأكسس ..
    أعتقد موضوع قواعد البيانات باستخدام mysql أصعب على اللي تخصصهم برمجة بحته وأكيد الملفات بتكون معهم أسهل ..
    أما أنا فاعتقد العكس ممكن يكون معي .. خصوصا أنو خبرتي بالبرمجة متوسطة ..
    راح أجرب وأشوف الأنسب ..

  8. #8
    اقتباس الموضوع الأصلي كتب بواسطة naoufal معاينة الرد
    ما اعرف اه تعني بكلامك يعن هل تريد تعمل قاعدة بياناة عل سيرفر حيت يتم احد بتسجيل من العبة وترسل البياناة الى قاعدة بياناة او يفتح حساب من العبة فترسل رسالة من العبة الى سرفر ليتحقق من صحتها واخد معلوماة تم ادخلك الى العبة لو كان هد هو مطلوب يعن هد طريقة متل الي عملها الاخ اسامة في لعبته مسجدي
    المهم عليك تكون عندك خبرة في لغة php وخبرة في استعلاماة خاصة ب قاعدة بياناة
    تقوم بعمل سكربتين ب php وتعمل قاعدة بياناة
    سكريبت الاول يقوم بتسجيل معلوماة يعن في متغيراة تعطيهم قيمة وتضغط تم ترسل الى قاعدة
    تاني سكريبت هو يقوم بجلب معلوماة
    تم تعمل سكريبت xna يقوم بارسال متغيراة الى سكريبت الاول ادى كان تسجيل
    وسكريبت تاني لاسترجاع معلوماة
    هد الفكرة هي التي تستعمل في اي لعبة عل ما اضن
    لان ملفاة php من صعب وصول الا محتواهم الى اد تم ختراق موقع او سيرفر باحد تغراة نضام او تغراة php
    بعد ان تعمل لعبة الاولى حول تلتفت وتبحت عن دروس لتشفير لان يمكن للهكر ادا كان يلعب لعبتك متلا وحقق سكور قدره 100 فعندما ستاتي معلوماة لترسل الى سيرفر سيعترض طريقها ويعدلها الى 50000000000 ويرسلها وهكد يصبح الاول لو كان هناك ترتيب للعبين
    ارجو تكون فهمت الفكرة واكون فهمت استفسارك جيدا
    بالضبط هذي هي الفكرة اللي أحاول أعملها .. هي بروفايل لكل لاعب فيه معلوماته الخاصة فيه من اسمه ورقمه السري ونقاطه ....إلخ
    وتكون ع الشبكة ..
    فهمت اللي تقصده نوعاما .. لكن اللي بستفسر عنه إيش هي قاعدة البيانات المناسبة اللي أتعامل معها في تخزين البيانات ..!!
    أنت ذكرت طريقة التخزين من الشبكة إلى القاعدة وهي باستعمال السكربتين اللي ذكرتهم ،، هل هذا صحيح ؟؟

  9. #9
    عضو متميز
    صور رمزية naoufal
    تاريخ التسجيل
    Feb 2010
    المنطقة
    دولة الخلافة
    العمر
    23
    ردود
    1,141
    لكن اللي بستفسر عنه إيش هي قاعدة البيانات المناسبة اللي أتعامل معها في تخزين البيانات
    اضن لو اتينا من اي ناحية ستلقا ان mysql هي افلض فهي مجانية وفي متناول الجميع من نحية صعوبة ليسة صعبة
    أنت ذكرت طريقة التخزين من الشبكة إلى القاعدة وهي باستعمال السكربتين اللي ذكرتهم ،، هل هذا صحيح
    هد هي طريقة الوحيد موجود حسب ضني
    وهي تقتصر عل عمل سكريبت php للادخال للقاعدة واخر للاخراج منها معلوماة
    وسكريبت xna لارسال قيمة الى php كي يرسلها ال قاعدة
    واخر لارسال قيمة الى php لستخراجها من قاعدة
    اك ساحاول اوفر تبصيط للفكرة لكن لن اتطرق لاي شيء من نحية برمجية في xna لاني لست مبرمج xna
    بتوفيق يا بطل
    الثورة الاسلامية الكبرى لاعادة الخلافة الراشدة
    بسم الله الرحمان الرحيم... انما النصر صبر ساعة فلا هوان ولا ستكان حت يعود الضلم تحت الاقدام ويعاقب الخونة وانجاس وترفع الرايات سود و لترتاع يهود لقرب الوعود فالتكن هته الثورة يا اهل مصر و سورية ويا اخواني في العالم اجمع ثورة غضب ثورة غضب خالصة لوجه الله فالتكن بداية النهاية ليعلم اليهود ان الامة اصبحت على فجر النصر وليكن اول بشارات النصر الانتقام من الخونة هم من بني جلدتنا وما هم منا...
    امة واحدة راية واحد حرب واحدة

Bookmarks

قوانين الموضوعات

  • لا يمكنك اضافة موضوع جديد
  • لا يمكنك اضافة ردود
  • لا يمكنك اضافة مرفقات
  • لا يمكنك تعديل مشاركاتك
  •  
  • كود BB مفعّل
  • رموز الحالة مفعّل
  • كود [IMG] مفعّل
  • [VIDEO] code is مفعّل
  • كود HTML معطل