পদার্থবিজ্ঞানের সাথে মাল্টিপ্লেয়ার নেটওয়ার্কিং


12

আমি কৌতূহল করছি কীভাবে রেসিং গেমগুলিতে পদার্থবিদ্যার সাথে মাল্টিপ্লেয়ার নেটওয়ার্কিং প্রয়োগ করা হয়। আমাদের একাধিক দ্রুত চলমান যানবাহন বিভিন্ন লোক দ্বারা নিয়ন্ত্রিত একটি শারীরিক বিশ্ব রয়েছে। ধরা যাক যে যানবাহনের কাছে অস্ত্র রয়েছে এবং একে অপরকে গুলি করতে পারে (ট্যুইস্টেড মেটাল, ভিজিল্যান্ট ভি 8)

হিট এবং সংঘর্ষ নিয়ে আমি উদ্বিগ্ন। কর্তৃপক্ষের সার্ভার বা আরও ভাল বিকল্প?

উত্তর:


5

সাধারণত, একটি সার্ভার নিয়োগ করা হয়, "সত্য" রাষ্ট্র সঞ্চয় করে যা পর্যায়ক্রমে ক্লায়েন্টদের সাথে ভাগ করা হয়। দুর্ঘটনায় ক্লায়েন্ট এবং সার্ভার স্বাধীনভাবে ঘটে ক্লায়েন্টদের পূর্ববর্তী রাজ্যের একটি প্রক্রিয়া কি এটি সাধারণত বলা হচ্ছে অনুরূপ ব্যবহার করা থেকে আনুমানিক রাজ্যের সঙ্গে ডেড রেকনিং । যখন কোনও সার্ভারের অবস্থা কোনও ক্লায়েন্টে পৌঁছায়, যদি সেখানে মতপার্থক্য থাকে, ক্লায়েন্টটি তার বর্তমান অবস্থা থেকে সর্বাধিক ইন্টারপোলেশনের মাধ্যমে প্রাপ্ত অবস্থানে স্থানান্তর সম্পাদন করে।

তবে অনেকগুলি বস্তুর সংঘর্ষ একটি বাস্তব সমস্যা হতে পারে, তাই সাধারণভাবে যা করা হয় তা হ'ল ক্লায়েন্টের সিমুলেটেড সময়টিকে সার্ভারের সিমুলেটেড সময়ের চেয়ে কিছুটা পিছনে রাখা নানারকম অতিরিক্ত ডিগ্রিটিকে নমনীয়তা দেয়। ভালভের সোর্স ইঞ্জিন নেটকোড সম্পর্কে এই নিবন্ধটি বেশ স্পষ্ট করে। এছাড়াও, মিডলওয়্যার / লাইব্রেরিটি কী কী ব্যবহার করবেন সে সম্পর্কে আপনি যদি এখনও নির্বিচারে থাকেন তবে আমি আপনাকে রাকনেট এবং এর "প্রতিলিপি ম্যানেজার 3" উপাদানটি অনুসন্ধান করার পরামর্শ দিচ্ছি ।


2

আপনি কি করতে পারেন কয়েকটি জিনিস আছে।

  1. আপনি সার্ভারে সমস্ত পদার্থবিজ্ঞানের অবজেক্টকে কেন্দ্রিয় করতে পারেন এবং সমস্ত ক্লায়েন্টের প্লেয়ার্স অবজেক্টের সাথে সমন্বয় করতে পারেন। এটি সবচেয়ে সহজ এবং অনেক ত্রুটিগুলি ছাড়াই কাজ করে তবে এটি প্রচুর সংস্থান ব্যবহার করে এবং প্রচুর ব্যান্ডউইথ প্রয়োজন। নির্দিষ্ট ব্যাসার্ধের মধ্যে থাকা অন্যান্য খেলোয়াড়ের প্লেয়ারকে কেবল মান পাঠিয়ে আপনি ব্যান্ডউইথের ব্যবহারটি অনুকূল করতে পারেন।

  2. নিিনস্টার উল্লিখিত হিসাবে আপনি এটি করতে পারেন এবং সার্ভার এবং ক্লায়েন্টদের পদার্থবিজ্ঞানের সিমুলেট করা থাকতে পারে, প্রতিবার প্রায়শই সার্ভার ক্লায়েন্টদের সংশোধন করে। এর অর্থ এই যে সমস্ত ক্লায়েন্ট সেখানে প্রতিটি খেলোয়াড়ের জন্য নিজস্ব পদার্থবিজ্ঞানের গণনা করে এবং আপনি প্রতিটি ক্লায়েন্টের প্রতিটি খেলোয়াড়ের ট্র্যাজেক্টরি দেওয়ার জন্য সার্ভারের সাথে কীপ্রেস ইভেন্টগুলি সিঙ্ক করবেন। প্রতিটি, আসুন, 5 সেকেন্ডে বলে দিন যে সার্ভারটি তার পদার্থবিজ্ঞানের সিমুলেশন সম্প্রচার করে এবং সমস্ত ক্লায়েন্টরা পরিবর্তনটি গ্রহণ করে। এটি সামান্য অফসেটগুলি তৈরি করতে পারে যা বেশিরভাগ সময় অলক্ষিত হয় না, তবে নেটওয়ার্ক ল্যাগ এবং প্যাকেট ক্ষতির সময় (উচ্চ ট্র্যাফিক ইউডিপি দিয়ে অনিবার্য) আপনি আপনার প্লেয়ার এবং / বা অন্যান্য খেলোয়াড়দের পর্দার চারপাশে গ্লাইচিং এবং দ্রুত এবং চপ্পল পজিশন পরিবর্তন করতে লক্ষ্য করবেন (এটি একটি শব্দ?)।

  3. আপনি প্রতিটি ক্লায়েন্টের নিজস্ব পদার্থবিজ্ঞান গণনা করতে এবং এর স্থানাঙ্কগুলি সিঙ্ক করতে পারেন। এটি ক্লায়েন্টদের মধ্যে ভাগ করা বস্তুগুলিতে পদার্থবিজ্ঞানের সিমুলেট করা কঠিন করে তোলে। আপনি যদি কোনও স্নাজি কিছু করতে চান তবে এটি বাস্তবায়ন করার জন্য এটি একটি জটিল জটিল ধারণা, কারণ কিছু নির্দিষ্ট অবজেক্ট অগত্যা কোনও ক্লায়েন্টের অন্তর্গত নয়।

প্রথমটি সম্ভবত সবচেয়ে সহজ এবং আপনার প্রায় ৪-৫ জন খেলোয়াড়কে সামান্য পিছিয়ে পড়ার অনুমতি দেওয়া উচিত। এটি প্রতিটি ম্যাচের নিজস্ব সার্ভারের প্রয়োজন। যদি আপনি ল্যান ম্যাচগুলি করেন তবে এটি যাওয়ার পথে হাতছাড়া হয়ে যাবে।

দ্বিতীয়টি সম্ভবত সবচেয়ে ব্যবহারিক, তবে এটি কার্যকর করা কঠিন হতে পারে। এটি সার্ভারে পদার্থবিজ্ঞানের সিমুলেশনগুলি চালানোর জন্য বেশ উত্সাহী। আপনার যদি সেন্ট্রালাইজড সার্ভার থাকে তবে আপনার সম্ভবত বেশ কয়েকটি মেশিনে ভারসাম্য লোড করতে হবে, সম্ভবত একটি সার্ভারের সাথে 10 টি ম্যাচ মঞ্জুর করুন, সর্বনিম্ন ম্যাচগুলির সাথে সার্ভারে নতুন মিলগুলি লোড করুন।

তৃতীয়টি অবশ্যই সার্ভারে স্বল্পতম চাপযুক্ত এবং যদি আপনি পিয়ার টু পিয়ার নেটওয়ার্ক স্কিম করছেন তবে সম্ভবত এটি সেরা সমাধান। যেমনটি আমি উল্লেখ করেছি যে আপনার প্লেয়ার অবজেক্ট ব্যতীত অন্য অবজেক্টগুলিকে সিঙ্ক করা শক্ত হতে পারে কারণ এই বিষয়গুলি অন্য ক্লায়েন্টদের দ্বারাও পরিবর্তনযোগ্য।

কোনটি ব্যবহার করবেন তা আমি আপনাকে বলতে পারি না কারণ আপনার গেমটি কীভাবে কাজ করে তা আমি জানি না। আমি যা করতে পারি তা হ'ল আপনাকে তথ্য দেওয়া। আপনার যদি আরও কিছু প্রশ্ন থাকে তবে নির্দ্বিধায় মন্তব্য করুন।


আপনি পরামর্শ দিচ্ছেন যে ক্লায়েন্টকে তার পদার্থবিজ্ঞান করতে দেওয়া একটি গ্রহণযোগ্য সমাধান, তবে আপনি প্রতারণার সাথে সম্পর্কিত নন।
কিউবস্প্ল 42

@ কিউবস্প্ল২৪২২ এই বিষয়ের উপরে থাকার প্রচেষ্টার জন্য আমি বিশদটি বাদ দিয়েছি। প্রত্যাখ্যান প্রশমিত করার সম্ভাব্য উপায়গুলি অন্বেষণের জন্য ওপি সমাধানটিকে আরও অন্বেষণ করতে পারে বলে আমি ফিট fit
tsturzl

এই জাতীয় একটি উপায় প্রতিটি ক্লায়েন্ট যা সরবরাহ করে তার বিচ্যুতির অনুমতি দেয় একটি সীমার মধ্যে সীমাবদ্ধ। উদাহরণস্বরূপ, বেশিরভাগ ক্লায়েন্টরা বলে যে একটি প্রদত্ত অবজেক্টটি 5,8 বা 6,9 পজিশনে রয়েছে তবে একটি স্থানাঙ্ক হিসাবে 12,19 এর প্রতিবেদন করে, এটি অন্য ক্লায়েন্টদের থেকে কতটা বিচ্যুত হয় তার তুলনায় একটি প্রান্তিকের বাইরে চলে যেতে পারে। এটি কেবল একটি আংশিক সমাধান, তবে বেশিরভাগ গেমগুলি প্রতারণার জন্য কেবল আংশিক সমাধান দেয়, তাই কেন এটি এখনও ঘটে। এই সমাধানটির অর্থ এই নয় যে তারা প্রতারণা করছে, তবে এর অর্থ হল যে তাদের অবস্থান ঠিক করতে হবে এবং তাদের কাছে পিছিয়ে পড়বে।
tsturzl

ঠিক আছে, আমি কিছুটা দ্বিমত পোষণ করছি। কিছু ধরণের প্রতারণা স্থিরযোগ্য, কিছু নয়। উদাহরণস্বরূপ, আমার মতে এটি যদি একটি প্রতিযোগিতামূলক অনলাইন শ্যুটারের জন্য দ্রুতগতি করতে পারে তবে এটি একটি খারাপ গেমের নকশা। বা কিছু ক্রেজি হ্যাক যা আপনাকে গডমোড এবং অসীম গোলাবারুদ দিয়ে মানচিত্রের চারপাশে উড়তে দেয় (আমি বিশ্বাস করি যে এটি কোনও সময়ে ক্রাইসিস 1 এ ঘটেছে)। এগুলি স্থিরযোগ্য, কেবল আপনার গেমটি সঠিকভাবে ডিজাইন করুন। ওয়ালহ্যাকের মতো স্টাফগুলি প্রায় অনুচিত নয় (এটির জন্য সার্ভারের প্রচুর সংস্থান প্রয়োজন)। অ্যামবোট ভার্চুয়াল অনুপযুক্ত। আপনার সমাধান # 3 এই সবচেয়ে খারাপ ধরণের প্রতারণার ঝুঁকি বাড়ায়।
কিউবস্প্ল 42

@ কিউবস্প্ল২৪২ আমি মনে করি আপনি একটি উদাহরণ কী তা ধারণা হারিয়েছেন। বিকল্প 3 আপনি যে সমস্যার কথা বলছেন ঠিক তা আটকাতে পারে। আপনার কাছে সাধারণত একটি টিসিপি থাকবে যা বেগটি ভাগ করে নেবে এবং তারপরে আপনি সহজেই ক্লায়েন্টগুলির মধ্যে বেগটি পরীক্ষা করতে পারেন এবং sensক্যমত্য তৈরি করতে পারেন, আপনি ইউডিপি থেকে স্থানাঙ্কগুলি প্রদানকৃত গতি অনুমান করে আপনার ক্লায়েন্টদের কাছে আছে তা গ্রহণযোগ্যতাযোগ্য কিনা তা নির্ধারণ করার জন্য কিছু সাধারণ গণিতও করতে পারেন সিঙ্ক্রোনাইজড ক্লক (এইচডাব্লু ঘড়ি থেকে সংযোগ স্থাপন করা যেতে পারে)।
tsturzl
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.