বম্বারম্যানের জন্য মিনিম্যাক্স


11

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


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

2
হ্যাঁ, আপনি কয়েকটি জিনিস মিস করছেন, তবে এগুলি দেখানোর জন্য আপনি আমাকে ধন্যবাদ জানাতে পারবেন না কারণ তারা এটিকে আরও খারাপ করে। 5 টি মৌলিক ক্রিয়া নেই। কিছু স্কোয়ারে 5 "চাল" থাকে (4 দিক এবং এখনও স্থির থাকে); অন্যদের 3 টি রয়েছে (কারণ তারা দুটি দিক দিয়ে অবরুদ্ধ রয়েছে); গড়ে এটি ৪। তবে চলার সময় আপনি একটি বোমা ফেলে দিতে পারেন , তাই গড়ে শাখা ফ্যাক্টরটি ৮ হয় a এবং উচ্চ-গতির পাওয়ারআপ সহ কেউ আরও কার্যকরভাবে তাদের শাখা ফ্যাক্টরটিকে ধাক্কা দিয়ে আরও বেশি পদক্ষেপে ফিট করতে পারেন।
পিটার টেলর

আমি আপনার প্রশ্নের উত্তর মন্টি কার্লো ট্রি অনুসন্ধান ব্যবহার করে দিয়েছি।
এসডিওয়ার্সগুলি

মনিম্যাক্স বমবারম্যানের মতো অনেক পছন্দ সহ কোনও পরিস্থিতিতে কেবল কার্যকর নয়। আপনি কোনও পদক্ষেপটি বোধগম্য কিনা তা দেখার জন্য আপনাকে যথেষ্ট পরিমাণে যাওয়ার আগে অনুসন্ধানের ক্ষমতাটি শেষ করে দেবেন।
লরেন পেচটেল

উত্তর:


8

বোমারু মানুষের মতো রিয়েল-টাইম স্ট্র্যাটেজি গেমগুলির এআইয়ের সাথে একটি কঠিন সময় রয়েছে। আপনি এটি বুদ্ধিমান হতে চান, তবে একই সাথে এটি নিখুঁত হতে পারে না।

যদি এআই নিখুঁত হয় তবে আপনার খেলোয়াড়রা হতাশ হবেন। হয় কারণ তারা সর্বদা হেরে যায় বা আপনি প্রতি সেকেন্ডে .3 ফ্রেম পান।

যদি এটি যথেষ্ট বুদ্ধিমান না হয় তবে আপনার প্লেয়াররা বিরক্ত হয়ে যাবে।

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

অসুবিধার উপর নির্ভর করে আপনি অসুবিধা উন্নত করতে বা হ্রাস করতে এই কার্যগুলি সংশোধন করতে পারেন।


2
সময়, হতাশা এবং একঘেয়েমি সমস্যা নেই। আমি বম্বারম্যানের বিভিন্ন এআই পদ্ধতির বিষয়ে ব্যাচেলর থিসিস লিখছি এবং তাদের তুলনা করছি। সুতরাং এটি নিখুঁত যদি এটি আরও ভাল। আমি এখনই সেই মিনিম্যাক্সের সাথে আটকে আছি
বিলদা

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

4

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

এর পরিবর্তে আপনার আরও কৌশলগত পদ্ধতির ব্যবহার করা উচিত।

আপনার নিজের জিজ্ঞাসা করা উচিত: একজন মানব খেলোয়াড় বোমারুম্যান খেলার সময় কীভাবে সিদ্ধান্ত নেয়? সাধারণত, একজন খেলোয়াড়ের চারটি প্রাথমিক অগ্রাধিকার অনুসরণ করা উচিত:

  1. বোমা বিস্ফোরণ অঞ্চল এড়ান
  2. বোমা রাখুন যাতে অন্যরা তাদের বিস্ফোরণ অঞ্চলগুলি এড়াতে না পারে
  3. পাওয়ারআপগুলি সংগ্রহ করুন
  4. পাথর উড়িয়ে বোমা রাখুন

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

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

এটি ইতিমধ্যে একটি যুক্তিসঙ্গত প্রতিরক্ষামূলক এআই তৈরি করা উচিত। তাহলে অপরাধ কী হবে?

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


এটি খেলার সাথে আমার সীমিত অভিজ্ঞতাটি হ'ল একজন সক্ষম প্রতিপক্ষকে হত্যা করার জন্য আপনাকে সাধারণত একাধিক বোমা রাখতে হয় - একটি কৌশল এটি বিবেচনায় নেওয়া উচিত। আমি প্রায় আপনার কৌশলের সাথে এআইয়ের বিপক্ষে খেলেছি, আপনি কোণঠাসা না করতে পারলে তারা আপনাকে হত্যা করতে যথেষ্ট অকার্যকর।
লরেন পেচটেল

4

আমি মনে করি আমি একটি গেম টিকের জন্য সমস্ত সম্ভাব্য রাজ্য তৈরি করতে পারি, তবে চার খেলোয়াড় এবং 5 টি বেসিক অ্যাকশন (4 টি চাল এবং বোমা স্থান) দিয়ে এটি গেম ট্রি এর প্রথম স্তরে 5 ^ 4 রাজ্য দেয়।

সঠিক! আপনাকে প্রতিটি গেমের টিকের জন্য সমস্ত 5 ^ 4 (বা এমনকি 6 ^ 4, যেমন 4 দিক দিয়ে চলতে পারেন, থামাতে এবং "বোমা লাগাতে"?) পদক্ষেপগুলি অনুসন্ধান করতে হবে। কিন্তু, যখন কোনও খেলোয়াড় ইতিমধ্যে স্থানান্তরিত করার সিদ্ধান্ত নিয়েছে, সরানো কার্যকর হওয়া পর্যন্ত এটি কিছুটা সময় নেয় (যেমন 10 গেমের টিক্স)। এই সময়কালে সম্ভাবনার সংখ্যা হ্রাস পায়।

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

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

গভীরতা 1: 5 চাল, 5 টি পৃথক রাজ্য, এই পুনরাবৃত্তির জন্য 5 টি অতিরিক্ত রাজ্য

গভীরতা 2: 25 চাল, 13 পৃথক রাজ্য, এই পুনরাবৃত্তির জন্য অতিরিক্ত 8 টি রাজ্য

গভীরতা 3: 6125 নড়াচড়া, 25 বিভিন্ন রাজ্য, এই পুনরাবৃত্তির জন্য 12 টি অতিরিক্ত রাজ্য

এটি দেখার জন্য, নিজেকে উত্তর দিন: মানচিত্রের কোন ক্ষেত্রগুলি একটি চাল, দুটি চাল, তিনটি চাল দিয়ে পৌঁছে যেতে পারে। উত্তরটি হল: শুরু অবস্থান থেকে সর্বোচ্চ দূরত্ব = 1, 2 বা 3 সহ সমস্ত ক্ষেত্র।

হ্যাশ টেবিল ব্যবহার করার সময় আপনাকে কেবলমাত্র প্রতিটি অ্যাক্সেসযোগ্য গেমের অবস্থা মূল্যায়ন করতে হবে (আমাদের উদাহরণস্বরূপ 25 গভীরতায় 3) একবার। হ্যাশ টেবিল ছাড়া আপনার একাধিকবার মূল্যায়ন করা দরকার, যার অর্থ গভীরতার স্তরের 25 এর পরিবর্তে 6125 মূল্যায়ন ations সর্বোত্তম: একবার আপনি যদি হ্যাশ টেবিল এন্ট্রি গণনা করেন তবে পরবর্তী সময়ে ধাপে আপনি এটি পুনরায় ব্যবহার করতে পারবেন ...

আপনি ইনক্রিমেন্টাল ডিপেনিং এবং আলফা-বিটা ছাঁটাই "কাট" সাবট্রিজগুলিও ব্যবহার করতে পারেন যা আরও গভীরতার সাথে অনুসন্ধানের জন্য উপযুক্ত নয়। দাবা জন্য এটি অনুসন্ধান নোডের সংখ্যা প্রায় 1% হ্রাস করে। : আলফা-বিটা কেঁটে সাফ একটি সংক্ষিপ্ত ভূমিকা যেমন একটি ভিডিও পাওয়া যাবে এখানে http://www.teachingtree.co/cs/watch?concept_name=Alpha-beta+Pruning

পরবর্তী গবেষণার জন্য একটি ভাল শুরু হ'ল http://chessprogramming.wikispaces.com/Search । পৃষ্ঠাটি দাবা সম্পর্কিত, তবে অনুসন্ধান এবং অপ্টিমাইজেশনের অ্যালগরিদমগুলি বেশ একই।

আরেকটি (তবে জটিল) এআই অ্যালগরিদম - এটি গেমটির জন্য আরও উপযুক্ত হবে - এটি হ'ল "সাময়িক পার্থক্য শিখুন"।

শুভেচ্ছা সহ

স্টিফান

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

--edit--

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

- সম্পাদনা # 2 -

আপনি যদি প্রতি 1 সেকেন্ডে আপনার সেরা চালগুলি পুনরায় গণনা করেন তবে আপনি আরও উচ্চ স্তরের প্ল্যানিং করার চেষ্টা করতে পারেন। আমি এর অর্থ কি? আপনি জানেন যে 1 সেকেন্ডে আপনি কতগুলি চালনা করতে পারেন। সুতরাং আপনি পৌঁছনীয় পজিশনের একটি তালিকা তৈরি করতে পারেন (উদাহরণস্বরূপ যদি এটি 1 সেকেন্ডে 3 পদক্ষেপ হয়, আপনার 25 টি পৌঁছনীয় পজিশন থাকবে)। তারপরে আপনি যেমন পরিকল্পনা করতে পারেন: "অবস্থানের এক্সে যান এবং একটি বোমা রাখুন"। অন্য কেউ পরামর্শ দিয়েছিল যে আপনি একটি "বিপদ" মানচিত্র তৈরি করতে পারেন, যা রাউটিং অ্যালগরিদমের জন্য ব্যবহৃত হয় (এক্স পজিশনে কীভাবে যাবেন? কোন পথে অগ্রাধিকার দেওয়া উচিত [বেশিরভাগ ক্ষেত্রে সম্ভাব্য কিছু পরিবর্তন থাকতে পারে])। এটি একটি বিশাল হ্যাশ টেবিলের সাথে তুলনায় কম স্মৃতিশক্তি, তবে কম অনুকূল ফলাফল দেয়। তবে এটি যেমন কম স্মৃতি ব্যবহার করে তা ক্যাচিং এফেক্টের কারণে এটি আরও দ্রুত হতে পারে (আপনার এল 1 / এল 2 মেমরি ক্যাশের আরও ভাল ব্যবহার)।

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

class Gamestate {
  int value;
  int bestmove;
  int moves[5];
};

#define MAX 1000000
Gamestate[MAX] tree;

int rootindex = 0;
int nextfree = 1;

প্রতিটি রাজ্যের একটি মূল্যায়ন "মান" থাকে এবং চলন্ত অবস্থায় "ট্রি" এর মধ্যে অ্যারে সূচকটি সংরক্ষণ করে (0 = থামাতে, 1 = উপরে, 2 = ডান, 3 = নীচে, 4 = বাম) চলার সময় পরবর্তী গেমস্টেটগুলির লিঙ্ক থাকে [0 ] সরানো [4]। আপনার গাছটি পুনরাবৃত্তভাবে তৈরি করতে এটি এর মতো দেখতে পারে:

const int dx[5] = { 0,  0, 1, 0, -1 };
const int dy[5] = { 0, -1, 0, 1,  0 };

int search(int x, int y, int current_state, int depth_left) {
  // TODO: simulate bombs here...
  if (died) return RESULT_DEAD;

  if (depth_left == 0) {
    return estimate_result();
  }

  int bestresult = RESULT_DEAD;

  for(int m=0; m<5; ++m) {
    int nx = x + dx[m];
    int ny = y + dy[m];
    if (m == 0 || is_map_free(nx,ny)) {
      int newstateindex = nextfree;
      tree[current_state].move[m] = newstateindex ;
      ++nextfree;

      if (newstateindex >= MAX) { 
        // ERROR-MESSAGE!!!
      }

      do_move(m, &undodata);
      int result = search(nx, ny, newstateindex, depth_left-1);
      undo_move(undodata);

      if (result == RESULT_DEAD) {
        tree[current_state].move[m] = -1; // cut subtree...
      }

      if (result > bestresult) {
        bestresult = result;
        tree[current_state].bestmove = m;
      }
    }
  }

  return bestresult;
}

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


0

এটা কি ভাবতে সাহায্য করবে যে প্রত্যেকে পালা করে?

প্রযুক্তিগতভাবে, অন্তর্নিহিত সিস্টেমে এগুলি আসলে হয়, তবে যেহেতু জিনিসগুলি আন্তঃবিভক্ত এবং ওভারল্যাপ করা হয় তাই এগুলি একই সাথে চলমান প্রদর্শিত হয়।

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


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