ব্যান্ডউইথ কম রাখার জন্য এমএমও কৌশল, অ্যালগরিদম এবং সংস্থানগুলি?


9

বর্তমান এমএমওগুলি কীভাবে ক্লায়েন্টের উপর হ্যান্ডলিং থেকে সংকোচন থেকে ক্রিয়াকলাপ এবং আন্দোলনের ডেটা পরিচালনা করে তার কোনও সংস্থান এবং নথিপত্র রয়েছে? আন্দোলনের পূর্বাভাস অ্যালগরিদমের কোনও সংস্থান?

আমি বিশেষত তাদের মধ্যে আগ্রহী যারা ডাব্লুএসএডের চলাচল করে এবং স্বল্পতা কম রাখায় ফোকাস করে তাও বিভিন্ন ধরণের এমএমও (নেটওয়ার্ক ওয়াইস) এর প্যাকেটের হার এবং আকার কী?

প্যাকেটের হারকে স্কেল করার কোনও উপায় বা প্লেয়ারটি পৌঁছাতে না পারলে বা পরে যদি সেগুলি দেখতে না পারে তবে কিছু প্যাকেটগুলি সম্পূর্ণভাবে অক্ষম করে?

উত্তর:


9

ঠিক আছে, এই বইটি আছে - যা এখন কিছুটা পুরানো, এবং আমি সত্যিই এটি কখনই পড়িনি, তবে এটি একটি নামী প্রকাশকের কাছ থেকে। আমি এটি একটিও পেয়েছি , যা আরও নতুন তবে আমি এর আগে কখনও শুনিনি। উভয়ই এমএমও (বা কমপক্ষে অনলাইন) গেম ডেভেলপমেন্ট সম্পর্কিত বিষয়গুলি কভার করার দাবি করে; এটি বলেছিল যে ক্লায়েন্ট-পার্শ্বের পূর্বাভাস আপনার সমবর্তী প্লেয়ার বেসের স্কেল নির্বিশেষে কম বেশি একইরকম এবং Google এর সম্পর্কে প্রচুর তথ্য রয়েছে

এটি উপলব্ধি করা গুরুত্বপূর্ণ যে বাস্তবিক দৃষ্টিকোণ থেকে কোনও ইন্ডি / শখ বিকাশকারীকে এমন একটি গেম একসাথে রাখা আরও শক্ত যে এটি "বিশাল" হিসাবে বিবেচিত হওয়ার মতো পর্যাপ্ত তাত্ত্বিক শিখর অর্জনের জন্য পর্যাপ্ত খেলোয়াড়কে অর্জন করার পক্ষেও যথেষ্ট জনপ্রিয় তবে কৌশলগুলি এখনও গবেষণার জন্য শিক্ষামূলক হতে পারে।

আপনি করতে পারেন এমন দুটি প্রধান শ্রেণিবদ্ধকরণ রয়েছে:

  • এটির প্রয়োজনীয় ক্লায়েন্টদের ন্যূনতম সেটে কেবলমাত্র সর্বনিম্ন পরিমাণের ডেটা প্রেরণ সম্পর্কে আগ্রাসী হন।
  • এমন একটি গেম ডিজাইন করুন যা খেলোয়াড়দের খুব বেশি ক্লাম্প করার জন্য উত্সাহ দেয় না, আপনাকে "ক্লায়েন্টগুলির প্রয়োজন" সেটগুলি সাধারণভাবে ছোট রাখতে সহায়তা করে।

দ্বিতীয়টি সত্যিই একটি গেম ডিজাইন এবং সামাজিক হেরফেরের সমস্যা - এটি বিশেষত জটিল কারণ মাল্টিপ্লেয়ার গেমগুলি স্বাভাবিকভাবেই সামাজিক, এটি তাদের আবেদনের অংশ, তাই আপনি খুব বেশি খেলোয়াড়ের গুচ্ছকে নিরুৎসাহিত করতে চান না। অন্যদিকে, এমন একটি গেম যেখানে বিশ্বের প্রত্যেকেই সেই লোকটিকে স্পন-ক্যাম্পিং করে যা গেমের সেরা লুটটি ফেলে দেয় তা মাপতে শক্ত হতে চলেছে।

প্রথম বিকল্পের জন্য আপনি টায়ার্ড মেসেজিং করতে বিবেচনা করতে পারেন - অন্যান্য খেলোয়াড়দের সম্পর্কে এমন কিছু জিনিস রয়েছে যা জানতে সর্বদা জরুরী, যেমন পজিশন। তবে স্বাস্থ্যের মতো অন্যান্য জিনিসগুলি বর্তমান প্লেয়ারটি এখনও দেখতে না পারা অবজেক্টগুলির জন্য এতটা গুরুত্বপূর্ণ নাও হতে পারে, তাই আপনি সেই খেলোয়াড়কে তার আশেপাশের অন্যান্য সমস্ত সত্তার আপেক্ষিক দূরত্বের ভিত্তিতে যা প্রেরণ করেন তা গেট করেন - এটি মূলত থ্রোলটিং হয় ling আপনি যে ডেটা প্রেরণ করেছেন সেগুলি যেমন আপনি আপনার প্রশ্নের শেষ বিটটিতে উল্লেখ করেছিলেন পাশাপাশি এটি ফিল্টারও করেছেন।

খুব বড় আকারের মাল্টিপ্লেয়ার আর্কিটেকচারগুলি এমন প্রতিবেদন বাফার করবে যেগুলি তাদের উপর তাত্ক্ষণিক পদক্ষেপ নেওয়ার দরকার নেই don't সার্ভারে প্রেরিত অক্ষর সংরক্ষণ বার্তাগুলি কেবল সমালোচনামূলক পয়েন্টগুলিতে সম্পূর্ণ আপডেটের সাথে ডেল্টাসে করা যেতে পারে এবং এই আপডেটগুলি একটি থ্রোল্টলিং সার্ভারে বাফার করা যেতে পারে যাতে তারা সেই সার্ভারে প্রেরণ করা হয় যা প্রকৃতপক্ষে অক্ষরটির ডেটা ধরে রাখে, পর্যায়ক্রমিক ফ্যাশন - আপনার প্লেয়ারের বেস স্কেল হিসাবে, আপনাকে ডিস্ক আইও পাশাপাশি নেটওয়ার্ক ট্র্যাফিকের বিষয়ে চিন্তা করতে হবে। আপনি আপনার চরিত্রের ডাটাবেসটি ছিন্ন করতে চান না।

প্যাকেটের হার এবং আকার গেম থেকে গেমের সাথে পৃথকভাবে পৃথক হয়, ঠিক এমএমও গেমগুলির জন্য এটি। এটি সত্যই একটি অত্যন্ত প্রয়োজনীয়তা-নির্দিষ্ট জিনিস এবং সাধারণ মানের নেই।


1
প্রথম বইয়ের সিক্যুয়েলও রয়েছে (ম্যাসিভালি মাল্টিপ্লেয়ার গেম ডেভলপমেন্ট 2)। এটি আমার মতে খুব উপকারী বইয়ের সিরিজ নয় (এটি বেশিরভাগ গেম ডেভ বইয়ের মতো মেক-এ-এমএমও-ইন-এক্স-ঘন্টা বইয়েরই শুরু নয়) তবে এটি কিছু তাত্ত্বিক সমস্যা নিয়ে আলোচনা করে এই প্রশ্ন জিজ্ঞাসা। এবং ইতিমধ্যে এটি ইতিমধ্যে একটি এমএমও আংশিকভাবে বিকাশযুক্ত কারও পক্ষে আরও কার্যকর হতে চাই।
রিকিট

5

উপরের উত্তর ছাড়াও, টিসিপি_নোড্লে এবং কীভাবে উইন্ডো স্কেলিং পরিচালিত হয় তা পড়ুন। টিসিপি-র বিশদ বুঝতে (এবং হ্যাঁ, আপনি অর্ডার থেকে বেরিয়ে আসা ডিফারেন্সিয়াল আপডেটগুলি হ্যান্ডেল করার সম্ভাবনা যদি আপনার কাছে মজাদার মনে না করে আপনি টিসিপি ব্যবহার করতে চান) এবং বিলম্বিতা নিয়ন্ত্রণের জন্য পুনঃপ্রেরণ সমালোচনামূলক।


4
আমি পুনরাবৃত্তি করব যে আপনি যদি ডিফারেন্সিয়াল আপডেটগুলি (সাধারণত গেম স্ট্রাকচারগুলির বাইনারি ডিফগুলি) ব্যবহার করে থাকেন এবং আপনি আউট-অফ-অর্ডার বিতরণ (নির্ভরযোগ্য বা না) এর সাথে কিছু ব্যবহার করেন তবে আপনি এতে আক্ষেপ করবেন। গেমিংয়ে টিসিপি অপছন্দ করে এমন লোকেরা সাধারণত এ সম্পর্কে পর্যাপ্ত পরিমাণে জানেন না (যেমন নোডলে কী করেন তা জেনে)। ইউডিপি ভয়েস ডেটার মতো স্টাফের জন্য অর্থবোধ করে, যেখানে আউট-অফ-অর্ডার প্যাকেটগুলি কেবল বাদ দেওয়া যায়, কোনও গেমের ক্ষেত্রে এটি খুব কমই ঘটে।
কোডরেঞ্জার

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

2
"প্রদত্ত যে সার্ভারটি আমাকে প্রামাণ্য গেম দিচ্ছে প্রতিটি ফ্রেমে" অবশ্যই, যদি আপনি এটি প্রদত্ত হিসাবে বিবেচনা করেন। মনে রাখবেন যে আমি বলেছি "যদি আপনি ডিফারেনশিয়াল আপডেট ব্যবহার করেন" যা প্রতিটি ফ্রেমে পুরো স্ট্রোকে স্ট্রোব করার বিপরীত হবে। বিশ্বের যে কোনও স্তরের জটিলতার একটি এমএমওতে প্রায়শই সম্পূর্ণ আপডেটগুলি সরবরাহ করা দ্রুত অসম্ভব হয়ে উঠবে।
কোডরেঞ্জার

1
এমনকি যদি পরিবর্তিত জিনিসের সম্পূর্ণ স্থিতি প্রেরণ করেও, আপনি অফ-অফ-অর্ডার সরবরাহের বিষয়গুলি শেষ করেন যেখানে জিনিসগুলি একসাথে মার্জ করা অসম্ভব হয়ে উঠতে পারে। "X = 1, y = 2" এবং তারপরে "y = 1, z = 2" আপডেটগুলি ভাবেন। যদি এগুলি পিছন দিকে আসে তবে আপনি "প্রথম "টিকে ড্রপ করতে চান যাতে y এর মান সঠিক হয় তবে আপনি পরিবর্তনটি x এ হারাতে পারেন।
কোডরেঞ্জার

1
@ অ্যাডাম যার কারণেই আমি বলেছিলাম যে টিসিপি অনুমানটি পড়ুন এবং উইন্ডো স্কেলিং কীভাবে কাজ করে এবং এটি কীভাবে পুনঃপ্রেরণের সাথে মিথস্ক্রিয়া করে; বুঝতে হবে ;-) পুনরায় লেখার টিসিপি সর্বদা ভুল, এটির স্ক্রু করার সম্ভাবনা 100% এর কাছাকাছি। আপনি যদি নির্ভরযোগ্য চান, অর্ডার ডেলিভারি আপনার ইউডিপি ব্যবহার করা উচিত নয়।
কোডরেঞ্জার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.