क्वेक 3 इंजन के अध्ययन में सहायता के लिए संसाधन [बंद]


14

क्या कोड से परे क्वेक 3 इंजन के कोड का अध्ययन शुरू करने के लिए अच्छे संसाधन (मैनुअल, ट्यूटोरियल, आदि) हैं?

मुझे यह जानने में बहुत दिलचस्पी है कि यह शैक्षिक उद्देश्यों के लिए कैसे संरचित है और शायद कुछ संशोधन करने के लिए।

जवाबों:


13

तो, आपको आईडी 3 पर विकिपीडिया के लेख को देखकर शुरू करना चाहिए । जिसे ब्रायन हुक के GDC टॉक सारांश और एलीमेंट 61 ब्लॉग पर कुछ पुराने सामान द्वारा संवर्धित किया जा सकता है । इसके अलावा, आपको जो भी पुराने ट्यूटोरियल मिलाने की कोशिश कर रहे हैं और जो कुछ चल रहा है उसे समेटने के लिए मिल सकता है।

मेरा सुझाव है कि ioquake3 के बजाय मूल स्रोत रिलीज़ से शुरू करें या क्या-क्या-क्या-क्या है, वास्तव में इस बात का संदर्भ देखें कि क्या चल रहा है (कैसे इनपुट को संभाला और इंजन के अंदर निर्देशित किया गया है, अंतर्निहित घटना किस प्रकार की है। संरचना का उपयोग किया जाता है, आदि)।

जब मैं इसके साथ काम कर रहा था तो कुछ मुख्य बिंदुओं ने मेरी मदद की:

  • हमेशा एक सर्वर होता है; वहाँ भी एक फ्रेम को संभालने के शीर्ष पर बैठे ग्राहक तर्क हो सकता है।
  • इनपुट को पहले एक कंसोल पर निर्देशित किया जाता है, यदि रुचि है, तो जीयूआई के लिए, फिर खेल के लिए उचित है।
  • जाल कार्यों का उपयोग करते हुए इंजन को गेम लॉजिक से अलग (हार्ड!) किया जाता है। देखो (यदि स्मृति कार्य करता है) cgame और वास्तविक इंजन कोड खोजने के लिए परियोजनाओं को प्रस्तुत करना।
  • गेम तर्क पूरी तरह से क्वेक 3 वर्चुअल मशीन में चलाने के लिए लिखा जा सकता है। जब देशी डीएलएस को मॉडिफाई और उपयोग करते हैं, तो आपको quake3.exe +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0वीएम कोड के बजाय इंजन को देशी कोड चलाने की अनुमति देने के लिए गेम को चलाना होगा ।
  • मेनू सिस्टम के लिए यूआई एक अजीब, बुराई, संरचनाओं और कॉलबैक के मुड़ ढेर है। एक बार जब आप इसे बाहर निकालते हैं तो यह प्रयोग करने योग्य होता है, लेकिन यह कुछ परीक्षण और त्रुटि ले सकता है। याद रखें, यह एक ढेर है।
  • यदि आप मूल .dll में कोड लिख रहे हैं, तो स्मृति को आवंटित करने के लिए स्वतंत्र महसूस करें, C ++ में लिखें, या जो भी आपकी नाव को तैरता है। आप एसटीएल का भी उपयोग कर सकते हैं - जहां आप इंजन के साथ सीधे इंटरफ़ेस करते हैं, सिवाय इसके मुहावरों का सख्ती से पालन करने का कोई कारण नहीं है।

सहकर्मी के साथ मैंने इसके लिए कुछ साफ-सुथरी चीजें बनाई हैं:

  • कंसोल से शेल कमांड को कॉल करने के लिए सिंपल कमांड-लाइन इंटरफेस और स्टडआउट / स्टडर स्ट्रीम को कंसोल (क्वेक कंसोल) पर वापस डंप करें।
  • रिकॉर्ड खींचने और प्रदर्शित करने के लिए SQL डेटाबेस के साथ इंटरफ़ेस।
  • क्लाइंट हड पर लचीले डिस्प्ले बनाने के लिए लचीली विंडोिंग और विजेट टूलकिट (बार चार्ट्स, टेक्स्ट बॉक्स, पिक्चर बॉक्स, संदर्भ मेनू, रेजिजेबल विंडो इत्यादि का उपयोग करके)।
  • धीमे रॉकेट। :)

व्यक्तिगत रूप से, मैंने पाया कि इंजन वास्तव में गूंगे तरीकों से किए गए वास्तव में स्मार्ट चीजों का एक शानदार संयोजन था, वास्तव में स्मार्ट तरीके से किए गए गूंगे और वास्तव में स्मार्ट तरीके से किए गए स्मार्ट चीजों का एक बड़ा संयोजन था। यह एक शानदार उदाहरण है कि कैसे मध्यम-मध्यम सी परियोजना में प्रतिरूपकता और अच्छी संरचित डिजाइन है।

अंत में, बुरा नहीं लगता है अगर यह कुछ समय लेता है। वास्तव में मुझे यह पता चलने में एक महीने का समय लग गया कि मैं इंजन में क्या देख रहा था; यदि बाकी सब विफल हो जाता है, तो आवेदन इनिट पर शुरू करें और फ़ंक्शंस में नीचे सुरंग करें, अपने लिए साइनपोस्ट के रूप में टिप्पणी छोड़ दें। मेरी निगरानी समाप्त हो गई, यह गुलाबी नाम में कवर किया गया जिसमें फ़ंक्शन नाम, पंक्ति संख्या और उन्होंने जो कुछ भी किया था उसका संक्षिप्त विवरण दिया।



1

पूर्ण रूप से।

http://en.wikipedia.org/wiki/Quake_engine वहाँ से बाहर क्या है का एक अच्छा अवलोकन है, लेकिन आप इसके उद्धरणों के माध्यम से इसकी वास्तुकला के विवरण में बहुत जल्दी प्राप्त कर सकते हैं।

मैं भी खेल इंजन वास्तुकला पर एक जोड़ी पुस्तकों का सुझाव दे सकता हूँ जो आप की तलाश में हैं। क्वेक विशिष्ट नहीं होने पर, वे इंजन डिज़ाइन के विवरण में जाते हैं और क्वेक इंजन के कई पहलुओं के समानांतर चलते हैं:

  • 3 डी गेम इंजन आर्किटेक्चर - 978-0122290640
  • 3 डी गेम इंजन प्रोग्रामिंग - 978-1592003518

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.