নতুন এআই তৈরি করতে - কোথায় শুরু করবেন? [বন্ধ]


58

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


1
আমি যে পাঠ্যক্রমটি তৈরি করেছি তা থেকে এআই-এ আমার স্লাইডগুলি এখানে রয়েছে: sol.gfxile.net/gpc/05ai.pdf
জারি কম্প্পা

4
যদি বিবৃতি। তাদের মধ্যে অনেক.
মিথ্যাচারিত কাবিয়ার

উত্তর:


34

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

একটি সম্পূর্ণ গেম এআই নির্মাণের একটি ব্যবহারিক গাইড: খণ্ড I


27

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

আপনি আক্ষরিকভাবে এই জাতীয় কিছু নিয়ে যেতে পারেন:

if( targetInRange == true )  
{
    FireAtTarget();
}
else if( bulletComingTowardsMe == true )
{
    MoveAwayFromBullet();
}
else
{
    WanderAroundAimlessly();
}

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

  • চারিদিকে ঘোরা
  • আগুন
  • পলায়ন

এবং কখন এই ক্রিয়া ঘটতে পারে?

  • এদিক ওদিক ঘোরাফেরা করুন - আর কিছু করার নেই
  • আগুন - আমি যখন শত্রুকে চিহ্নিত করি spot
  • পালাতে হবে - যখন আমি স্বাস্থ্য কম / কখন আমি আগুন নিচ্ছি / ইত্যাদি

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

আরও এখানে পাওয়া যাবে: http://www.red3d.com/cwr/steer/
এবং আমি অবশ্যই উদাহরণস্বরূপ ম্যাট বাকল্যান্ডের বই প্রোগ্রামিং গেম এআই সুপারিশ করব , বিশেষত আপনি যখন শুরু করছেন।

আপনি যখন এগুলির সাথে সত্যিই স্বাচ্ছন্দ্য বোধ করবেন তখন আমি রাজ্য এবং কৌশল প্যাটার্নগুলি দেখার পরামর্শ দেব would

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

আশা করি এইটি কাজ করবে!


সম্পাদনা সাথীর জন্য @ ফুয়ু চিয়ার্স :)
রে ডেই

9

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


লোকেরা গেমগুলিতে খোলামেলা ব্যবহার করে না এটি সিমুলেশনের জন্য আরও বেশি?
jle

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

ফ্রিঅরিওন তার কৌশলগত যুদ্ধ ইঞ্জিনে ওপেনস্টিয়ার ব্যবহার করছে।
মাইক স্ট্রোবেল

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

9

আপনি কৌশল ডিজাইনের ধরণটি দেখতে চাইতে পারেন । জাহাজগুলি কীভাবে আচরণ করবে সে সম্পর্কে মূলত একই কৌশল রচনা করুন:

  • লক্ষ্য কাছাকাছি যান
  • আক্রমণ লক্ষ্য
  • লক্ষ্য থেকে পালাও
  • পাওয়ার আপগুলির দিকে এগিয়ে যান
  • পাওয়ার আপগুলি ব্যবহার করুন

তারপরে আপনি এই কৌশলগুলির মধ্যে চয়ন করতে লজিক (রাষ্ট্র মেশিন) ব্যবহার করবেন। উদাহরণস্বরূপ: যদি জাহাজের ieldালগুলি 50% এর নিচে নেমে আসে, তবে লক্ষ্য থেকে পালিয়ে যান এবং পাওয়ার আপ / নিরাময়ের আইটেমগুলি এবং আরও কিছুদূর এগিয়ে যান।


1
সুতরাং প্রতিবার গেম লুপের মাধ্যমে, সিদ্ধান্ত নেয় যে সেই 'কৌশলগুলির মধ্যে কোনটি অগ্রাধিকার নেয় এবং তারপরে এটি কার্যকর করে?
jle

পছন্দ করুন সুতরাং আপনার প্রতিটি কৌশল আপনার কোডকে সংগঠিত রেখে নিজের শ্রেণিতে বিভক্ত হবে।
ব্রায়ান ডেনি 21

7

আমি আপনাকে সুপারিশ করতে পারি যে আপনি ইয়ান মিলিংটন দ্বারা গেমস কৃত্রিম বুদ্ধিমত্তা বইটি কিনুন - এটি দুর্দান্ত! :) http://www.ai4g.com/

উত্স কোডটি গিথুব - এমআইটি লাইসেন্সে রয়েছে।

অবশ্যই আপনি যদি সি / সি ++ ব্যবহার না করেন তবে এটি কম প্রাসঙ্গিক হতে পারে।

কিন্তু কৃত্রিম বোকামি / বুদ্ধি বিশ্বের সত্যিই একটি দুর্দান্ত ভূমিকা।

আপনি যে জিনিসগুলি এর থেকে প্রয়োজন তা হ'ল স্টিয়ারিং এবং স্টেট মেশিনগুলি। নতুনদের জন্য.


2

আপনি যদি স্টেট মেশিনে যান তবে কিছু ব্যবহারিক পরামর্শ: মেগাস্টেট থেকে সাবধান থাকুন।

এটি "পালানো" রাষ্ট্রের জন্য প্রলুব্ধ করে যা পালিয়ে যাওয়ার জন্য একটি অবস্থান নির্ধারণ করে, উচ্চ লক্ষ্য গতি নির্ধারণ করে, সমস্ত লক্ষ্যগুলি সাফ করে ইত্যাদি etc. এর পরিবর্তে অনেকগুলি স্টেট মেশিন রাখা প্রতিটি এক বা কয়েকটি জাহাজের নিয়ন্ত্রণকে পরিচালনা করা অনেক ভাল - যেমন একটি স্টেট মেশিন যা লক্ষ্য অবস্থান নির্বাচন করে পরিচালনা করে, বন্দুক ইত্যাদি পরিচালনা করে এমন একটি

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

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


2

গেম এআই এর জন্য আচরণগত গণিত

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


1

এআই কীভাবে তৈরি করবেন এটি একটি জটিল প্রশ্ন, কারণ এটি অনেকগুলি অংশ নিয়ে গঠিত:

  • আপনি আপনার এআই এর জন্য একটি সাধারণ আর্কিটেকচার / দৃষ্টান্ত বেছে নিয়েছেন। এটি স্ক্রিপ্ট উপর ভিত্তি করে? এটি পরিকল্পনা ব্যবহার করবে? এটি কি সাধারণ এফএসএম বা আপনি বিটি পছন্দ করেন?
  • তারপরে, আপনি নির্দিষ্ট প্রয়োগকরণ / সরঞ্জামগুলির সেট সহ এই দৃষ্টান্তগুলি প্রয়োগ করেন।
  • এখন, আপনি গেম-ডিজাইনের পছন্দগুলি রেখে গেছেন, যেমন আপনার আর্কিটেকচারটি ব্যবহার করবে এমন আচরণগুলির কথা ভাবতে হবে।

অন্যান্য পোস্টারগুলি দুর্দান্ত বইয়ের পরামর্শ দেয় এবং আমি জ্যাকোমি দ্বারা প্রস্তাবিত এআই 4 গেমসকে খুব পছন্দ করি, যদিও এটি অংশগুলিতে বেশ সাধারণ (অনেকগুলি বইয়ের মতো, যা অবশ্যই বোধগম্য)।

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

  • আমি মনে করি গেম (এআই) কোডিং সম্পর্কে জানার সেরা উপায়টি খুব ভাল, চলমান কোডের দিকে নজর দেওয়া। সুতরাং, ohloh.net এবং গিথুব এক্সপ্লোর করুন এবং বিদ্যমান FOSS প্রকল্পগুলি সন্ধান করুন!
  • অবশ্যই, আপনি নির্বাচন করতে পারবেন হার্ড অংশ এবং একটি বিদ্যমান (কিন্তু সাধারণ) খেলা এবং খেলার। প্রকৌশলটিকে আচরণের বিপরীত করার চেষ্টা করুন এবং "আমি এটি কীভাবে ডিজাইন করব?"। অবশ্যই, ইঙ্গিতগুলি সর্বদা সহায়তা করে এবং সম্ভবত এই কারণেই আপনি এখানে গেমদেব.এসইতে জিজ্ঞাসা করেছিলেন!
  • এর মধ্যে কিছু হ'ল গেমমেকার ফোরামগুলির মধ্যে বিদ্যমান শ্যুটার গেমগুলির দিকে নজর দেওয়া! আপনি প্রচুর সরল স্ক্রিপ্ট খুঁজে পেতে পারেন যা কৌশলটি করবে! ;)

1

আপনি গেমটি খেললে আপনি কী করবেন তা ভেবে দেখুন। নিজেকে কিছু প্রশ্ন জিজ্ঞাসা করুন।

  • আমার কী তথ্য দরকারসিদ্ধান্ত নিতে ?
  • আমি কখন পরিবর্তন নিয়ে প্রতিক্রিয়া জানাব?
  • এই বিশেষ খেলার সেশনে আমার "দীর্ঘমেয়াদী" লক্ষ্যগুলি কী কী?

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

তারপরে, 500 মিলিসেকেন্ডের পরে, আমি এটি আবার করব।

এটির কোন শেখার ক্ষমতা বা কিছুই নেই তবে পর্যাপ্ত টুইটের মাধ্যমে এটি বেশ দৃinc়প্রত্যয়ী হতে পারে, যা এটি সত্যই গুরুত্বপূর্ণ

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