আমি একটি 2 ডি সার্ভার-ক্লায়েন্ট মাল্টিপ্লেয়ার গেম ইঞ্জিনে কাজ করছি (যা আপনি এখানে চেষ্টা করতে পারেন )। এটি ওয়েবআরটিটিস ব্যবহার করে DataChannel
। (সংযোগগুলি পিয়ার-টু-পিয়ার হয় তবে হোস্ট পিয়ার এখনও সার্ভার হিসাবে কাজ করে)
বৃহত্তম সমস্যা (সংযোগ ছাড়াও) স্থানীয় ইনপুট পূর্বাভাস। আমরা স্বাভাবিকভাবেই করি: কী প্রেসে, প্লেয়ারগুলি তাত্ক্ষণিকভাবে সরানো হয়, কীগুলি কী চাপানো হয় তা হোস্টকে জানায়, হোস্টের কাছ থেকে ডেটা ফিরে আসে এবং এটি historicalতিহাসিক অবস্থানের সাথে তুলনা করে। পার্থক্য থাকলে সময়ের সাথে অবস্থান সংশোধন করা হয়। এটি কম প্যাকেট হ্রাস বা PDV এর সাথে ভাল কাজ করে, পিং বেশি হলেও।
যদি ক্ষতি বা পিডিভি হয় তবে বিচ্যুতি আরও বড় হতে পারে। আমি মনে করি এটি কারণ কারণ যদি ইনপুট পরিবর্তনের নির্দেশিত প্রথম প্যাকেটটি বিলম্বিত হয় বা বাদ যায় তবে হোস্টটি পরে তা খুঁজে বের করে এবং তাদের স্থানীয় ইনপুট প্রিডিসিটন শোয়ের চেয়ে পরে খেলোয়াড়টি পরিবর্তন শুরু করে।
যদি প্লেয়ারটি চলমান থাকে তবে আমরা প্রয়োগের সংশোধনের পরিমাণটি ক্র্যাঙ্ক আপ করব, যেহেতু এটি কম লক্ষণীয়। এটি চলন্ত শুরু করার সময় এবং চলার সময় শূন্যস্থানগুলি আবৃত করে বলে মনে হয়। যাইহোক, কোনও সংশোধন হ'ল যদি তারা হঠাৎ স্টপ এ আসে তবে আরও লক্ষণীয়। তারপরে পিডিভি বা ক্ষতির অর্থ হোস্ট যদি মনে করে যে তারা পরে থামেছে, হোস্ট তদারকি করে, কিছুটা এগিয়ে বলে এই তথ্য প্রেরণ করে এবং সংশোধন করে প্লেয়ারটিকে কিছুটা ড্রিফ্ট করে তোলে। ফ্লেকি সংযোগে, খেলোয়াড়রা প্রায়শই একটি স্টপে আসার পরে উল্লেখযোগ্যভাবে বাহিত হয়।
আমি অন্যান্য গেমগুলিতে এটি লক্ষ্য করেছি না। কীভাবে এটিকে প্রশমিত করা যায়?