HeadlinesBriefing favicon HeadlinesBriefing.com

২০০৪-এ ৫৬k ডায়াল-আপে RuneScape

Hacker News •
×

২০০৪-এ, আমি ৫৬k মডেমে RuneScape খেলেছি যা যখন আমার মা ফোন টেনে দিল তখন ধরা পড়ত। একটি ৩ডি বিশ্ব যা প্রায় দুই হাজার থেকে দুই হাজার খেলোয়াড় দিয়ে পরিপূর্ণভাবে ব্রাউজারে চলত। এটি কাজ করেছিল কারণ এটি একটি বাইটগুলি বর্জন করার একটি স্থায়ী অভ্যাস। যখন উত্তরের কোনো টাইলে ক্লিক করা হয়, তখন প্রত্যেক বাইট ক্লিক থেকে সার্ভার পর্যন্ত যায় আর তারপর অন্য এক খেলোয়াড়ের স্ক্রিন পর্যন্ত। মাঝের স্রোত, ভ্যারকোক স্কোয়ার। বিস্তারিত ২০০৪ রনেস্কেইপ ২ ক্লায়েন্টের একটি ডিকম্পাইল করা থেকে পাওয়া যায়। সীমাবদ্ধতাগুলি কড়া ছিল: ৫৬k মডেম সিঙ্ক করে ৫৬ কিলোবিট প্রতি সেকেন্ড ডাউনস্ট্রিমে, প্রায় ৫ কিলোবাইট/সেকেন্ড, যার মধ্যে আপস্ট্রিম কম। ২০০০-এ ব্রডব্যান্ড উপলব্ধ ছিল, কিন্তু বেশিরভাগ ইংল্যান্ডের ঘর গুলো ডায়াল-আপকে ২০০০এর শেষ পর্যন্ত রাখেছিল। জাভা অ্যাপলেটগুলি একটি নিরাপত্তা স্যান্ডবক্সে চলে, প্রকৃত নেটিভ সকেট এবং UDP ব্লক করে। প্রত্যেক বাইট একক TCP কানেকশনে যায়, ক্রমে, প্রতি সেগমেন্টের ওভারহেড সহ। গেম সার্ভার প্রায় ৬০০ মিলিসেকেন্ডের একটি ডিসক্রিট সাইক্লে এগিয়ে যায়। লগিন হ্যান্ডশেকের পরে, একটি ছোট এনক্রিপশন লেয়ার সেট হয়। প্রত্যেক প্যাকেট একটি অপারেশন কোড বাইটের সাথে শুরু হয়, ISAAC নামক একটি স্ট্রিম সাইনার দ্বারা এনক্রিপ্ট করা হয়। দুটি স্ট্রিম আছে - একটি ক্লায়েন্ট থেকে সার্ভার পর্যন্ত, একটি উল্টো। উভয় পক্ষ উভয় স্ট্রিমের প্রয়োজন রাখে। ক্লায়েন্ট দুটি সিড ইন্টিজার জেনারেট করে; সার্ভার হ্যান্ডশেকের অংশে অন্য দুটি সরবরাহ করে। সার্ভার থেকে ক্লায়েন্ট স্ট্রিম প্রতিটি শব্দে ৫০ যোগ করে যাতে দিকগুলি আলাদা থাকে। বহির্গতভাবে, এক লাইন অপারেশন কোডকে এনক্রিপ্ট করে: putOpcode(int opcode) { this.putByte(opcode + this.outboundCipher.value()); } ভিতরে, মিরর ইমেজ তা রিট্রিভ করে: currentOpcode = (currentOpcode - this.inboundCipher.value()) & 0xFF; কেবল অপারেশন কোডই এনক্রিপ্ট করা হয়, তৃতীয়-পক্ষের পার্সারদের বিরুদ্ধে রক্ষা করে। একটি হ্যাচ রিকোয়েস্ট পাঠালে বর্ণময় কোষ অনুসন্ধান কোনো নেটওয়ার্কিং হবে না পর্যন্ত ট্রিগার হয়।