কে এমএমওতে এআই গণনা করে?


30

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

এআই সার্ভার বা ক্লায়েন্ট কে গণনা করে? আমি সার্ভারটি প্যাথফাইন্ডিং, অবস্থান, গতিবিধি ইত্যাদির গণনা করতে পারি না। দয়া করে এটি বুঝতে আমার সহায়তা দরকার, ধন্যবাদ, যে কোনও কিছু সাহায্য করবে।


2
আপনার পরিভাষাটি সম্পর্কে যত্নবান - উদাহরণস্বরূপ এনপিসি খেলোয়াড় নয়।
কাইলোটন

উত্তর:


25

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

স্কালাইফের বদুমনা ( http://www.scalify.com/badumna.php ) ক্লায়েন্টদের উপর এর কিছু অংশ লোড করার চেষ্টা করে যে তারা ক্লায়েন্ট-সাইড গণনা করবে এবং একে অপরকে প্রেরণ করবে; কিছু ডেটা গ্রাহকদের কাছে উত্সর্গ করার আগে যেমন কোনও ডেডিকেটেড সার্ভারের মতো হয় তখন বৈধ হওয়ার জন্য একটি লেখক পিয়ারকে প্রেরণ করা হয়। সমস্যাটি হ'ল যদি আপনি প্রতারণা রোধ করতে চান তবে একটি মাল্টিপ্লেয়ার গেমের সমস্ত ডেটা অবশ্যই প্রামাণিক পিয়ারের মাধ্যমে প্রেরণ করা উচিত। আপনি যা চান তার নিকটতম বলে মনে হওয়ায় আমি বাদুম্নাকে এনেছি, তবে তা এমনকি প্রতারণাকারীদের ধরতেও সক্ষম হবে না - এটি কিছুটা ধরতে পারে তবে সমালোচনামূলক কিছু (যেমন, সবকিছুই বেশ কিছুটা) করতে হবে সার্ভার- পাশ।

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

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

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

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

আমি সত্যিই বাদুম্নাকে এতটা অন্বেষণ করে দেখিনি, তাই আমি যে বিষয়গুলি সম্পর্কে অবগত নই সেগুলি এবং বৈশিষ্ট্যগুলি অনেক বেশি হতে পারে তবে কমপক্ষে আমি এটির উপর একটি রহস্যজনক দৃষ্টিভঙ্গি দিয়েছি।

tl; dr: ক্লায়েন্টকে সত্যই কেবল একটি কীবোর্ড হওয়া উচিত এবং ইন্টারনেটে মাউস লাগানো উচিত।


9

সংক্ষিপ্ত উত্তরটি হ'ল মানক এমএমওর জন্য, এআই গণনা সর্বদা সার্ভার দ্বারা সম্পাদিত হয়।

কিছু গেম ক্লায়েন্টকে এআইয়ের পূর্বাভাস দেওয়ার চেষ্টা করবে, যাতে এনপিসিগুলি আরও দ্রুত প্রতিক্রিয়া দেখায়, তবে এটি কেবল একটি বিভ্রম; আসল এনপিসি সর্বদা সার্ভার দ্বারা নিয়ন্ত্রিত হয়।


5

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

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

যা সত্যিই লজ্জাজনক, কারণ ক্লায়েন্টদের উপরে এআই বিতরণ করা স্কেলেবেলিকে প্রভাবিত করতে পারে।


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

2

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


1

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

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

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


1

ক্লায়েন্ট পক্ষের জটিল নন-গেম-সমালোচনামূলক ক্রিয়াকলাপ পরিচালনা করার সময় সার্ভার সাইডে কিছু সাধারণ এআই রুটিন এবং গেম-সমালোচনামূলক গণনা করা সম্ভবত সেরা।

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

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

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

সহজতম ক্ষেত্রে আপনি ক্লায়েন্টটিকে যেখানে এটি সার্ভারের প্রত্যাশা করে তা সমন্বয় করে রাখবেন, সার্ভারটি যাচাই করবে, তারপরে ক্লায়েন্টটি আবার গণনা করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.