কোনও খেলোয়াড় অদৃশ্য হলে কীভাবে আন্দোলনের সঠিকভাবে ভবিষ্যদ্বাণী করা যায়?


20

আমার একটি মাল্টিপ্লেয়ার গেম রয়েছে এবং আমি ক্লায়েন্ট-পার্শ্বের পূর্বাভাস করছি, তবে কিছু খেলোয়াড় একটি দাহ পান করতে এবং অদৃশ্য হয়ে যেতে পারে ...

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

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

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


4
সমস্ত খেলোয়াড় সম্পর্কে কেবল তথ্য প্রেরণ করুন। প্রতারকরা প্রতারণা করবে। সৎ খেলোয়াড়দের অভিজ্ঞতা পঙ্গু করবেন না এবং এর পরিবর্তে প্রতারকদের জন্য পতাকাঙ্কিত সিস্টেম তৈরি করার কথা ভাবেন না।
ব্যবহারকারী1306322

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

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

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

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

উত্তর:


30

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

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

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

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

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

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


5
গেম টিম ফোর্ট্রেস 2 সেই প্রথম পদ্ধতির ব্যবহার করে ... কোনও অদৃশ্য গুপ্তচর যদি অন্য খেলোয়াড়কে স্পর্শ করে তবে অন্য খেলোয়াড় স্পাই দেখতে সক্ষম হয় (বা যদি পিছন থেকে হয় তবে অন্তত কিছুটা বাধা বোঝে)।
Xantix

4

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


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

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

1
যদি আপনার গ্রিড ভিত্তিক মানচিত্র থাকে এবং প্রতিটি স্কয়ারটি একে একে একে পরীক্ষা করে নিচ্ছেন, আপনি পাশাপাশি সার্ভার পার্শ্বের অদৃশ্য অক্ষরগুলির অবস্থানটি একমুখী এনকোডিং সহ যেমন SHA-1 বা SHA-2 এর সাথে এনকোড করার চেষ্টা করতে পারেন SH , তারপরে একই অ্যালগোরিদমের সাথে চেক করা স্থানাঙ্কগুলি এনকোড করে আপনার নিজের পাথটি পরীক্ষা করুন। এটি পারফরম্যান্স-কার্যকর বলতে পারি না, তবে আপনি যদি ক্লায়েন্টের পক্ষে এটি করতে চান তবে এই সমাধানটি সীমিত সংখ্যক পজিশনের সাথেও কাজ করতে পারে এবং গ্রিড পয়েন্টগুলির এনকোডের নিখুঁত পরিমাণের কারণে হ্যাকিং সত্যিই সমস্যা হতে পারে might এবং মেমরি মধ্যে ডেটা সঙ্গে মেলে।
ড্যানিয়েল রুজন্যাক

আমি যে কাজ দেখতে পারেন। আমার ক্ষুদ্রতম মানচিত্রে 1500 টি বিভিন্ন অবস্থান রয়েছে। আক্রমণকারীকে সমস্ত অবস্থান পূর্ববর্তী থেকে রোধ করতে প্রতি কয়েক সেকেন্ডে কী পরিবর্তিত করে কী এইচএমএসি ব্যবহার করা উচিত?
affiszervmention

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

2

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


আমার ধারণা এটি কাজ করতে পারে তবে আমার গেমটি টাইল ভিত্তিক (বলতে ভুলে গেছে)।
affiszervmention

সুতরাং কেবল সংলগ্ন টাইলগুলিতে অদৃশ্য খেলোয়াড়গুলি প্রকাশ করুন, বা 2 ধাপ দূরে বা যা কিছু।
আর ..

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