سؤال

أود أن أعرف كيفية إنشاء لعبة fps باستخدام SDL lib؟

هل هناك كتب تشرح مع الأمثلة؟

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

المحلول

هذا يفوز لمعظم الأسئلة المفتوحة.يمكنك كتابة كتاب حرفيا.ولكن دعونا نكتفي بالإشارة إلى الاتجاه الصحيح ...

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

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

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

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

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

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

أساسيات الذكاء الاصطناعي، وليس الذكاء الاصطناعي "الحقيقي"، ولكن الذكاء الاصطناعي الوظيفي؛هناك فرق كبير.تعتبر أجهزة الحالة رائعة في البداية، وهي كافية للعبة FPS بسيطة.

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

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

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

 xxxxxxxxxxxxxxxxxxxxxxxx
 xx..........P..........x
 xxxxxxx...........I....x
 xR....xxx...........E..x
 xx.................0xxxx
 xxxxxxxxxxxxxxxxxxxxxxxx

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

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

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

نصائح أخرى

وتحميل الزلزال 3 مصادر في fileshack و التعلم منها.

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

و-SDL هي مكتبة الرسومات 2D، لا يمكنك كتابة FPS في 2D، لذلك عليك أن تذهب مع مكتبة 3D، إما دايركت، أو OpenGL

و-SDL لديه القدرة على "متزامنة" مع بينغل، استخدامه للرسومات، ولكن ليس هناك مجموعة كبيرة من التعليمات الفورية لهذا الموضوع

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

وبعد هذا، عليك أن تكون على استعداد ل3D (انها الكثير أكثر تعقيدا، ويتطلب فهم أفضل للالرياضيات، ويأخذ الكثير رمز أكثر أن تفعل أشياء أبسط) إذا كنت أذهب مع بينغل، تحقق من دروس NeHe، فإنها 'نعمل حاليا على مجموعة جديدة، وذلك باستخدام SDL بتقنية OpenGL، لأن الدروس القديمة، على الرغم من valueable، يتم ترميز بدلا سيئة واستخدام ويندوز (Win32 و) API

ونضع في اعتبارنا، تطوير اللعبة هي واحدة من البرامج الأكثر تطلبا، ومجزية سوف تأتي عبر، حظا سعيدا لذلك

وحين لا SDL محددة، الدروس NeHe برنامج OpenGL هي مكان ممتاز لبدء للتعلم عن كيفية القيام 3D.

وإذا كانت هذه هي المباراة الأولى الخاصة بك، عليك ربما تريد لهدف أقل من وFPS. الكتابة لعبة بسيطة 2D تتريس باستخدام وSDL يعلمك كل ما عليك أن تعرفه عن هذه المكتبة.

وحد كبير أي شيء أن يقول في عنوان "حيل اللعبة البرمجة المعلمون" سوف تظهر لك كيفية جعل لعبة FPS. LeMothe يحبهم.

وتحرير: نسيت هذه العناوين

ولقد وجدت هذا الموقع من حين الى الوراء، عندما كنت ألعب مع حولها SDL ، كنت 'ليرة لبنانية العثور على برامج عينة بحيث يمكنك تحميل <لأ href = "http://www.libsdl.org/games.php؟order=name&category=-1&completed=0&os=2&match_name=&perpage=-1" يختلط = "نوفولو noreferrer" > هنا

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