सभी गेम प्रोग्रामर को क्या गणित जानना चाहिए? [बन्द है]


164

सरल पर्याप्त प्रश्न: सफल होने के लिए सभी गेम प्रोग्रामर के पास क्या गणित होना चाहिए?

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

नोट: जैसा कि कोई भी सही उत्तर नहीं है , यह प्रश्न (और इसके उत्तर) एक सामुदायिक विकी है।

इसके अलावा, यदि आप फैंसी लेटेक्स गणित समीकरण चाहते हैं, तो http://mathurl.com/ का उपयोग करने के लिए स्वतंत्र महसूस करें ।


1
एमएमएम मुझे लगता है कि एक ऐसा विषय था जिसमें गणित की किताबों के बारे में बात की जानी चाहिए, जिसे हर प्रोग्रामर को पढ़ना चाहिए या ऐसा कुछ करना चाहिए, जो मुझे वास्तव में याद न हो ... लेकिन इस पर कुछ अच्छी बातें थीं .... यकीन नहीं होता कि यह यहाँ थी या स्टिवोवरफ्लो एसवेल लोल
प्रिक्स



15
टेट्राद ♦
थॉमस ईडिंग

1
@ThomasEding हाँ, बहुत अधिक व्यापक अधिक फिटिंग हो सकता है, क्योंकि यह स्पष्ट रूप से एक सूची प्रश्न है
एको

जवाबों:


137

रहे हैं कई गणित है कि उपयोगी होते हैं के अन्य रूपों, लेकिन पूर्ण में कम से कम आप इन पता करने की जरूरत:

  • बीजगणित और अंकगणित

ये बहुत बुनियादी हैं, लेकिन अगर आप ये नहीं जानते हैं कि आपके पास एक प्रोग्रामर होने का भी मौका नहीं होगा, तो अकेले एक गेम डेवलपर को रहने दें।

एक खेल की दुनिया में वस्तुओं को वैक्टर के साथ दर्शाया जाता है। एक वेक्टर एक वस्तु की स्थिति, दिशा और गति जैसी चीजों का प्रतिनिधित्व करता है। वेक्टर गणित की गणना जैसे डॉट प्रोडक्ट , क्रॉस प्रोडक्ट , और वेक्टर सामान्यीकरण आवश्यक हैं।

मैं अपने गेम ऑब्जेक्ट को कैसे स्थानांतरित करूं? नौसिखिया कह सकता है:

"मुझे पता है! मैं बस करूँगा:" object.position.x++

नहीं नहीं नहीं। आपको एक वेक्टर गणना का उपयोग करने की आवश्यकता है। ऑब्जेक्ट को एक स्थिति, दिशा और त्वरण वेक्टर की आवश्यकता होती है जिसे आप ऑब्जेक्ट को स्थानांतरित करने के लिए उपयोग कर सकते हैं। यदि आप नौसिखिए काम करते हैं, तो आप एक अजेय गड़बड़ में फंस जाएंगे, और आप इसे दुनिया के एक्सवाईजेड अक्ष के साथ गठबंधन नहीं करने की दिशा में कैसे आगे बढ़ेंगे?

मुख्य कारण खेल quaternions का उपयोग करते हैं, क्योंकि वे Gimbal लॉक से पीड़ित के बिना, लगभग कुशलता से यूलर कोण के रूप में रोटेशन का प्रतिनिधित्व करते हैं । जिम्बल लॉक तब शुरू होता है जब कोई भी यूलर कोण किसी भी अक्ष के आसपास 90 डिग्री तक घूमता है: आप तुरंत स्वतंत्रता की डिग्री खो देते हैं। चौथे आयाम को जोड़कर Quaternions इस मुद्दे को संबोधित करता है। यदि आप यूलर एंगल्स के साथ फंस गए हैं, तो आपको एक अक्ष को ~ 89 डिग्री से अधिक कभी नहीं घुमाने के लिए प्रतिबंधित करना होगा।

यदि आप एक गेम में भौतिकी प्रतिक्रियाओं के लिए गणित की प्रोग्रामिंग करने जा रहे हैं, तो एक भौतिकी कक्षा लेना एक बुरा विचार नहीं होगा।

कारण आपको भौतिकी समीकरणों को जानने की आवश्यकता होगी:

  1. एक गेंद उछाल बनाना (देखें: बहाली का सह-कुशल)
  2. बल के 'एक्स' न्यूटन के साथ एक दिशा में एक गेंद चाल करें
  3. कुछ बनाओ कम या ज्यादा घर्षण है तो यह एक अलग गति से स्लाइड करेगा
  4. टकराव की प्रतिक्रियाएं: जब मैं इसे 'यहां' मारता हूं तो वस्तु किस दिशा में घूमेगी?

यदि आप एक भौतिकी इंजन (या एक खेल इंजन जिसमें भौतिकी इंजन इनबिल्ट है) का उपयोग करते हैं तो आप भौतिकी के बारे में बहुत कम जानने के साथ दूर हो सकते हैं। फिर भी, यह जानना काफी अच्छा है कि आपको अपने हाथों को गंदा करने की आवश्यकता है क्योंकि भौतिकी इंजन ठीक से प्रदर्शन नहीं कर रहा है।


1
भौतिकी के लिए, टकराव की प्रतिक्रिया और पुनर्स्थापना सहित कठोर शरीर की गतिशीलता पर क्रिस हेकर के लेख अद्भुत हैं: chrishecker.com/Rigid_Body_Dynamics
tenpn

25
आपने क्वाटर्नों का उल्लेख किया है, लेकिन रूपांतरण मेट्रिसेस का नहीं ??
एंड्रयू रसेल

8
"Gimble [sic] लॉक वह प्रभाव है, जब आप अपने माउस को नीचे देखने के लिए ले जाते हैं, तो यह तब रुकता है जब आप सीधे नीचे देखते हैं ...." वास्तव में यह आमतौर पर खिलाड़ी की पवित्रता के लिए किया जाता है, और इसका कोई लेना देना नहीं है।

4
यह मुझे आश्चर्यचकित करता है कि कितनी बार quaternions को गिमबल लॉक से जोड़ा जाता है। मैंने 3 डी गेम लिखा है जिसमें कोई भी quaternions नहीं है और कभी भी एक गिमबल लॉक की समस्या नहीं थी। यदि आप वास्तव में 3 डी गणित को समझते हैं और जानते हैं कि वास्तव में एक जुआ ताला क्या है, तो आपको वह समस्या नहीं होगी।
स्केज सिप

7
गिमबल लॉक वास्तव में यूलर एंगल्स (आमतौर पर टैट-ब्रायन कोण: यव, पिच, रोल) के साथ भोले घुमाव के कारण होता है। एक्सिस-एंगल जैसे वैकल्पिक अभ्यावेदन का उपयोग इसकी घटना को रोकने के लिए भी किया जा सकता है। हालांकि क्वाटरनियन्स में आसान प्रक्षेप का लाभ है, और आमतौर पर इस कारण से पसंद किया जाता है।
जेसन कोज़ाक

51

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

गणित तकनीक की तरह है, जितना बेहतर होगा, जब तक आप इसे लागू कर सकते हैं।

यहाँ महत्व का क्रम है जो मैं देख रहा हूँ।

  • अंकगणित
  • रेखीय बीजगणित (ज्यामितीय व्याख्याओं के साथ)
  • पथरी (भौतिकी)
  • संयोजक (यादृच्छिक स्तर)
  • संभाव्यता (संतुलन)
  • सांख्यिकी (एआई के लिए बायेसियन एस्प)

मैं चलता रहा। जितना अधिक आप बेहतर जानते हैं, लेकिन गणित का एक गुच्छा सीखने का मतलब यह नहीं है कि आप एक शानदार खेल बना लेंगे, लेकिन यह मदद कर सकता है।


4
पथरी एक बहुत बड़ा क्षेत्र है। खेल विकास के लिए संभवतः इसकी थोड़ी मात्रा की आवश्यकता है।
नोल्डोरिन

2
@ नोल्डोरिन हां। अधिकांश स्थितियों में व्युत्पन्न, त्वरण, वेग और स्थिति के बीच संबंध को समझना पर्याप्त हो सकता है ... लेकिन पथरी भयानक है।
जोनाथन फिशऑफ

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

1
मेरे लिए यह एक विशेष बायेसियन एल्गोरिथ्म नहीं है जो मुझे महत्वपूर्ण लगता है, लेकिन ईटी जेनेस द्वारा जासूसी के रूप में तर्क प्रक्रिया को समझना। मुझे नहीं लगता कि बायेसियन तर्क के बारे में कुछ भी स्वाभाविक रूप से धीमा है।
जोनाथन Fischoff

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

25

एक बहुत ही बुनियादी एक पायथागॉरियन प्रमेय है। दूरी सूत्र के रूप में भी जाना जाता है।

एक ^ 2 + b ^ 2 = ग ^ 2जहां aऔर bएक सही त्रिकोण के किनारों हैं और cकर्ण है। इसका मतलब है कि वेक्टर की लंबाई का पता लगाने के लिए, आप ऐसा करते हैं:

दूरी = sqrt (ए ^ 2 + बी ^ 2)

ब्याज की एक और बात यह है कि यदि आप केवल दूरी की तुलना कर रहे हैं , तो आपको वर्गमूल (जो अपेक्षाकृत महंगा हो सकता है) नहीं लेना है। यही कारण है कि अधिकांश चौखटों में उनके वैक्टर के लिए "दूरी वर्ग" या "लंबाई वर्ग" कार्य होता है।


1
मुझे पूरा यकीन है कि मैंने इसे इस साइट पर कहीं और :) से पहले पढ़ा है
Ricket

ज़रूर, यह पोस्ट उस धागे / टिप्पणी से प्रेरित थी।
टेट्राद

मैं यहाँ पर कुछ
dujà

2
अधिक सामान्यतः, एक वेक्टर की लंबाई स्वयं के साथ डॉट उत्पाद का वर्गमूल है। तो, sqrt(V dot V)इसकी लंबाई है। तो, दो बिंदुओं के बीच की दूरी है:sqrt((A-B) dot (A-B))
ग्रेफेड

इसके अलावा ट्रिग आइडेंटिटी साइनो (x) + cos x (x) = 1.

19
  • 3 डी और 4 डी दोनों क्षेत्र, और डब्ल्यू घटक को किसके लिए सेट किया जाना चाहिए
  • बाएं हाथ और दाहिने हाथ समन्वय प्रणाली, और जो एक अपने खेल है
  • डॉट उत्पाद, और यह किसके लिए उपयोगी है
  • क्रॉस उत्पाद, और इसके लिए क्या उपयोगी है
  • मैट्रिक्स, वे अभिविन्यास और स्थिति का प्रतिनिधित्व कैसे करते हैं और आप उन्हें कैसे जोड़ सकते हैं
  • quaternions

भले ही आप ग्राफिक्स गाय नहीं हैं, आप 80% समय वैक्टर और वेक्टर गणित का उपयोग करने जा रहे हैं। वे हमारे मज़ेदार बोलोग्नीज़ के प्याज हैं।


4
यह एक बुरी सूची नहीं है, लेकिन मैं अधिक वर्णनात्मक उत्तर की उम्मीद कर रहा था। यानी डॉट उत्पाद फॉर्मूला क्या है, इसका क्या अर्थ है, और यह कैसे उपयोगी है।
Tetrad

3
@Tetrad क्या विकिपीडिया आपको नहीं देता है? en.wikipedia.org/wiki/Dot_product#Definition
जोनाथन फिशऑफ

1
विशेष रूप से खेलों के लिए नहीं, नहीं।
तेतादाद

5
ऐसा होता है। यह आपको बताता है कि डॉट उत्पाद कोण का कोसाइन है। यह सब आपको जानना चाहिए (और पता कर सकते हैं), क्योंकि अनुप्रयोग अभी भी इस बात पर निर्भर है कि आप इसके लिए क्या उपयोग करना चाहते हैं। ओरिएंटिंग ऐ? आपको कोण की आवश्यकता है, इसलिए डॉट आपका मित्र है। प्रकाश का प्रतिपादन? आपको कोण की आवश्यकता है। यह कहा जा सकता है कि यह (इस मामले में डॉट उत्पाद) वेक्टर की कोण की लंबाई की लंबाई को परिभाषित करता है a, वेक्टर की लंबाई की लंबाई। वह ज्ञान है जो दिया जा सकता है। इसके किस भाग का उपयोग करना है, और कैसे, यह नहीं बताया जा सकता है क्योंकि अनुप्रयोग अनंत हैं।
काज


10

पर अच्छी पकड़ +, -, *, और /। उनके बिना, आप पूरी तरह से खराब हो गए हैं।


12
मुझे लगता है कि हम सभी इस बात से सहमत हो सकते हैं कि सवाल क्या पूछ रहा था। (आप% भी भूल गए)।
कोडरंगर

2
अन्य उत्तर इस (मूल अंकगणित) के लिए मतदान करते हैं ....
RCIX

7
न केवल मूल अंकगणित, बल्कि यह समझना कि कैसे संचालन सभी कार्यों में दो-पूरक, निश्चित बिंदु और IEEE फ़्लोटिंग पॉइंट वातावरण हैं। ०.१ * ३! = ०.३ पर कोई पुख्ता समझ के बिना, या -x ऐसा क्यों नहीं हो सकता है जिसकी आप अपेक्षा करते हैं, आप खराब हैं।

1
@ user744 मैं वास्तव में खराब हूँ, यह टोना क्या है?
नियॉन वॉरगे जुले

9

हाँ, गेम प्रोग्रामिंग बहुत गणित-गहन हो जाता है। आपको जो गणित की आवश्यकता है वह इस बात पर निर्भर करता है कि आप क्या काम कर रहे हैं। बेसिक अंकगणित अवश्य है, ठीक वैसे ही जैसे सभी प्रोग्रामिंग में होता है। उस परे:

किसी भी ग्राफिक्स कार्य के लिए ज्यामिति महत्वपूर्ण है। यदि आप स्क्रीन पर चीजों को प्रदर्शित करना चाहते हैं, तो आपको समन्वय प्रणालियों को समझने की आवश्यकता है। और यदि आप उन्हें कार्डिनल दिशाओं में किसी भी जगह ले जाना चाहते हैं, तो आप साइन, कोसाइन और वैक्टर (मूल ट्रिगर) की ठोस समझ के बिना पूरी तरह से खो जाएंगे। और अगर आपको 3 डी में काम करने की आवश्यकता है, तो ज्यामिति और ट्रिगर आवश्यकताओं को बहुत अधिक जटिल हो जाता है।

यदि आप किसी भी प्रकार के दूरस्थ यथार्थवादी भौतिकी का मॉडल बनाना चाहते हैं, तो आपको इसके लिए पथरी की आवश्यकता है। (यह पथरी का पता लगाने के लिए न्यूटन को निकालता है, बाद में।)

किसी भी प्रकार की संभाव्यता गणना के लिए परीक्षण और त्रुटि के पागल मात्रा के बिना समझदार परिणाम प्राप्त करने के लिए सांख्यिकी और संभाव्यता सिद्धांत के ज्ञान की आवश्यकता होती है।

वहाँ शायद एक बहुत अधिक है, लेकिन वह है जो मेरे दिमाग में बस ऊपर से दिमाग में आता है।


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

आर्क के लिए किसी ट्रिग की जरूरत नहीं है, बस उपयोग करें s=u.t + a.t.t/2। आपको प्रारंभिक वेग प्राप्त करने के लिए ट्रिगर की आवश्यकता होती है, हालांकि (यू)।
स्किज

यह अधिक क्यों नहीं है? जिन आधे प्रोग्रामरों के साथ मैंने काम किया है, वे उनके जीवन के लिए साइन और कॉज़नेस का उपयोग नहीं कर सकते हैं।
zaratustra

@Skizz: हाँ। आपको एक कोण और एक शक्ति को प्रारंभिक वेक्टर में बदलने के लिए ट्रिगर की आवश्यकता होती है। उसके बाद आपको बस एक एनीमेशन लूप और एक ग्रेविटी सिटिस्ट चाहिए।
मेसन व्हीलर

9

बहुत कम से कम आपको आवश्यकता होगी।

  • बीजगणित
  • मूल ज्यामिति
  • मूल त्रिकोणमिति

आप कम से कम सदिश संचालन का ज्ञान होना चाहते हैं, और आप जानना चाहते हैं कि मैट्रिक्स क्या है और इसका उपयोग किस लिए किया जा सकता है, हालाँकि विवरण कड़ाई से आवश्यक नहीं होंगे।

यदि आप ग्राफिक्स प्रोग्रामिंग में शामिल होना चाहते हैं, तो आपको बहुत अधिक गणित ज्ञान की एक नरक की आवश्यकता होगी, लेकिन सामान्य गेमप्ले प्रोग्रामिंग करना इतना गणित गहन नहीं होना चाहिए।


9

बाइनरी और हेक्साडेसिमल नंबरिंग सिस्टम, और दशमलव संख्या से उन्हें / में कैसे परिवर्तित करें।

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

हेक्स काफी के रूप में महत्वपूर्ण (जब तक आप कार्रवाई करने के लिए चाहते हैं नहीं है 0xDEADBEEF ), लेकिन कम से कम, आप करना चाहते हैं समझते हैं जब वे इस्तेमाल किया जा रहा है, और क्यों।


1
यदि आप हेक्स नहीं पढ़ सकते हैं, तो आप प्रभावी रूप से कार्यक्रम नहीं कर सकते। C और C ++ में अधिकांश बिटकॉइन स्थिरांक को हेक्स मान के रूप में निर्दिष्ट किया जा रहा है।

मुझे लगता है कि आप मिल गए हैं Booleanऔर binaryमिश्रित हो गए हैं। यकीन नहीं है कि वे गेम प्रोग्रामिंग के लिए बिल्कुल आवश्यक हैं।
स्किज़ सिप

@Skizz, अच्छी बात - तय की। (और एक और मामूली बात, यह एक विकी है - इसे बदलने से आपको रोकने के लिए कुछ भी नहीं है। :)
साइक्ल्स

यदि आप हेक्स नहीं पढ़ सकते हैं, तो इसे आपके लिए परिवर्तित करने के लिए एक उपकरण का उपयोग करें।
थॉमस ईडिंग

6

कंप्यूटर प्रोग्रामिंग के मूलभूत गणित का कोई उल्लेख नहीं है? ग्राफ सिद्धांत, संख्या सिद्धांत, निर्धारित सिद्धांत और ठोस गणित, आमतौर पर विश्वविद्यालय में "असतत गणित" नामक दर्दनाक और खराब तरीके से पढ़ाए जाने वाले वर्ग में एक साथ पाए जाते हैं।

"स्टूपिड बिट ट्रिक्स" हर तरह के प्रोग्राम टाइम को बचाती है (और वे आमतौर पर कुछ स्ट्रिंग ट्रिक्स और सेट ट्रिक्स के बराबर होती हैं), ग्राफ प्रकार और ट्रैवर्सल्स का उपयोग सभी जगह पर किया जाता है (भले ही आप एसटीएल कंटेनर उठा रहे हों) और एल्गोरिथम जटिलता अनुकूलन के लिए महत्वपूर्ण है क्योंकि भाषाएं उच्च स्तर तक पहुंचती हैं।


5

मुझे लगता है कि भुगतान मैट्रिक्स एक बहुत ही आवश्यक उपकरण है। जब वे कुछ दिलचस्प शून्य-राशि के उचित खेल संतुलन के लिए पहुंचते हैं तो खेल अक्सर अधिक मज़ेदार होते हैं, और जटिल मामलों में आपको भुगतान करने में मदद करते हैं। मुझे लगता है कि यह विकिपीडिया लेख किसी भी रूप में अच्छा है, और मूल आवश्यक अवधारणा को पार करता है: http://en.wikipedia.org/wiki/Normal-form_game


यह मेरे लिए बेहद अव्यवहारिक है। क्या आपको लगता है कि Starcraft या Warcraft 3 इस तरह से एक विधि का उपयोग करके संतुलित थे? मुझे ऐसा नहीं लगता, मेरा मानना ​​है कि यह पुनरावृत्ति और खेल था, और निरंतर पैचिंग।
बोबोबो

उह, वे लगभग निश्चित रूप से थे, प्रारंभिक युद्धक सेनाओं को एक-दूसरे के डुप्लिकेट संशोधित किए गए थे जो संभवतः उन्हें समग्र रूप से संतुलित बनाने के लिए डिज़ाइन किए गए अदायगी के साथ बनाए गए थे। इसके बाद वे बस उन चीजों का निर्माण कर सकते थे जो उन्होंने चीजों को ट्यून करना सीखा था, लेकिन उन्हें शायद इसे फिर से स्टारक्राफ्ट के साथ करना था ताकि कुछ अलग स्तर की सेनाओं को संतुलन मिल सके, जिसमें तीन अलग-अलग सेनाएं शामिल थीं, और फिर जब स्टारक्राफ्ट II इकाइयां जोड़ी गईं। जाहिर है कि आप केवल मॉडल पर नहीं रुकते हैं, playtesting अक्सर आकस्मिक गुण दिखाती है, लेकिन एक भुगतान मैट्रिक्स यह है कि आप शुरू में मॉडल जटिलता कैसे हैं।
21 सितंबर को Kzqai

[प्रशस्ति पत्र की जरूरत]?
बॉबोबोबो

1
यह ऐसा था: amazon.com/Game-Architecture-Design-New-Edition/dp/0735713634/… मेरी इच्छा है कि अमेज़न संस्करण पुस्तक के अंदर खोज करने में सक्षम हो, क्योंकि यह इस साइट के लिए बिट्स में संदर्भ के लिए एक बहुत अच्छी बात हो सकती है। हालांकि हो सकता है कि अमेज़न इन-बुक खोज उस तरह से काम न करे। वैसे भी, जहां वे एक उदाहरण के रूप में वारक्राफ्ट का उपयोग करके अदायगी-मेट्रिक्स से अधिक हो गए थे, और जटिलता को प्रबंधित करने के लिए लाभ इतना स्पष्ट था कि इसने मुझे तुरंत रूपांतरित कर दिया। यह कोई गारंटी नहीं है कि बर्फ़ीला तूफ़ान वास्तव में उस दृष्टिकोण का उपयोग करता है, लेकिन वे स्मार्ट लोग हैं, इसलिए उनके पास शायद एक गणितीय समाधान था ...
Kzqai

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

4

डॉट उत्पाद को समझें: यदि दो वैक्टर में एक ही दिशा, (थीटा <90 डिग्री) के बारे में है, तो डॉट उत्पाद सकारात्मक है, या फिर, नकारात्मक। इसका उपयोग परीक्षण के लिए किया जा सकता है जब भी खिलाड़ी दृष्टि में होता है (FOV 90 डिग्री है)।

और अपने 2 डी गेम को उच्च आयामों के लिए सामान्यीकृत करें। (वेक्टर गणना का उपयोग करें)

यदि आप अपने आप से एक 3 डी इंजन को लागू कर सकते हैं, तो आप जाने के लिए अच्छे हैं।


4

यह इस बात पर निर्भर करता है कि आप क्या कर रहे हैं

सभी गेम प्रोग्रामर को कम से कम हाई स्कूल बीजगणित जानना चाहिए। इसका मत:

  • संख्या का एक अच्छा अर्थ है
  • बुनियादी गणित के साथ आराम (जोड़ें, उप, बहु, विभाजित)
  • त्रिकोणमिति (पाप और ब्रह्माण्ड)
  • वैक्टर, वैक्टर के बीच का कोण, डॉट उत्पाद, क्रॉस उत्पाद

आपके ग्राफिक्स प्रोग्रामर को पता होना चाहिए:

आपके भौतिकी प्रोग्रामर को पता होना चाहिए:

  • उपरोक्त सभी और
  • विभेदक समीकरण
  • संख्यात्मक तरीके

3

साइन और कोजाइन के अलावा (जो 50-75% प्रोग्रामर मुझे मिले हैं उनका उपयोग कैसे करना है पता नहीं है), जादुई आर्क-टैन फ़ंक्शन सीखें और किसी भी वेक्टर के कोण को प्राप्त करने के लिए इसका उपयोग कैसे किया जा सकता है।


5
ज्यादातर मामलों में आप चाहते हैं atan2क्योंकि यह अपने आप में चतुर्थांश हैंडलिंग का ख्याल रखता है।
कोडइन्चोस 19

0

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


2
er मैंने उल्लेख किया है।
दस

आह, माफ करना, मैं इसे याद किया।
राऊल

3
1% गेम प्रोग्रामर के लिए जो रेंडरिंग इंजन में निम्न स्तर के एनीमेशन कोड लिखते हैं, क्वाटरनियन एक उपयोगी उपकरण हैं। अन्य 99% गेम प्रोग्रामर के लिए, उनकी वास्तव में आवश्यकता नहीं है।
स्किज

-1

गेम बनाने से आभासी वास्तविकता में "वास्तविक" जीवन लाने के बारे में है। वास्तविक दुनिया / ब्रह्मांड के बारे में कम से अधिक जानना बेहतर है :) .. गणित केवल उपकरण है। और यदि आप एक योजना बना रहे हैं, तो आपको योजनाओं के अध्ययन के लिए भी समय देना होगा।

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


1
टेट्रिस में कितना वास्तविक जीवन है?
14

बहुत सारा :)। टेट्रिस प्रिज़र्व के तहत तार्किक सोच के बारे में है। अन्य तार्किक खेलों की तरह। यह अभ्यास करने के बारे में है। अधिक अभ्यास, अधिक प्री-यू आप संभाल सकते हैं और अभी भी इससे मज़े कर सकते हैं। यह मेरे लिए वास्तविक जीवन की तरह लगता है
:)

3
जब आप निष्पक्ष रूप से प्रश्न को संबोधित करने में विफल हो जाते हैं तो आपको समझ में नहीं आता है।
हीथ हुननिकट ०

@ हनीत दत्त, आप सही कह रहे हैं।
सांभर

3
मैं वास्तव में उस प्रतिक्रिया का सम्मान करता हूं।
हीथ हुननिकट

-2

सरल उत्तर: बहुत!

विस्तृत जवाब:

अंकगणित, प्राथमिक और रैखिक बीजगणित, ज्यादातर मामलों में ट्रिग, यदि आप 3 डी गेम बना रहे हैं, तो डेफिनिटी कैलकुलस, और भौतिकी (भौतिकी के लिए कैलकुलस की आवश्यकता है)!


3
क्या आप सूची को थोड़ा स्पष्ट कर सकते हैं? क्या आप कह रहे हैं "Trig यदि आप एक 3D गेम बना रहे हैं" या "यदि आप 3D गेम बना रहे हैं, तो DEFINITELY पथरी"?
yoozer8
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.