HeadlinesBriefing favicon HeadlinesBriefing.com

2004 में 56k डायल-अप पर RuneScape

Hacker News •
×

2004 में, मैंने 56k मॉडम पर RuneScape खेला जो जब मेरी माँ फ़ोन उठाती थी तो गिर जाता था। एक 3D दुनिया जिसमें अंदाज़ में दो हजार से दो हजार खिलाड़ियाँ होते हैं, पूरी तरह एक ब्राउज़र में चलती है। यह काम करने का कारण यह था कि इसमें बाइट्स बर्बाद करने के एक स्थायी अभ्यास था। जब उत्तर की एक टाइल पर क्लिक किया जाता है, तो हर बाइट क्लिक से सर्वर तक और फिर दूसरे खिलाड़ियों के स्क्रीन तक जाता है। मध्य स्रोत, Varrock Square। विवरण 2004 के RuneScape 2 क्लाइंट के एक डिकम्पाइल्ड से प्राप्त हुए हैं। प्रतिबंध सख्त थे: 56k मॉडम सिंक 56 किलोबिट्स प्रति सेकंड डाउनस्ट्रीम में, लगभग 5 KB/सेकंड, जिसमें अप स्ट्रीम कम होता है। 2000 में ब्राउडबैंड उपलब्ध था, लेकिन अधिकांश ब्रिटिश घरों ने डायल-अप को 2000 के अंत तक जारी रखा। Java अप्लेट्स एक सुरक्षा सैंडबॉक्स में चलते हैं, जो र४द नेटिव सॉकेट और UDP को ब्लॉक करते हैं। हर बाइट एकमात्र TCP कनेक्शन पर यात्रा करता है, क्रम में, प्रति-सेगमेंट ओवरहेड के साथ। गेम सर्वर लगभग 600 मिलीसेकंड के एक डिस्क्रीट साइकल में आगे बढ़ता है। लॉगिन हैंडशेक के बाद, एक छोटा एन्क्रिप्शन लेयर सेट कर लिया जाता है। हर पैकेट एक ओपरेशन कोड बाइट के साथ शुरू होता है, जो ISAAC नामक एक स्ट्रीम साइनर के द्वारा एन्क्रिप्ट किया गया है। दो स्ट्रीम होते हैं - एक क्लाइंट से सर्वर तक, एक उलटा। दोनों पक्ष दोनों स्ट्रीम की आवश्यकता रखते हैं। क्लाइंट दो सीड इंटीज़र जेनरेट करता है; सर्वर हैंडशेक के दौरान अन्य दो को प्रदान करता है। सर्वर से क्लाइंट स्ट्रीम प्रत्येक शब्द में 50 जोड़ता है ताकि दिशाएँ अलग रहें। बाहर जाते समय, एक पंक्ति ओपरेशन कोड को एन्क्रिप्ट करती है: putOpcode(int opcode) { this.putByte(opcode + this.outboundCipher.value()); } बाहर जाते समय, मिरर इमेज इसे रिट्रीव करती है: currentOpcode = (currentOpcode - this.inboundCipher.value()) & 0xFF; केवल ओपरेशन कोड एन्क्रिप्ट किया गया है, तीसरे पक्ष के पार्सर के खिलाफ सुरक्षा प्रदान करता है। एक वॉक रिक्वेस्ट भेजने पर किसी भी नेटवर्किंग के बाद तक एक ब्रेडथ-फ़र्स्ट सर्च ट्रिगर होता है।