2 पॉइंट द्वारा GN⁺ 2024-01-08 | 1 टिप्पणियां | WhatsApp पर शेयर करें

क्या AoE assembly में लिखा गया था? - क्या यह सच है?!

  • AoE और AoK में assembly code लेखन: लगभग 13,000 पंक्तियों का x86 32-bit assembly code लिखा गया था। इनमें से अधिकांश, लगभग 11,500 पंक्तियाँ, 'drawing core' के लिए थीं, जो SLP sprites को कई तरीकों से render करती थीं।
  • assembly code का compilation: Microsoft Macro Assembler 6.1 का उपयोग करके .asm फ़ाइलों को .obj फ़ाइलों में "compile" किया गया।
  • C++ code के भीतर inline assembly: compiler 'inline assembly' को support करता था, जिससे functions के भीतर __asm { } keyword के साथ assembly code blocks जोड़े जा सकते थे।
  • drawing core का performance improvement: assembly का उपयोग करने वाला drawing core, C++ reference implementation की तुलना में sprite drawing speed में लगभग 10 गुना तेज था।
  • assembly code का technical design: cache architecture और UV pipe को ध्यान में रखकर design किया गया था, ताकि Pentium processor की विशेषताओं का लाभ उठाया जा सके।
  • AoK:HD Edition में assembly code: AoK:HD Edition (32-bit game) में भी assembly code का उपयोग किया गया।
  • Definitive Editions में C++ में पुनर्लेखन: 64-bit program होने के कारण Definitive Editions में assembly functions को C++ में फिर से लिखा गया।

AoE community और resources

  • live stream: Twitch और Facebook पर विभिन्न भाषाओं में चलने वाले AoE से जुड़े live streams की सूची।
  • online play: Steam और Microsoft Store पर AoE2 Definitive Edition सहित गेम के कई versions खेले जा सकते हैं।
  • current patch: 26 जुलाई 2023 को अपडेट की गई patch जानकारी उपलब्ध है।
  • tournaments और events: AoEZone, AoE2 Liquipedia, और event calendar के माध्यम से tournament जानकारी उपलब्ध है।
  • community sites: आधिकारिक Age of Empires page, forums, Discord, AoK Heaven सहित कई community site links।
  • unit और building stats: units और counters की जानकारी, bug fixes, game tips, और patch जानकारी देने वाले wiki और reference links।
  • YouTube channels: आधिकारिक channel और प्रसिद्ध AoE2 YouTubers की सूची।

GN⁺ की राय

  • assembly code का महत्व: AoE series के शुरुआती versions में assembly code का game performance पर बड़ा असर था। खासकर graphics processing में, इसने ऐसे optimizations संभव किए जिन्हें आधुनिक high-level languages में हासिल करना कठिन था।
  • तकनीकी प्रगति का प्रभाव: समय के साथ 64-bit compilers के विकास और multi-core processing के आने से assembly code की आवश्यकता कम हुई। यह दिखाता है कि programming languages और hardware का विकास software development को कैसे प्रभावित करता है।
  • community की भूमिका: AoE community ने game की लगातार लोकप्रियता और विकास में महत्वपूर्ण भूमिका निभाई है। विभिन्न resources और discussions के जरिए यह fans को अपनी रुचि साझा करने और ज्ञान बांटने का platform देती है।

1 टिप्पणियां

 
GN⁺ 2024-01-08
Hacker News राय
  • एक Hacker News उपयोगकर्ता ने 1999-2000 में PSX से PC पर Konami गेम्स पोर्ट करने का अपना अनुभव साझा किया। C भाषा में लिखे गए कोड में inline assembly वाले कई #ifdef शामिल थे, और मूल C कोड को बनाए रखा गया था। उनका कहना था कि यह मूल C कोड पोर्टिंग काम में बहुत मददगार रहा। उन्होंने Intel के Katmai प्रोसेसर के लिए software development के दौरान SIMD निर्देशों के उपयोग और assembly optimization के अनुभव का भी ज़िक्र किया। इस प्रक्रिया में Intel का VTune बहुत मददगार रहा। हालांकि, उन्हें यह भी याद है कि कुछ मामलों में assembly में लिखा कोड compiler द्वारा generated code से भी धीमा था.

  • एक अन्य उपयोगकर्ता ने बर्लिन में चल रहे 'Age of Empires 2' (AoE2) के बड़े टूर्नामेंट NAC5 का ज़िक्र किया और संबंधित लिंक साझा किया.

  • एक developer interview का हवाला देते हुए, यह राय रखी गई कि अगर गेम रिलीज़ करने से पहले ही पता है कि patch की ज़रूरत पड़ेगी, तो गेम रिलीज़ नहीं करना चाहिए.

  • यह भी बताया गया कि 'Age of Empires' की speed-up तकनीकों में से एक पर iD Software के programmer और optimization expert Michael Abrash के साथ lunch के दौरान चर्चा हुई थी, और इस बहाने इंटरनेट की वजह से खो गई सहज मानवीय बातचीत पर अफसोस जताया गया.

  • assembly का उपयोग करने वाले graphics core ने C++ की तुलना में sprite drawing speed में लगभग 10 गुना सुधार हासिल किया था, यह चौंकाने वाली बात भी साझा की गई.

  • यह राय भी सामने आई कि Michael Abrash जहाँ कहीं भी graphics innovation हुई है, वहाँ किसी न किसी रूप में मौजूद दिखाई देते हैं.

  • एक उपयोगकर्ता ने कहा कि यह शायद समझने का मौका हो सकता है कि 'Age of Empires 2: Definitive Edition' Wine पर खराब performance क्यों देता है.

  • कहा गया कि 'Age of Empires 2: Definitive Edition' में गेम कोड खुद नहीं, लेकिन executable अब भी ऐसा handwritten assembly शामिल करता है जो runtime पर गेम कोड को decompress करता है। इसकी वजह से पूरा कोड read, write, execute सक्षम स्थिति (RWX) में रह जाता है, जिससे यह सुरक्षा के लिहाज़ से बहुत कमजोर हो जाता है.

  • Borland के इतिहास के बारे में पढ़ रहे एक उपयोगकर्ता ने कहा कि Turbo Pascal compiler का अधिकांश हिस्सा assembly में लिखा गया था और वही Delphi 1.0 में भी इस्तेमाल हुआ। Borland के भीतर कोई भी उस कोड में बड़े बदलाव नहीं कर सकता था, इसलिए आखिरकार Delphi 2.0 के लिए उसे फिर से लिखा गया। उन्होंने कहा कि assembly भाषा में जटिल CPU के लिए software लिखने वाले programmers में एक अलग तरह की विशेषता होती है.