আপনার পরিচালনা করতে দুটি খুব আলাদা জিনিস রয়েছে:
সার্ভারকে অবশ্যই সমগ্র বিশ্ব পরিচালনা করতে হবে , একটি রচনামূলক পদ্ধতিতে। তার জন্য, এন ক্লায়েন্টের সাথে যোগাযোগের (যেখানে এন "বিশাল") প্রয়োজনীয় necessary
ক্লায়েন্ট পারে নীতির মধ্যে, সমগ্র বিশ্ব সম্পর্কে জানা, কিন্তু এটা না প্রয়োজন । ক্লায়েন্টের জন্য, খেলোয়াড়ের কাছাকাছি কী রয়েছে তা সম্পর্কে যথেষ্ট জানা। উদাহরণস্বরূপ ধরে নেওয়া একটি বরং মোটা গ্রিডের মতো পার্টিশন হিসাবে এটির জন্য কেবল প্লেয়ারের সেল এবং প্লেয়ারের চারপাশে থাকা 26 টি সেল (বা আপনার কাছে 2 ডি গ্রিড থাকলে 8 টি সেল) জানতে হবে। কিছুটা সূক্ষ্ম গ্রিড ভাল, তবে আপনি ধারণা পাবেন।
এখন, অনেক পিকআপস, "প্রচুর" কী? আপনি প্রতি সেকেন্ডে 5 টি জিনিস খনন করতে পারেন, এটি সম্ভবত দুই ডজন সংখ্যা যা সার্ভারে আপডেট করা দরকার এবং সার্ভারটি সেগুলি অন্য কোনও খেলোয়াড়ের কাছে প্রেরণ করতে পারে যার আগ্রহের ক্ষেত্রটি আপনার ঘরের উপরের অংশকে আবৃত করে। একটি কম্পিউটারের জন্য, এটি বেশ হাস্যকর পরিমাণের ডেটা এবং উপেক্ষাযোগ্য পরিমাণে গণনা। একই কক্ষে কয়েক হাজার / হাজার খেলোয়াড় উপস্থিত থাকলে এটি চ্যালেঞ্জ হয়ে উঠতে পারে (তারপরে আপনার বিভাজনটি খুব মোটা হয়)।
সার্ভারটি জানার দরকার নেই, বা পিকআপগুলির ঘূর্ণন বা এই জাতীয় বিশদ সম্পর্কে যত্ন নেওয়া প্রয়োজন। কেন হবে?
ক্লায়েন্ট আসলে কোনওভাবেই পাত্তা দেয় না, যেহেতু এটি কেবল চোখের মিছরি যা ক্লায়েন্টটি উড়ে যাওয়ার জন্য তৈরি করতে পারে।
সার্ভারের দৃষ্টিকোণ থেকে যা জরুরী তা জেনে রাখা যে আপনি যে নোডে এসেছেন (30, 40, 50) এ আপনি খনন করছিলেন এবং এটি স্থির করে যে এই স্পাঙ্কগুলি উদাহরণস্বরূপ 3 টাইপের 5 টি অবজেক্ট, বা প্রকার 7 এর একটি অবজেক্ট সহ 3 এর একটি গণনা যা এগুলিই যত্ন করে এবং এটিই আপনাকে জানায়। এটি গ্রিড কোষের পরে নিজের আগ্রহের ক্ষেত্রটি অন্য কাউকে স্থানান্তরিত করার জন্য প্রেরিত ডেটাতেও অন্তর্ভুক্ত থাকবে (ধরে নেওয়া উচিত যে এটি এখনও ততক্ষণে সেখানে রয়েছে)।
ক্লায়েন্টকে সেখানে তিনটি বস্তু তৈরি হওয়ার কথা বলা হয়েছে, এখন, ক্লায়েন্ট যেখানে এখন একটি 'ডি' রয়েছে সেখানে কোনও ASCII- আর্ট মানচিত্র প্রদর্শন করে বা এটি ময়লার আবর্তনশীল গাদা দেখায় কিনা, সমস্ত কিছুই একই রকম। পাইলগুলির বিভিন্ন ঘূর্ণন রয়েছে বা আপনার প্লেয়ারের ঘুরানো ঘনিষ্ঠরা কেবল একই রকম কিনা তাও। এটি কেবল আপনার মনিটরে প্রদর্শিত স্টাফ, এটি অন্য কাউকে প্রভাবিত করে না।
সুতরাং, আপনি যে কংক্রিটের ক্ষেত্রে কেবল নিকটস্থ ময়লা আবদ্ধ করতে চান, আপনি কেবলমাত্র সমস্ত অবজেক্টের সম্পর্কে যা কিছু জানেন তার উপর পরিসীমা পরীক্ষা করতে পারেন। যেহেতু ডেটা সেটটি বড় নয়, এমনকি সমস্ত কিছুতে নিষ্ঠুরতা কাজ করবে।
আপনার পার্টিশনের আকারের উপর নির্ভর করে আপনি (এবং হওয়া উচিত) তুচ্ছভাবে গ্রিড কোষগুলি খুব দূরে ছাঁটাই করতে পারেন।
আপনি অবশ্যই নিজের সেলটিকে আরও শক্তিশালী করে সাব-বিভাজন করতে পারেন এবং কিছু সুপার স্মার্ট ব্যবহার করতে পারেন। আপনি যদি চান তবে কেডি-ট্রি ব্যবহার করুন, তবে বিশাল লাভের আশা করবেন না। আপনি ম্যানহাটনের সাথে দূরে জিনিস ছাঁটাই করতে পারেন, বা আপনার নিজের ছোট গ্রিডে আপনার জিনিসগুলি সাজিয়ে রাখতে পারেন ... তবে কেন?
একটি দূরত্ব পরীক্ষা (সত্যই বর্গক্ষেত্রের দূরত্ব, তবে এটি আপনার কাছে সমান) কেবল একটি মাত্র দুটি গুণ এবং একটি সংযোজন (এমএলএইচ, এমএডিডি, তাই সত্যিকার অর্থে মাত্র দুটি অপারেশন অনুকূলিত), এর পরে একটি শাখা বা শর্তাধীন পদক্ষেপ নেওয়া হবে। এটি অন্য যে কোনও ক্রিয়াকলাপের চেয়ে তত দ্রুত যা পুরো গ্রিড কোষগুলিকে একবারে ছাঁটাই করে না। বস্তুত, এই কিছু যে তুমি পারে এমনকি GPU এর মাধ্যমে কি ...
আপনার একই অবস্থানের তুলনায় কয়েকশ, বা সর্বাধিক কয়েক হাজার দূরত্বের চেক কীভাবে হবে তা দেখে (স্কোয়ারড দূরত্বটি ভাল কাজ করে), কেবল এই গণনাটি করতে আসলেই আপনার খুব বেশি সমস্যা হয় না, কারণ এটি আরও বরং ক্যাশে- সংক্ষিপ্ত স্মৃতিতে বন্ধুত্বপূর্ণ পুনরাবৃত্তি, এবং শর্তাধীন পদক্ষেপের সাথে এটি ময়লা সস্তা। এর মতো কিছু (সিউডোকোড) rot = r[i] + 1; r[i] = ((dx*dx+dy*dy) < DIST_SQ) ? rot : r[i];
। এটি ফ্রেম প্রতি কয়েক শতাধিক মানের অ্যারের উপরে এক পুনরাবৃত্তি। কম্পিউটার এটি করার বিষয়ে কম যত্ন নিতে পারে না, এটি নিয়মিত লোড এবং স্টোর, সরল ALU, কোনও শাখা নেই এবং কেবল কয়েক হাজার পুনরাবৃত্তি।
এটি (একাধিক থেকে এক) সমস্যাটি একই শ্রেণীর নয় (বহু-বহু-বহু) সার্ভারে রয়েছে। সত্যিই, ক্লায়েন্ট সমস্যা নয়।
minecraft:dirt
) এবং একটি গণনা (30), যাতে প্লেয়ার যখন এটি বাছাইয়ের জন্য পর্যাপ্ত হয় তখন প্লেয়ারের ইনভেন্টরিতে এটি যতটা সম্ভব গণনা যোগ করে। যদি খেলোয়াড়ের কাছে কেবল 6 আইটেমের জন্য জায়গা থাকে এবং 30 টি স্ট্যাক মাটিতে থাকে তবে প্লেয়ার 6 টি বেছে নেবে এবং গ্রাউন্ডের গণনার