C++ كلغة أولى ويندوز اللعبة البرمجة ؟ [مغلقة]

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

  •  06-07-2019
  •  | 
  •  

سؤال

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

وجدت الثعبان عملت وكذلك أول اللغة كما أنا أكثر اهتماما في الشبكة و برمجة الويب على Linux/Unix, ولكن بالنسبة لشخص مهتمة أساسا في نظام التشغيل Windows برمجة لعبة كنت أفكر C# قد يكون خيارا أفضل كما انه يمكن معرفة باستخدام Visual C# Express Edition و XNA, ثم التحول إلى Visual C++ عندما يكون جاهزا للبدء في تعلم C++ وبالتالي يكون بالفعل في بيئة مألوفة.أعتقد إدارة الذاكرة كثير في C# على الأقل يعالج ذلك حتى انه يمكن وضع هذا حتى يبدأ في تعلم C++.

ماذا يرى آخرون C++ الأول لغة البرمجة لهذا النوع من التطبيق ؟ يجب أن أوصي يذهب C# بدلا من ذلك ؟

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

المحلول

يجب أن يكون C ++ على ما يرام. أعتقد أنه من الأفضل حالا التعلم حول إدارة الذاكرة، المؤشرات، الخ قبل القفز صعودا إلى C # كما انه سوف نفهم كيف يعمل البرنامج بشكل أفضل. خلاف ذلك، وقال انه سوف نرى الذاكرة بأنها السحر وسوف جامع القمامة ليس لديهم معنى حقيقي. فمن الجيد دائما أن يكون هناك فهم واضح لغات (C، C ++، الجمعية، وما إلى ذلك) الأساسية لإنتاج أفضل رمز.

نصائح أخرى

وC ++ هي اللغة الرئيسية المستخدمة لمعظم العناوين "خطيرة" الألعاب. إذا البرمجية استوديو الألعاب رئيسي ثم يحتاج إلى معرفة البتات صغيرة قذرة من C ++.

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

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

وC ++ برمجة لعبة كبيرة. لكن ما لم تكن مثل آلام الكلي بينما كنت تعلم البرمجة، قد نظرتم بدءا XNA. وهذا سوف يسمح لك للعمل على محتوى اللعبة والمنطق بدلا من القتال مع رمز المحرك الخاص بك.

والآن إذا كنت مثل الألم يذهب مسار DirectX و C ++ لتبدأ.

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

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

وXNA هو اقتراح جيد.

وبيثون هو جيد في برمجة اللعبة. انظر ط تريد لتعلم لعبة -development والتي الناطقة باللغة ينبغي الاستخدام I-. النظر في التعلم Pygame .

<اقتباس فقرة>   

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

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

إذا قرر أن C ++ هو الطريق الصحيح للذهاب، ثم أوصي مكتبة التقديم على الأقل. شيء من هذا القبيل Ogre3D على أقل تقدير. وتغطي والسبب في ذلك في هذه المقالة كتابة الألعاب وليس محركات . أثناء كتابة (أو محاولة الكتابة) محركا من API قاعدة ستكون تجربة جيدة، وأنه من غير المرجح أن اللعبة سوف تحصل على الانتهاء.

شيء يجب عليك أن تنظر هو موجود SDK ، ربما كنت لا تريد أن البرنامج كل شيء نفسك.على سبيل المثال ، هناك جيدة محركات 3D مع أنواع مختلفة من الترخيص التي قد تناسب لك جيدا.

لذلك يجب التحقق من ان المكتبات الموجودة و الإستراحة و بعض اللغات التي تريد أن العصا مع معا في نفس الوقت.التكيف مع C++ أو C# ليس من الصعب أن السابق هو أكثر صرامة وأكثر تطلبا في حين يعطي لك أكثر اتساعا السيطرة على الذاكرة ، هذا الأخير يسمح لك أن تركز على التنمية الرئيسية في المنطقة ولكن يأخذ إدارة الذاكرة في تهمة (في الغالب) ، مما يعني أنك يمكن أن يكون في الوقت الحقيقي المسائل.

في نهاية اليوم, ما هي المساعدة التي يمكنك الحصول عليها لبناء التطبيق الخاص بك دائما outweight الخلافات الصغيرة بين تلك OO اللغات (إلى حد ما).

هناك الكثير من محركات اللعبة الأكثر مدرجة في هذه الصفحة.هي ذات أهمية خاصة في العالم الحر:

غير حرة تشمل الحزم الوحدة, و بائعين آخرين.

إذا كنت تفعل لا تريد أي من هذه المحركات لا تزال هناك جيدة جدا المكتبات مثل Qt C++, التي تسمح البرمجة - على الرغم من عدم مباشرة الثعبان, قد تضطر إلى تضمين نفسك و الآخرين C#, ولكن يمكن الحصول على قائمة طويلة جدا.

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

وأود أن تفضل XNA وC # لintroduction.I سريع وغير مؤلم ستستخدم C ++، ومكتبة مثل دايركت، للبرمجة المباراة بعد وجود بعض التجارب على topic.Most من الألعاب الأكثر نجاحا قد كتبت في C ++.

وإذا كان هدفك هو الحصول على المتعة، والانتهاء فعلا ألعاب نفسك (أو في فرق صغيرة) التي هي صغيرة نسبيا في نطاق، ثم أقول C # و XNA.

وإذا كان هدفك هو للعمل في هذه الصناعة، وعلى الألعاب ميزانية كبيرة عظمى مع فرق عملاقة ... ثم C ++ ...

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