কোন এমএমওআরপিজিতে যেমন ওয়াহের মতো প্লেয়ারের পজিশন কোন ধরণের পরিবর্তনশীল ধরণের মধ্যে থাকে?


18

এমনকি আমি জে। কারম্যাক দ্রুত এটি সম্পর্কে কথা বলতে শুনেছি ...

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

আমি বুঝতে পারি গ্রাফিক কার্ডের মেমরিতে কীভাবে শীর্ষেগুলি সংরক্ষণ করা হয় তবে মাল্টিপ্লেয়ারটি যখন সিঙ্ক্রোনাইজ করার কথা আসে তখন আমি কী কল্পনা করতে পারি তা সেরা নয়।

উত্তর:


26

স্কট বিলাস ডানজিওন সিজে কাজ করেছিলেন এবং একটি গবেষণাপত্র লিখেছিলেন, "কন্টিনিউস ওয়ার্ল্ড অফ ডানজিওন সিজ" । যদিও ডানজিওন সিজে এমএমও নয়, এটির একটি বিশ্ব রয়েছে এবং তিনি তার কাগজে প্লেয়ারের অবস্থানের বিষয়ে কথা বলেছেন। আমি এটি একটি দুর্দান্ত পড়তে পেয়েছি। এখানে প্রাসঙ্গিক বিভাগ:

যথার্থ সমস্যা

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

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

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

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

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

"পৃথিবীর কোনও জায়গা নেই" এই উক্তিটি দলের মন্ত্র হয়ে উঠল, যদিও আক্ষরিক অর্থে এটির অর্থ কী তা বোঝার জন্য প্রত্যেককে বছর সময় লেগেছিল।

আপনি এখানে অন্ধকূপ অবরোধের আরও কাগজপত্র দেখতে পারেন ।


এটা খুব গু উত্তর বলে মনে হচ্ছে! ধন্যবাদ! আমি ভাবতাম যদি আজকের খেলাটি জিএমপির পূর্ণসংখ্যার মতো লম্বা সংখ্যা ব্যবহার করে।
জোকুন

3

বিশাল অঞ্চলবিহীন বিশ্বের জন্য আমি হয় দ্বিগুণ নির্ভুলতার শীর্ষে যাব, অথবা ছোট অংশগুলি জমিকে ভাগ করে নেব flo

প্রতিটি অংশের নিজস্ব সমন্বয় ব্যবস্থা থাকবে। আপনি যখন এই প্রতিটি অংশে সীমানা অতিক্রম করবেন তখন আপনি সেই সমন্বয় ব্যবস্থায় সবকিছু রূপান্তরিত করবেন। তারা যেভাবেই হোক ফ্লাইট সিমগুলিতে এটি করে।

আপনার যদি ছোট অঞ্চল থাকে তবে আমার ধারণা ভাসা যথেষ্ট হবে।


দ্বিগুণ নির্ভুলতা দ্রুত বিশাল কর্মক্ষমতা এবং মেমরির সুবিধাগুলি সরবরাহ করে। (x, y, z, অঞ্চল) 16 বাইট; (x, y, z) ডাবলগুলি কমপক্ষে 24 হবে You আপনি তাদের উপর দ্রুত গণিত করতে পারবেন না এবং আপনি সেগুলি গ্রাফিক্স কার্ডে ব্যবহার করতে পারবেন না।

ঠিক আছে, ফার্মি কার্ডগুলি দ্বিগুণ নির্ভুলতা ব্যবহার করতে পারে;) তবে হ্যাঁ, উত্তরটি যাইহোক উত্তরটি প্রস্তাব দেয় un
নাইলার

2

আমি প্রকৃত অবস্থানের জন্য এটি বলতে চাই এটি 3 ফ্লোটের ভেক্টর। তবে প্লেয়ারের সাথে জোন ইনডেক্সও যুক্ত থাকবে। (তবে লোকেশনের অংশ নয় কারণ সেই জোন সার্ভার দ্বারা পরিচালিত সমস্ত কিছুই একই জোনে এবং তাই একই ডেটা কাঠামোতে থাকার দরকার নেই))

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

LUA এপিআই ব্যবহার করে আপনি প্লেয়ারের অবস্থান পেতে পারেন গেটপ্লেয়ারম্যাপপজিশন () পুরো বিশ্ব মানচিত্রের সাথে অনুপাত হিসাবে 0 থেকে 1 পর্যন্ত দুটি করে ফ্লোট দেয়।


1

বাহের জন্য, আমি প্রত্যাশা করি যে তারা একটি সাধারণ ফ্লোট এক্স / ওয়াই / জেড ব্যবহার করে - তবে একটি নির্দিষ্ট 'জোন' এর সাথে তুলনামূলক

এটি 'চলমান অঞ্চলগুলি' পরিচালনা করতে সহায়তা করবে, উদাহরণস্বরূপ, নৌকা এবং জেপেলিন


1

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


মেটা টেবিল কি? আমি সত্যিই সন্দেহ করি যে এটি এটি একটি ডিবিতে
রাখবে

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

-2

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


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