প্লেয়ারের গতির পরিবর্তনগুলি পাঠানোর সময় আমি কীভাবে ক্লায়েন্ট এবং সার্ভারকে সিঙ্ক করব?


10

আমি ক্লায়েন্ট-পক্ষের ভবিষ্যদ্বাণী বাস্তবায়ন করছি। বেশিরভাগ ব্যাখ্যা অনুমান করে যে ক্লায়েন্টটি " আমার প্লেয়ারটিকে 1 পজিশনে উপরে নিয়ে যান " এর মতো বার্তা প্রেরণ করে । যদি আমি " আমার প্লেয়ারের বেগটি এক্স তে সেট করুন " এর মতো বার্তা পাঠাই তবে কী হবে ?

ব্যাখ্যামূলক গ্রাফিক;  সময়ের সাথে ক্লায়েন্ট এবং সার্ভারে প্রেরিত বার্তা এবং গণিত অবস্থানগুলি দেখানো

ক্লায়েন্টে, প্লেয়ার সার্ভারের আগে তার নিজস্ব গতিবেগ (ক্লায়েন্ট-পার্শ্ব পূর্বাভাস দ্বারা) সেট করে, ফলস্বরূপ দুটি সিঙ্ক থেকে বেরিয়ে যায়। এই সমস্যাটি গড় বিলম্বিতা বিবেচনা করেও অব্যাহত থাকে।

আমি কীভাবে এটি সামাল দিতে পারি?

উত্তর:


8

আপনার রিডানড্যান্ট ডেটা প্রেরণ করা উচিত যার অর্থ এখানে অবস্থান এবং বেগ প্রেরণ করা। এমনকি আপনি সিঙ্কের বাইরে থাকলেও, আপনার অবস্থান এবং গতিবেগ যে সত্য তা আপনাকে একটি ইন্টারপোলেশন ফাংশন ব্যবহার করে ট্র্যাকজেক্টরিটি সংশোধন করতে দেয়।

তারপরে কিছু কৌশল যেমন বিলম্বিত অ্যানিমেশন, ত্বরণ ইত্যাদির সাহায্যে বিলম্বকে আড়াল করতে দেয়।

সম্পাদনা: আমি ধরে নিয়েছি যে সার্ভারটি অনুমোদিত।


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

1
@ ইউজার 13842 ক্লায়েন্ট সর্বদা সিঙ্ক থেকে বেরিয়ে আসবে, আপনার ক্লায়েন্টের পাশের অবস্থান এবং গতি সংশোধন করা উচিত, যেমন থেলভিন বলেছেন যে সার্ভার আপনাকে যা পাঠায় সে অনুসারে। আপনি যদি ক্লায়েন্টের সম্পূর্ণরূপে সিঙ্কের বাইরে না যান তবে আপনি স্টাটারিং আন্দোলনটি পান না তবে আপনাকে মানগুলি স্ন্যাপ করতে হবে কারণ সংশোধন খুব বেশি সময় নিতে পারে।
dreta

এটি একটি ইন্টারপোলেশন ফাংশনটি ব্যবহারের প্রধান কারণ। আপনি বিলম্বিতা এড়াতে পারবেন না, সুতরাং আপনার চলনটি মসৃণ উপায়ে সংশোধন করতে হবে। ক্লায়েন্ট এবং সার্ভার বিশ্বকে অনুকরণ করে তবে ক্লায়েন্টকে সার্ভারটি শুনতে হবে এবং সংশোধন করতে হবে। সোর্স ইঞ্জিন নেটওয়ার্কিংয়ে ব্যবহৃত কিছু কৌশল: ডেভেলপার.ওয়ালভসওফটওয়্যার
উইকি

এটি সংক্ষেপে এই গুগল
টকটিতেও

Ive এই বিশেষ সমস্যার জন্য আরও একটি সমাধান খুঁজে পেয়েছে। ক্লায়েন্ট প্রতিটি প্যাকেটের সাথে তার ইনপুট প্রয়োগ করার সময়টি আমি যুক্ত করি। অর্থ # 1 এর সময় হবে: 0 এবং দ্বিতীয় বার: 100। এখন সার্ভার জানে যে ক্লায়েন্টটি তার বোতামটি একবারে চাপছিল: 100 এবং এর আগে নয়।
ব্লু 3
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.