শত শত খেলোয়াড়ের সাথে সার্ভার সাইড ফিজিক সিমুলেশন


9

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

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

আমার পদার্থবিজ্ঞানের সমস্ত সিমুলেশনগুলিকে ক্লায়েন্ট-সাইডে স্থানান্তরিত করতে আমার কোনও সমস্যা হবে না, তবে তখন যদি আমার ক্লায়েন্ট সিমুলেশনের ফলাফলটি বৈধ হয় তবে সত্যই যাচাই করার জন্য আমার কোনও উপায়ের প্রয়োজন হবে। তবে আমি কীভাবে তা বুঝতে পারি না।

আমি ক্লায়েন্টটি এখনও সুষ্ঠু খেলছে কিনা তা যাচাই করতে একবারে একবারে সিমুলেশন সার্ভার-সাইড চালানোর বিষয়ে ভেবেছি, তবে আমি সত্যিই চাই সার্ভারটি যতটা সম্ভব কম স্ট্রেন থাকুক।

গ্লেন ফিডলারের জিডিসি ২০১১ এর ডেমোর মতো পদার্থ বিজ্ঞানও জটিল হয়ে উঠবে , সম্ভবত আরও সহজ। তবে, আরও অনেকসময় সর্বদা-সংঘর্ষকারী দৃid় দেহগুলি একটি দৃশ্যে প্রদর্শিত হবে এবং সেগুলি একবারে দৃশ্যমান হবে।

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

বিষয় সম্পর্কে কোনও পরামর্শ, ওয়েবসাইট, কাগজপত্র বা এর মতো পছন্দগুলি খুব প্রশংসিত হবে।

আমি একটি উত্তর চাই এমন প্রশ্নের পুনরুদ্ধার:

  • ক্লায়েন্ট-সার্ভারের মডেলটি কতটা সম্ভব? আমার সার্ভার-প্রক্রিয়াকরণ শক্তি উদ্বেগ বৈধ এবং ভিত্তিতে?
  • সার্ভারে ক্লায়েন্ট দ্বারা চালিত কোনও শারীরিক সিমুলেশন নির্ভরযোগ্যভাবে যাচাই করা সম্ভব? যদি তাই হয়, কিভাবে?

আরও বেশি লোকেরা তাদের চিন্তাভাবনা পোস্ট করবে এই আশায় আমি এই প্রশ্নটি আরও খানিকটা দীর্ঘ রেখে দেব। যারা ধন্যবাদ জানিয়েছিল তাদের প্রতি আমার ধন্যবাদ জানাচ্ছি!
লেনার্ড ফন্টেজন

যতক্ষণ না বিভিন্ন ক্লায়েন্ট স্বতন্ত্র থাকে ততক্ষণ আপনার অনুভূমিকভাবে স্কেলিংয়ের কোনও সমস্যা হওয়া উচিত নয়। ইসি 2 এর মতো কিছু ব্যবহার করুন, প্রয়োজন হিসাবে অনলাইনে ক্ষমতা আনুন।
ইপিয়েট

1
কেউ যদি একক প্লেয়ার গেমটিতে প্রতারণা করে তবে সমস্যা কোথায়? কেবল তাদের দিন, লিডারবোর্ডের ধারণাটি আরও ভালভাবে ফেলে দিন এবং মজাদার একক প্লেয়ার গেমটি তৈরিতে মনোনিবেশ করুন
মাইক সেমদার

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

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

উত্তর:


5

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

তারপরে আপনি পদক্ষেপ নিতে পারেন (হয় প্রতারককে নিষিদ্ধ করুন, বা মিথ্যা প্রতিবেদন কে জাল করেছেন তা নিষিদ্ধ করুন)। সেই জমাটি সত্যই অবৈধ কিনা তা নিজেকে যাচাই করতে আপনি কোনও বিশেষ ক্লায়েন্ট বা যা কিছু ব্যবহার করতে পারেন।


3
আসলে এটি বেশ স্মার্ট! এর কথা ভেবে দেখেনি, স্পষ্টত কমপক্ষে 2 বা 3 জন ক্লায়েন্টকে সিমুলেশন চালাতে হবে যদি ক্লায়েন্টের চালানো অন্য কারওর সিমুলেশন প্রতারণা করে - এমন ক্ষেত্রে যদি সমস্ত ক্লায়েন্ট অদ্ভুত কিছু বলে তবে সার্ভার সর্বদা চূড়ান্ত সিমুলেশন করতে পারে in ।
লেনার্ড ফন্টেজন

1

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

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

আমি জানি না আপনার সিমুলেশনটি পছন্দ হয়েছে কিনা, সেট আপ করবেন না এবং ইন্টারঅ্যাক্ট করবেন না (চেক করা সহজ) বা প্লেয়াররা চলার সময় সিমের সাথে ইন্টারেক্ট করতে পারে তবে আপনার পদার্থবিজ্ঞান এমনভাবে করতে ভুলবেন না যাতে বিভিন্ন ভাসমান পয়েন্ট উপস্থাপনা স্টাফ আপ না এবং একটি বৈধ রান অবৈধ চেহারা না।


আমি নিজেই গেমপ্লেটির সুনির্দিষ্ট বিবরণ পেতে চাই না, তবে আপনি আমার গেমটিকে ডার্টসের গেমের সাথে তুলনা করতে পারেন: একবার আপনি লক্ষ্য করে ফেলে দিয়েছেন, পদার্থবিজ্ঞান দখল করে নেবে এবং আপনি এটিকে পরিবর্তন করতে পারবেন এমন কিছুই নেই আর। এই জ্ঞান আপনার উত্তর পরিবর্তন করবে?
লেনার্ড ফোন্টেইজন

না, এটি কোনও জিনিস বদলাবে না :)। সার্ভারে কেবল রিপ্লে সংরক্ষণ করুন এবং কেবল সন্দেহজনকগুলি পরীক্ষা করুন (উদাহরণস্বরূপ নতুন হাইস্কোর)
রায় টি।

1

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

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

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

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

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

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

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

1

ড্যানিয়েল যেমন বলেছিলেন, এখানে বড় সমস্যাটি এমন প্রোগ্রাম হতে চলেছে যা খেলোয়াড়ের জন্য ক্রিয়া সম্পাদন করে; খেলোয়াড় নিউরোসার্জারির জন্য সাধারণত যথাযথভাবে সমাধান করা রোবোটিক বাহু থাকলে গেমের কোনও পদার্থবিজ্ঞানের স্কিউিংয়ের প্রয়োজন হবে না।


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