ধারণামূলকভাবে, একটি খেলায় রিপ্লে কীভাবে কাজ করে?


145

কোনও খেলায় রিপ্লে কীভাবে প্রয়োগ করা যেতে পারে সে সম্পর্কে আমি একধরনের কৌতূহল ছিলাম।

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

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


10
অরিজিনাল স্টার ক্রাফ্ট রিপ্লেগুলি আসলে সামঞ্জস্যপূর্ণ ছিল না। আপনি একই খেলাটি দু'বার দেখতে এবং কিছু ভিন্ন ফলাফল দেখতে পেলেন।
আন্দ্রেস

1
@ আন্ডারস: মজার, আমি লক্ষ্য করিনি। বিশেষত, আরটিএস জেনারের জন্য, আমি কোম্পানী অফ হিরোসের কথা ভাবছিলাম।
স্টিভেন এভার্স

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

1
@ শিয়ান ও'হোলারেন: হ্যাঁ, এটি সঠিক।
স্টিভেন এভার্স

1
তারপরে আমি গাড়ী রেসিং গেমগুলিতে যোগ করব যেখানে রিপ্লে প্রায় ডিফল্ট। আমি বেশ নিশ্চিত যে মডেলগুলির অবস্থানটি রেকর্ড করা হয়েছে এবং তারপরে সমস্ত কিছু কেবল ইঞ্জিনের মাধ্যমে চলে।
d -_- বি

উত্তর:


61

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


ফ্রেম সংখ্যাগুলি ভাল রেফারেন্স নাও হতে পারে কারণ লাইভ গেমের চেয়ে রিপ্লে বিভিন্ন ফ্রেমরেটে চলতে পারে।
বেন এস

5
@ বেন: ফ্রেমরেট কোনও পার্থক্য করে না, যেহেতু ফ্রেম সংখ্যাগুলি এখনও একই থাকবে। এটা সঠিক উত্তর.
ব্লুরাজা - ড্যানি প্লেফুঘুফুট

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

3
@ আইয়ামগোপাল: আপনি যদি ছদ্ম-এলোমেলো নম্বর জেনারেটরের অবস্থা জানেন তবে সমস্যাটি ইতিমধ্যে সমাধান হয়ে গেছে। অন্য পদ্ধতি হ'ল এলোমেলো সংখ্যাকে অন্য একটি ইনপুট হিসাবে বিবেচনা করা এবং কীপ্রেস এবং এর মতো পাশের সেগুলি সংরক্ষণ করা।
কাইলোটন

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

28

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

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

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

আপনি যদি রিপ্লে ইঞ্জিনটি লিখছেন তবে কিছু মনে রাখবেন।


6
+1: খুব আকর্ষণীয়। আমি এর আগে কখনও শুনিনি। তারা কীভাবে এটি বিকাশ করেছে সে সম্পর্কে কিছুটা অন্তর্দৃষ্টি সরবরাহ করে।
স্টিভেন এভার্স

18

দুটি প্রধান পদ্ধতি রয়েছে:

  1. ইভেন্টগুলি সংরক্ষণ করা (যেমন প্লেয়ার / আইআই ক্রিয়া) - ঠিক যেমনটি আপনি বলেছেন।
  2. স্টোরিং স্টেট (সম্পূর্ণ গেমের স্টেট, অবজেক্টের ফাই লোকেশন, একটানা মুহুর্তগুলিতে)।

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

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

কখনও কখনও পুনর্নির্মাণগুলি এন্টিচেটিং স্কিম হিসাবে ব্যবহৃত হয়। তারপরে ইভেন্টগুলি সংরক্ষণ করা সম্ভবত এখানে সেরা।


10

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

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

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

সবকিছুকে নির্বিচারে তৈরি করুন এবং আপনার ভাল হওয়া উচিত।


1
এআই সম্পর্কে কি? এআই কি এলোমেলো নয়?
জেসি জ্যাশিনস্কি

18
এটি আসলেই প্রয়োজনীয় নয়। সমস্ত র্যান্ডম ইভেন্টের জন্য সিডেড সিউডো-এলোমেলো নম্বর ব্যবহার করুন এবং রিপ্লে ফাইলে বীজ সংরক্ষণ করুন। এইভাবে একই "এলোমেলো" নম্বর পুনরায় প্লে করার সময় উত্পন্ন হবে।
বেন এস

13
কম্পিউটারে "
এলোমেলোতা

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

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

10

প্রদত্ত প্রাথমিক অবস্থায় এবং টাইমস্ট্যাম্প সঙ্গে কর্মের সিরিজের , সহজভাবে ক্রম মধ্য দিয়ে যেতে হিসাবে নথিভুক্ত ক্রিয়া ঘটতে একটি রিপ্লে আছে অনুমিত হয়।

ঠিক একই ঘটনা পুনরায় ঘটতে র্যান্ডম ইভেন্টগুলি পেতে, সিডেড সিউডো-এলোমেলো নম্বর ব্যবহার করুন এবং পুনরায় প্লে ফাইলটিতে বীজ সংরক্ষণ করুন।

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

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


আপনি যদি প্রতি সেকেন্ডের নির্দিষ্ট সংখ্যক পুনরায় বীজ বারণ করেন (5 বা 10 বলুন) আপনার রিপ্লে স্ট্রিমে রেকর্ড করা যথেষ্ট সহজ এবং সামনের দিকে বা পিছনে (মূলত পিআরএনজি "কী ফ্রেমগুলিতে" ঝাঁপিয়ে পড়ার অনুমতি দেওয়া)।
ওয়েজ

7

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


4

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

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


3

আমার দুই পেন্স ভিতরে .ুকিয়ে দিন।

আপনি যা চান তার উপর নির্ভর করে, রিপ্লে এর মাধ্যমে সম্পন্ন হতে পারে

  1. ভিডিও বাফার রেকর্ডিং এবং পরে পুনরায় খেলানো,
  2. প্রতিটি ফ্রেম অবজেক্টের অবস্থান ক্যাপচার এবং পরে পুনরায় খেলানো,

বেশিরভাগ সময় লোকেরা একটি ইন্টারেক্টিভ রিপ্লে চায়, তাই 2 যাওয়ার উপায়। তারপরে আপনার সীমাবদ্ধতার উপর নির্ভর করে এই প্রক্রিয়াটি অনুকূল করার বিভিন্ন উপায় রয়েছে

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

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

হ্যাঁ, কেউ কীভাবে ব্লিনেক্স টাইম সুইপারকে ভুলে যেতে পারে ! মহান ইন্টারেক্টিভ রিপ্লে যে অন্তর্ভূক্ত ছিল মধ্যে প্রকৃত খেলা মিস্ত্রি!


* = মনে হচ্ছে সময়ের পদক্ষেপ সম্পর্কে কিছু মন্তব্য রয়েছে। আমি এই বৈশিষ্ট্যটি ক্যাপচার করতে এখানে "সিমুলেশন" ব্যবহার করছি। মূলত, আপনার ইঞ্জিনকে সময়ের স্বতন্ত্র ফ্রেম তৈরি করতে সক্ষম হওয়া দরকার। এমনকি যদি রিপ্লে ফ্রেমটি মূলটির থেকে প্রসেস করতে আরও দীর্ঘ বা সংক্ষিপ্ত সময় নেয় তবে সিস্টেমটিকে অবশ্যই বুঝতে হবে যে একই সময় ডেল্টাটি পেরিয়ে গেছে। এর অর্থ প্রতিটি রেকর্ড করা ইনপুট সহ ফ্রেম টাইম-স্টেপ রেকর্ডিং এবং আপনার ইঞ্জিনের ঘড়িতে এই ডেল্টা সরবরাহ করা।


2

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

আকর্ষণীয় প্রশ্ন, যদিও। এটি পেশাদার গেমগুলিতে কীভাবে হয় তাতে আমি আগ্রহী।


2

ড্যান ব্রায়ান্ট

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

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

একই সাথে এড়ানো, লক্ষ লক্ষ গাছ এবং ঘাসের শ্যাফট অবস্থান সংরক্ষণ করা। স্পষ্টতই সিউডো এলোমেলো ক্রম একই যেকোন সময় পুনরায় প্লে করতে পারে, যেমন যুক্তি ঠিক করা হয়েছে, কেবল একটি জাল পরিসংখ্যানগতভাবে সংখ্যার র্যান্ডম ক্রম তৈরি করতে।


আপনি যদি ড্যানের দৃষ্টি আকর্ষণ করতে চান তবে তার অবদানের অধীনে একটি মন্তব্য যুক্ত করুন - অন্যথায় তিনি সম্ভবত এটি দেখতে পাবেন না।
অর্ধেক

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

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

1

একটি সামঞ্জস্যপূর্ণ পুনরায় খেলতে সমস্যা একই (ভাল, সহজ) মত একটি সামঞ্জস্যপূর্ণ মাল্টিপ্লেয়ার খেলা আছে।

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

সমস্ত ইনপুট কেবল একটি অনুমান নয় রেকর্ডিং - ওয়ারফ্রাক্ট 3 রিপ্লে পড়ার জন্য একটি গ্রন্থাগার রয়েছে এটি প্রকাশ করে।

ইনপুট এই উত্তরের জন্য টাইমস্ট্যাম্প অন্তর্ভুক্ত।


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

-1

আমি বিশ্বাস করব যে নির্দিষ্ট বর্ধিত সময়ে গেমটি প্রতিটি অবস্থার (সমস্ত কিছু) একটি স্ন্যাপশট নেবে। তারপরে যখন রিপ্লেটি হচ্ছে তখন "গর্ত" পূরণ করার জন্য লিনিয়ার-অন্তরঙ্গকরণের সহজ ব্যবহার করা যেতে পারে। কমপক্ষে এটি আমার মনে হয় এটি সম্পন্ন হবে।

আপনি সঠিক যে ইনপুট রেকর্ডিং অবিশ্বাস্য হবে / একই আউটপুট গ্যারান্টি না। গেমটি অবশ্যই সমস্ত বস্তুর অবস্থার (বা কমপক্ষে গুরুত্বপূর্ণ) ট্র্যাক রাখতে হবে


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

@ পিটার, "একই ইনপুটগুলিকে খাওয়ানোর ফলে ঠিক একই ফলাফল হবে": না। অনেক গেমগুলিতে একটি এলোমেলো উপাদান রয়েছে, যা প্রতিবার রিপ্লেটি খেললে আলাদা হতে পারে। আপনাকে ইনপুটগুলির চেয়ে বেশি নজর রাখতে হবে।
houbysoft

সেটা সত্য. আপনার PRNG গুলি এর বীজও সংরক্ষণ করতে হবে (এই প্রশ্নের আমার উত্তর দেখুন)।
পিটার রুদারম্যান

1
আমি জানি এটি পারফরম্যান্স এবং স্মৃতিশক্তি গ্রহণকারী, তবে আপনি যদি ইনপুট বা এলোমেলো জেনারেটর ... বা সত্যিকারের কোনও কিছু মিস করেন তবে রিপ্লেটি ভয়ঙ্কর স্পর্শকাতর হয়ে যাবে!
বব ফিনচাইমার

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