प्रौद्योगिकी साझेदारी

[The Road to Game Engine] Ascending to the Gods (7) - x86 Assembly Learning: यदि भवन्तः कठिनकार्यं कुर्वन्ति तर्हि भवन्तः किमपि प्राप्नुवन्ति।

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

मे २० - जून ४ : 2D भौतिकशास्त्रस्य इञ्जिनं पराजयतु।
जून ४ - जून १३ : "3D गणितस्य मूलभूताः" पराभवन्तु ।
जून १३ - जून २० : "3D ग्राफिक्स ट्यूटोरियल" पराभव।
जून २१ - जून २२ : "रेकास्टिंग् गेम ट्यूटोरियल" पराभवः ।
जून २३ - जुलै १ : "विण्डोज गेम प्रोग्रामिंग मास्टर कौशल" पराभव।
जुलाई २ - जुलाई ६ : "अटारी २६०० संकलन गेम विकास" पराभव।
जुलाई ७ - जुलै ११ : "x86/x64 विधानसभाभाषा" पराभवतु।

अग्रिम लक्ष्यम् : "3D Game Programming Master Skills" इति ।

अस्मिन् समये "विदेशीय" ग्रहे अन्यत् युद्धम् अस्ति। अहं कालः ६० किलोमीटर् यावत् सायकलयानं कृतवान् एतत् साधारणं ६० किलोमीटर् यावत् आसीत् । मम मानसिकदशा अद्य बहु उत्तमः नास्ति अहं वक्तुं शक्नोमि यत् अहं केवलं दन्ताः संकुचित्य पाठ्यक्रमं समाप्तवान्।

तथापि मया ज्ञातं यत् मम अपि एषा भावना रोचते। अटारी २६०० संकलनम् इव अपरिचितं न।

शिक्षणसभा वस्तुतः तत्प्रकारस्य शीर्षक्रीडा इव अस्ति, यत्र भवन्तः वास्तवतः किमपि त्रुटिं कर्तुं न शक्नुवन्ति। एकस्मिन् सत्रे अहं यत् स्मर्तुं न शक्नोमि तस्मात् अधिकानि टिप्पण्यानि गृहीतवान्। यद्यपि कतिपयानि वाक्यानि एव सन्ति तथापि मया सघनरूपेण टिप्पण्यानि लिखितानि। महाविद्यालये स्थित्वा एतावत् परिश्रमं कर्तुं शक्नोमि स्म चेत् साधु स्यात्।

अहम् अस्मिन् समये द्वौ ट्युटोरियल् ज्ञातवान्, एकः X86-32 बिट् अस्ति । एकं x86-64 बिट् अस्ति । उभयोः अपि स्वकीयाः बलाबलाः सन्ति । यथा, प्रथमे पाठ्यक्रमे अन्त्यपर्यन्तं फंक्शन्स् कथं आह्वयितुं शक्यते इति न शिक्षितम् । ६४-बिट् इत्यस्य मूलभूतं सम्यक् व्याख्यातं, परन्तु उन्नत-अनुप्रयोगाः सर्वथा न आच्छादिताः ।

अस्य पाठ्यक्रमस्य अध्ययनानन्तरं मम सर्वाधिकं साक्षात्कारः अस्ति यत् विधानसभा तुल्यकालिकरूपेण "निम्नस्तरीयः" वस्तु अस्ति तथा च अद्यतनभाषासु "उच्चस्तरीयः" इति लेबलं कृतम् अस्ति भाषाः" इति ।

एतेन मम मनसि एतादृशी धारणा भवति यत् यदि मया प्रयुक्ता प्रोग्रामिंग् भाषा बन्दुकाः तोपाः च सन्ति तर्हि असेंबली भाषा शीतलशस्त्रम् अस्ति । भवान् यथापि चिन्तयति चेदपि, तत् भवन्तं किञ्चित् "पश्चात्" आभासं ददाति । मम अपि एतादृशी एव धारणा आसीत् यदा अहं अटारी २६०० विधानसभां शिक्षमाणः आसम्।

तथापि x86 assembly इति ज्ञात्वा एषा धारणा पूर्णतया परिवर्तिता । विधानसभा केवलं "अग्रिमपीढी" इति शस्त्रम् अस्ति एतत् शीतलशस्त्रं न, अपितु "उच्चप्रौद्योगिकी", लेजरखड्गः ।

केवलं "प्रयोगः कठिनः" अस्ति, न तु "दुर्बलः" । प्रत्युत सः हास्यवत् बलवान् अस्ति ।

अहं जनान् असेम्बल्-शिक्षणस्य विषये कथयन्ति स्म, एकवारादधिकं मया दृष्टं यत् अद्यतन-संकलकाः अतीव उन्नताः सन्ति यदि भवान् असेम्बल्-शिक्षणं करोति चेदपि भवान् लिखितः कोडः पूर्ववत् कार्यक्षमः न भविष्यति । अहम् इदानीं जानामि यत् एतत् वस्तु शुद्धं गोदनम् अस्ति। MMX तः AVX पर्यन्तं, भवान् एतादृशं समानान्तरप्रक्रियाक्षमतां लिखितुं न शक्नोति यद्यपि भवान् कोड् लिखति, तथा च कोऽपि संकलकः एतत् कर्तुं न शक्नोति यत् भवता एतत् शक्तिशाली कार्यं उपयोक्तुं assembly इत्यस्य उपयोगः अवश्यं करणीयः ।

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

यदा अहं पूर्वं विधानसभां ज्ञातवान् तदा अहं वस्तुतः मम पुस्तके एव दृष्टवान् यत् केषुचित् स्थानेषु यत्र प्रदर्शनं महत्त्वपूर्णं तत्र अद्यापि सभायाः आवश्यकता वर्तते। एतादृशस्य सरलस्य लेखकस्य भावना अस्ति । मया वस्तुतः अपेक्षा नासीत् यत् विधानसभाभाषा एतावता शक्तिशालिनी भविष्यति।

एतेन वस्तुतः मम वर्तमानस्य “less is more” इति चिन्तनस्य लाभः भवति । यतः अहं पूर्वं क्रीडां निर्मातुं चिन्तयामि स्म, अहं सर्वदा क्रॉस्-प्लेटफॉर्म्, पीसी-निर्माणं, मोबाईल-फोन-निर्माणं च चिन्तयामि स्म इदानीं यदा अहं स्वस्य इञ्जिनं निर्मामि तदा आवश्यकताः एतावता उच्चाः न भवितुम् अर्हन्ति, अहं च चिन्तयितुम् न इच्छामि cross-platform विषये, अतः अहं PC platform उत्तमं कर्तुं ध्यानं ददामि। अत एव मया शिक्षणसभायाः विचारः आगतः। यदि अहं सर्वदा क्रॉस्-प्लेटफॉर्म विषये चिन्तयामि तर्हि मम एषः विचारः न स्यात्।

प्रोफेसर जिन यिनान् इत्यनेन दत्ते व्याख्याने एकं वाक्यं आसीत् यत् मम मनसि अतीव प्रभावं कृतवान् यत् -

यदि कठिनं कार्यं करोषि तर्हि किमपि लाभं प्राप्स्यसि।

एतत् प्रायः मम जीवनसन्धिषु अन्यतमं जातम् । अस्मिन् समये पुनः अस्य वाक्यस्य शक्तिः पुष्टा भवति।

शिक्षणसभायाः मया कल्पितात् अधिकं लाभः प्राप्तः। मम पूर्वसङ्केतानां किञ्चित् परिवर्तनं कर्तुं प्रतीक्षां कर्तुं न शक्नोमि । यथा, मम पूर्वं Alpha blending code आसीत्, यतः DirectX इत्यस्य DirectDraw Alpha channel इत्यस्य समर्थनं न करोति । अतः अहं अर्धपारदर्शकवस्तूनाम् समर्थनार्थं स्वस्य अल्फा मिश्रणं लिखितवान् । इदं वस्तु अत्यन्तं मन्दम् अस्ति मूलतः ८०० फ्रेम्स आसीत्, परन्तु क्षणमात्रेण २०० फ्रेमपर्यन्तं न्यूनीकर्तुं शक्यते स्म । परन्तु केवलं नायकस्य विमानं एव एतत् अल्गोरिदम् उपयुज्यते । यदि भवान् assembly इत्यस्य उपयोगं करोति तर्हि मम विश्वासः अस्ति यत् इदं बहु उच्चतरं भवितुम् अर्हति। अवश्यं, एतत् केवलं तस्य उन्नयनस्य प्रयासः एव वस्तुतः मुख्यं वस्तु हार्डवेयरस्य उपरि निर्भरं भवति । केवलं Blt इत्यनेन मम फ्रेम रेट् ४००० तः अधिकं प्राप्तुं शक्नोति । एतत् केनचित् परिवर्तनविधिना साध्यं न भवति ।

तथापि अद्यापि केचन क्षेत्राणि सन्ति येषु सुधारः कर्तुं शक्यते । यथा, मम SpritePack कार्यक्षमता । एतत् वस्तु हार्डवेयरद्वारा नियन्त्रयितुं न शक्यते, एतत् सर्वं मम अल्गोरिदम् इत्यनेन साक्षात्कृतम् अस्ति । दक्षतासुधारस्य एतत् संकलनं प्रचण्डं मूल्यं दातुं शक्नोति।

वस्तुतः अहं मूलतः पुनः Python + machine learning शिक्षितुम् इच्छामि स्म । अस्मिन् काले किं भवति इति न जानामि, सर्वं ज्ञातुम् इच्छामि । अहं मन्ये यत् मम क्रीडाविकासे एआइ अतीव महत्त्वपूर्णः प्रहेलिकाखण्डः भविष्यति। अहम् अधुना चित्राणि, मौलिकचित्रं च निर्मातुं AI इत्यस्य उपयोगं करोमि, तस्य उपयोगः च अतीव सुलभः अस्ति । अहं ज्ञानस्य अस्य पक्षस्य विषये अधिकं ज्ञातुम् इच्छामि।

परन्तु अहम् अस्मिन् काले न पठितवान्, केवलं पाठ्यक्रमाः अधीतवन्तः, अतः अहं सर्वदा उपविश्य सहितुं न शक्तवान् । यदि अहं पुस्तकेन ​​सह शिक्षमाणः आसम् तर्हि पठन् शयनं कर्तुं शक्नोमि, अतः अहं "3D Game Programming Master Skills" इति शिक्षितुं चितवान् । एतेन मम कटिभागे दबावः निवृत्तः भवति ।

एतस्य कालस्य अनन्तरं पश्यन्तु यत् भवान् पायथन् शिक्षितुं शक्नोति वा ।

सम्- विश्!