أساسيات تطوير الألعاب ثنائية الأبعاد

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

  •  01-10-2019
  •  | 
  •  

سؤال

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

ولكن بالنسبة لسؤال Actuall ، لم أكتب سوى برامج Winapi حتى الآن ، لذلك تم التعامل مع جميع معالجة الأحداث وإدخال المستخدم من قبل OS ، مع الحد الأدنى من العمل ، ولكن إلى Develope Game ، على سبيل المثال قوائم مع أزرار غير مستشفى ، والرسوم المتحركة ، وهكذا ، أعتقد أنه لا يوجد شيء من هذا القبيل في Winapi Taht يمكن أن يساعدني في هذا أكثر من مجرد بعض روتينات مؤشر الماوس الأساسية و Keypresses.

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

تحرير: أريد في الواقع أن أتعلم كيفية كتابة الألعاب من نقطة الصفر ، يجب أن تكون تجربة برمجة رائعة ، وإذا كنت تفكر في ألعاب مثل Commander Keen على DOS ، والتي تم إنشاؤها بدون إطار أو مكتبات ، ولكن لا تزال رائعة جدًا.

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

المحلول

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

نصائح أخرى

أنا أوصي بـ SDL أيضًا ، ولكن يجب عليك بالتأكيد إلقاء نظرة Lazyfoo البرنامج التعليمي ، وهو رائع.

لقد استخدمت أيضًا SDL ، لكن أحاول أن أنظر إليها هج. يتطلب الأمر على الأقل DirectX 8.0 ، لذا ستعمل تطبيقاتك فقط على Windows ولكن في منتدىهم ستجد العديد من الموضوعات حول كيفية تنفيذها إلى OpenGL. في رأيي ، سيكون HGE أسهل في التعلم من SDL ، لأن SDL هي مكتبة منخفضة المستوى وسيتعين عليك تعلم كيفية التعامل مع العديد من الأشياء بنفسك. Hge أكثر استعدادًا للبدء خارج الصندوق.

عندما بدأت البرمجة بدأت في القيام بذلك مع Allegro ، في أيام DOS القديمة الجيدة. كانت أول مكتبة قابلة للاستخدام تعمل مع مكتبات SVGA ، وكان لها دعم جيد. ثم جاء الإصدار 3 وأضافوا دعمًا لنظام التشغيل Windows (باستخدام GDI و Directy X ، يمكنك اختيار وقت التشغيل الذي يجب استخدامه). جاء منفذ Linux إلى الحياة ، وكل شيء جيد.

إنها مكتبة ثنائية الأبعاد أساسية للغاية ، وستعلمك أساسيات الرسومات والرسوم المتحركة. الآن حتى أنه يحتوي على دعم صوتي وهو إضافة مطلوبة للغاية (حسنًا ، ما زلت أتذكر v 2.9x ...). هم في بيتا للإصدار 5 ، وأعتقد أن هذا مشروع مثير للاهتمام بالنسبة لك للبحث عنه.

http://www.talula.demon.co.uk/allegro/

ما الذي تتحدثون عنه يا رفاق ، لدى Winapi إجراءات رسم منخفضة المستوى.

على الرغم من أن استخدام مكتبة ثابتة مثل SDL هو فكرة أفضل ، يمكنك إنشاء تجريداتك الخاصة إلى روتين الرسم Winapi دون صعوبة كبيرة.

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

باختصار ، نعم - لا يوجد شيء في Winapi سيساعدك كثيرًا. ومع ذلك ، هناك العشرات من محركات الألعاب التي يمكنك بناء لعبتك عليها ، والتي ستستغرق قدرًا هائلاً من الأعمال النخرية من إنشاء اللعبة نفسها. قليلا من googling سوف تساعدك.

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

تحرير: أريد في الواقع أن أتعلم كيفية كتابة الألعاب من نقطة الصفر ، يجب أن تكون تجربة برمجة رائعة ، وإذا كنت تفكر في ألعاب مثل Commander Keen على DOS ، والتي تم إنشاؤها بدون إطار أو مكتبات ، ولكن لا تزال رائعة جدًا.

هذا في الواقع ليس صحيحا تماما. يستخدم القائد Keen (وأي ألعاب DOS) المكتبات: تلك التي توفرها DOS ، BIOS ، إلخ تريد ترك جميع التفاصيل ذات المستوى المنخفض لشخص آخر.

أوصي أليغرو كمكتبة لبرمجة لعبة بداية.

تحقق من هذا واحد لعبة dev بدء

لديهم حقًا مورد كبير يتعلق ببرمجة الألعاب والكثير من الأشياء المبتدئين. SDL جيد ، ولكن يجب أن تفكر في تعلم تقنيات اللعبة الأساسية قبل البدء في الترميز وحتى قبل البدء في التفكير في API/LIBS التي تستخدمها.

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

ربما سيساعدك ذلك على إلقاء نظرة على بعض أطفال Dev ، لأن ذلك سيعطيك فكرة كيفية عمل محركهم. مثل هذا (قديم) طفل ديف

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

بالنسبة لي ، هذا هو أول مشروع C الخاص بي. لكن يجب أن أعترف أنني فعلت أشياء مماثلة في Java و Python من قبل ، لذلك كانت هذه طريقة جيدة بالنسبة لي أن أتعلم C. بسرعة ولأنه يتعلم وليس أي أشياء مثمرة ، فأنا أستخدم C99 عاديًا ، مما يجعل المهمة "أكثر تسلية".

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

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

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

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

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

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

أقترح عليك تقليص الفصول من 1 إلى 9 وتركز على الفصول من 10 إلى 17.

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