الشبكة العربية لمطوري الألعاب

مبتدئ  أيوب مشاركة 1

مرحبا جميعا !

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

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


هل كان يجب ان أبدأ بأختيار قصة اللعبة قبل برمجتها؟! ..أليس تشغيل اللعبة يعتمد على الوضائف التشغيلة و المحتوى او العرض البصري للعبه هو جزء يمكن اضافته و تشغيلة بالوضائف..


هناك الكثير من المفاهيم و الافكار المتشابكة التي لم استطع حلها او فك تشابكها.. ارجو المساعدة في توظيح مشكلتي و ارشادي الى كيفيه الربط بين وظائف اللعبة و محتوى اللعبة.


ولكم جزيل الشكر.

خبير مدير وسام البهنسي مشاركة 2

السلام عليكم، وأهلاً وسهلاً بك أخي أيوب في الشبكة.


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


لكن يبدو أنك قد ضعت قليلاً عندما بدأت بكتابة المحتوى الفعلي وبدأت تواجه محدوديات في الوظائف التي كتبتها سابقاً. هل فهمي لمشكلتك صحيح حتى الآن؟



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


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


مرة أخرى لا أعلم إن كان هذا هو الكلام الذي تحتاج له. أرجو التوضيح أكثر إن أمكن.


والسلام عليكم

وسام البهنسي
مبرمج في إنفيديا وإنفريمز