ما هي بعض الموارد الجيدة لتصميم محرك اللعبة ثنائي الأبعاد؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

أنا أعبث بتطوير الألعاب ثنائية الأبعاد باستخدام C++ وDirectX في أوقات فراغي.أجد أن نهج نمذجة مجال المشكلات المؤسسية لا يساعد بقدر ما أريد؛)

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

هل لدى أي شخص موارد جيدة يمكن أن يوصي بها؟

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

المحلول

Gamedev.net عادةً ما أتوجه إليه للحصول على فكرة عما يفعله الأشخاص الآخرون في مجتمع تطوير اللعبة.

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

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

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

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

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

حظا سعيدا، وقبل كل شيء تذكر:من المفترض أن تكون الألعاب (وتطورها) ممتعة!لا تنشغل كثيرًا بالأشياء الصغيرة!

نصائح أخرى

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

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

والى حد كبير أي كتاب له <لأ href = "http://www.amazon.com/s/ref=nb_ss_gw_0_10؟url=search-alias٪3Daps&field-keywords=andre+lamothe&sprefix=andre+lamothe" يختلط = "نوفولو noreferrer"> أندريه لاموث باعتباره واحدا من المساهمين.

GameDev وقد طن من المواد كذلك.

وأنا لا يمكن أن أتفق معك أكثر من ذلك: تطبيقات المؤسسة لا إعدادك للبرمجة الألعاب

.

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

الرئيسية حلقة:
handleInput ()
updateGameLogic ()
renderImages ()

والآن، هذا كل شيء حسن وجيد للشاشة واحدة، والألعاب مترابطة واحد، مثل أي شيء من 70s أو 80S. ولكن أنا لا أجد هذا الهيكل نوبة قوية بشكل خاص للألعاب على شاشات متعددة (مثل ار بي جي) أو أي شيء أكثر غرابة. فإنه لا ترابط بشكل جيد للغاية. رمز يحصل غير تقليدي جدا كما تحتاج إلى معالجة العديد من المدخلات. فإنه لا مقياس جيد.

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

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

وأخيرا، لا يوجد شيء مثل مفتوحة المصدر لمعرفة كيفية تعامل مشاريع أخرى هذا. معركة Westnoth غير ناضجة، لعبة متوسطة الحجم. قد ترغب في معرفة ما يجري هناك. مرة أخرى، والألعاب في بيثون جعل كثيرا شيفرتها المصدرية المتاحة، لذلك يمكن أن ننظر من خلال المئات من المشاريع هناك. هل يمكن أيضا فك أتاري 2600 المدمجة، ولكن ذلك لن أقول الكثير عن البرمجة لكم اليوم. كان VCS القديم جهاز مخصص تداولت التطبيقات في وسيلة تعتمد على نظام ذاتها. :-D

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

وحظا سعيدا مع المشروع الخاص بك.

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

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

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