গেম ইঞ্জিন ডিজাইন: মাল্টিপ্লেয়ার এবং শোনার সার্ভারগুলি [বন্ধ]


10

আমার গেম ইঞ্জিন এখনই কার্যকরী একক প্লেয়ার অংশ নিয়ে গঠিত। আমি এখন মাল্টিপ্লেয়ার অংশটি কীভাবে করব সে সম্পর্কে চিন্তাভাবনা শুরু করছি।

আমি জানতে পেরেছি যে অনেকগুলি গেমের আসল সিঙ্গলপ্লেয়ার মোড থাকে না তবে একা খেললে আপনি আসলে একটি স্থানীয় সার্ভারও হোস্ট করছেন এবং প্রায় সমস্ত কিছুই এমনভাবে চলে যাতে আপনি মাল্টিপ্লেয়ারে ছিলেন (ব্যতীত ডেটা প্যাকেটগুলি পাস করা যেতে পারে) উন্নত পারফরম্যান্সের জন্য বিকল্প রুটের উপরে)

এই ইঞ্জিনটি খাপ খাইয়ে নিতে আমার ইঞ্জিনের বড় রিফ্যাক্টরিংয়ের প্রয়োজন হবে। তিনটি সম্ভাব্য মোড থাকবে: উত্সর্গীকৃত ক্লায়েন্ট, উত্সর্গীকৃত সার্ভার এবং ক্লায়েন্ট-সার্ভার (শোনার মোড)

  • গেমিং ইন্ডাস্ট্রিতে লিজ-সার্ভার মডেলটি কতবার ব্যবহৃত হয়?
  • এর (ডিস) সুবিধাগুলি কী?
  • আমার আর কোন বিকল্প নেই?

4
প্রথম প্রশ্নটি বেশ অপ্রাসঙ্গিক। ইন্ডাস্ট্রি এটি করে কীভাবে তা বিবেচনা করা উচিত? তারা সবকিছু সর্বোত্তম উপায়ে করে না।
কমিউনিস্ট হাঁস

উত্তর:


11

আমি এটির সর্বোত্তম উত্তর দিতে পারি কিনা তা আমি দেখতে পাচ্ছি:

গেমিং ইন্ডাস্ট্রিতে লিজ-সার্ভার মডেলটি কতবার ব্যবহৃত হয়?

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

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

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

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

এর (ডিস) সুবিধাগুলি কী?

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

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

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

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

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

একটি শোনার সার্ভারে, প্রধান অসুবিধাটি হ'ল ক্লায়েন্টটি শোনার সার্ভারটি হোস্ট করার সাথে সাথে গেমটি অন্য খেলোয়াড়ের কাছে স্থানান্তর করতে হবে (গেমটিতে লুল তৈরি করা যেতে পারে যা কিছু ক্ষেত্রে কয়েক মিনিট স্থায়ী হতে পারে), অথবা সম্পূর্ণভাবে শেষ হতে হবে । এটি একটি বৃহত সার্ভারে পছন্দনীয় নয়, কারণ হোস্টকে অবশ্যই অনলাইনে থাকতে হবে (সার্ভারে একটি স্লট নষ্ট করা এবং তার কম্পিউটার শক্তি, যা গেমটি ধীর করতে পারে) বা সবার জন্য গেমটি শেষ করতে হবে।

তবে এই সমস্যাগুলি সত্ত্বেও শোনার সার্ভারগুলির কয়েকটি সুবিধা রয়েছে few

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

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

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

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

সর্বশেষে:

আমার আর কোন বিকল্প নেই?

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

আমি যদি আপনার প্রশ্নের উত্তর না দিয়ে থাকি বা আপনার যদি কিছু বাড়ানোর প্রয়োজন হয় তবে দয়া করে আমাকে জানান I


"বেশিরভাগ উত্সর্গীকৃত সার্ভারে, একই আইপি সহ কোনও ব্যবহারকারী ডেডিকেটেড সার্ভারের সাথে সংযোগ স্থাপন করতে পারে না (অর্থাত্ ক্লায়েন্টকে অবশ্যই সার্ভারটি হোস্ট করতে হবে, বা খেলতে হবে, তারা উভয়ই করতে পারে না)। WAT? কোথায়? কেন? কিছু সার্ভারের যদি এই স্পষ্টতই নির্বোধ স্বেচ্ছাসেবী সীমাবদ্ধতা থাকে, তার মানে এই নয় যে তিনি যখন একটি লেখেন তখন তিনিও তা করতে বাধ্য হবেন ...
o0 '।

এটি পুরানো গেমগুলির থেকে একটি নিদর্শন, যখন থেকে কম্পিউটারগুলি একবারে সার্ভার অ্যালগরিদম, গ্রাফিক্স গণনা এবং গেম যুক্তি পরিচালনা করতে পারে না। অনেক উত্সর্গীকৃত সার্ভার মডেলগুলি এমন কোনও ক্লায়েন্টকে সফলভাবে সংযোগ স্থাপন থেকে একই মেশিনে সংযোগ স্থাপনের চেষ্টা করেছিল এবং এটি আজও কিছু গেমগুলিতে প্রয়োগ করা হয় prevent আমি কখনই এটি বলিনি যা এটি সমস্ত মডেলের ক্ষেত্রে প্রযোজ্য, বা আমিও বলিনি যে তাকে তার এই নির্দিষ্ট দৃষ্টান্তের মডেল করতে হবে। তবে, প্রযুক্তিগতভাবে, একই-হোস্ট সংযোগগুলি ডেডিকেটেড সার্ভারের উদ্দেশ্যকে পরাস্ত করে, এবং একমাত্র উপকারটি সংযোগ বিচ্ছিন্ন করার পরে সার্ভারকে সক্রিয় রেখে দেওয়া হবে।
2121 এ shmeeps
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.