የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

በጨዋታዎች ውስጥ ስለ አርቴፊሻል ኢንተለጀንስ አንዳንድ አስደሳች ነገሮች አጋጥሞኛል። ቀላል ምሳሌዎችን በመጠቀም ስለ AI መሰረታዊ ነገሮችን በማብራራት እና በውስጡ ምቹ ልማቱን እና ዲዛይን ለማድረግ ብዙ ጠቃሚ መሳሪያዎች እና ዘዴዎች አሉ። እንዴት፣ የት እና መቼ እንደሚጠቀሙባቸው እንዲሁ አለ።

አብዛኛዎቹ ምሳሌዎች የተጻፉት በpseudocode ነው, ስለዚህ የላቀ የፕሮግራም እውቀት አያስፈልግም. በቆራጩ ስር 35 የጽሑፍ ሉሆች ከሥዕሎች እና ከጊፍዎች ጋር አሉ ፣ እና ዝግጁ ይሁኑ።

UPD ይቅርታ እጠይቃለሁ፣ ነገር ግን የራሴን የራሴን ትርጉም በሀበሬ ላይ አድርጌያለሁ ታካሚ ዜሮ. የእሱን ስሪት ማንበብ ይችላሉ እዚህ, ግን በሆነ ምክንያት ጽሑፉ አልፏል (ፍለጋውን ተጠቀምኩ, ግን የሆነ ችግር ተፈጥሯል). እና ለጨዋታ እድገት በተዘጋጀ ጦማር ላይ እየጻፍኩ ስለሆነ፣ የትርጉም ስሪቴን ለተመዝጋቢዎች ለመተው ወሰንኩ (አንዳንድ ነጥቦች በተለየ መንገድ ተቀርፀዋል ፣ አንዳንዶቹ በገንቢዎች ምክር ሆን ብለው ተጥለዋል)።

AI ምንድን ነው?

ጨዋታ AI የሚያተኩረው አንድ ነገር በሚገኝበት ሁኔታ ላይ በመመስረት ምን አይነት ተግባራት ማከናወን እንዳለበት ነው። ይህ በተለምዶ “የማሰብ ችሎታ ያለው ወኪል” አስተዳደር ተብሎ ይጠራል፣ ወኪሉ የተጫዋች ገጸ ባህሪ፣ ተሽከርካሪ፣ ቦቲ፣ ወይም አንዳንድ ጊዜ የበለጠ ረቂቅ የሆነ ነገር፡ አጠቃላይ የህጋዊ አካላት ወይም ስልጣኔ ነው። በእያንዳንዱ ሁኔታ አካባቢውን አይቶ ውሳኔ መስጠት እና በእነሱ መሰረት መተግበር ያለበት ነገር ነው. ይህ ስሜት/አስተሳሰብ/አክቱ ዑደት ይባላል፡-

  • ስሜት፡ ተወካዩ በባህሪው ላይ ተጽእኖ ሊያሳድሩ ስለሚችሉ ነገሮች (በአቅራቢያ ያሉ ስጋቶች፣ የሚሰበሰቡ እቃዎች፣ የሚዳሰሱባቸው ቦታዎች) ስለአካባቢው ነገሮች መረጃን ያገኛል ወይም ይቀበላል።
  • አስቡ፡ ወኪሉ እንዴት ምላሽ መስጠት እንዳለበት ይወስናል (እቃዎችን ለመሰብሰብ በቂ አስተማማኝ መሆኑን ወይም መጀመሪያ መታገል/ መደበቅ እንዳለበት ግምት ውስጥ ያስገባል)።
  • ህግ: ወኪሉ ያለፈውን ውሳኔ ተግባራዊ ለማድረግ ድርጊቶችን ይፈጽማል (ወደ ጠላት ወይም ነገር መንቀሳቀስ ይጀምራል).
  • ... አሁን ሁኔታው ​​በገጸ ባህሪያቱ ድርጊት ተለውጧል, ስለዚህ ዑደቱ በአዲስ ውሂብ ይደግማል.

AI በ loop Sense ክፍል ላይ ያተኩራል። ለምሳሌ ራሳቸውን የቻሉ መኪኖች የመንገዱን ፎቶ ያነሳሉ፣ ከራዳር እና ሊዳር ዳታ ጋር ያዋህዳሉ እና ይተረጉሟቸዋል። ይህ በተለምዶ በማሽን መማሪያ ሲሆን ይህም ገቢ ውሂብን በማስኬድ እና ትርጉም ይሰጣል, እንደ "ሌላ መኪና 20 ያርድ ቀድመህ አለ" የሚሉ የትርጉም መረጃዎችን በማውጣት ነው. የምደባ ችግሮች የሚባሉት እነዚህ ናቸው።

ጨዋታዎች መረጃ ለማውጣት ውስብስብ ስርዓት አያስፈልጋቸውም ምክንያቱም አብዛኛው መረጃ አስቀድሞ የእሱ ዋና አካል ነው። ወደፊት ጠላት እንዳለ ለማወቅ የምስል ማወቂያ ስልተ ቀመሮችን ማስኬድ አያስፈልግም - ጨዋታው አስቀድሞ ያውቃል እና መረጃውን በቀጥታ በውሳኔ አሰጣጥ ሂደት ውስጥ ይመገባል። ስለዚህ የዑደቱ ስሜት ክፍል ብዙውን ጊዜ ከማሰብ እና ተግባራዊ ክፍል በጣም ቀላል ነው።

የጨዋታ AI ገደቦች

AI መከበር ያለባቸው በርካታ ገደቦች አሉት።

  • AI የማሽን መማሪያ አልጎሪዝም እንደነበረው አስቀድሞ ማሰልጠን አያስፈልገውም። በአስር ሺዎች የሚቆጠሩ ተጫዋቾችን ለመከታተል እና ከእነሱ ጋር ለመጫወት ምርጡን መንገድ ለመማር በእድገት ጊዜ የነርቭ አውታረ መረብ መፃፍ ምንም ትርጉም የለውም። ለምን? ምክንያቱም ጨዋታው አልተለቀቀም እና ተጫዋቾች የሉም።
  • ጨዋታው አስደሳች እና ፈታኝ መሆን አለበት፣ ስለዚህ ወኪሎች በሰዎች ላይ ምርጡን አቀራረብ ማግኘት የለባቸውም።
  • ተጫዋቾቹ ከእውነተኛ ሰዎች ጋር እየተጫወቱ እንደሆነ እንዲሰማቸው ወኪሎች እውነተኛ ሊመስሉ ይገባል። የአልፋጎ ፕሮግራም ከሰዎች በልጦ ነበር፣ ነገር ግን የተመረጡት እርምጃዎች ከጨዋታው ባህላዊ ግንዛቤ በጣም የራቁ ነበሩ። ጨዋታው የሰውን ተቃዋሚ አስመስሎ ከሆነ ይህ ስሜት መኖር የለበትም። ስልተ ቀመር ከተገቢው ውሳኔ ይልቅ አሳማኝ ውሳኔዎችን እንዲያደርግ መለወጥ ያስፈልገዋል.
  • AI በእውነተኛ ጊዜ መስራት አለበት። ይህ ማለት አልጎሪዝም ውሳኔዎችን ለማድረግ ለረጅም ጊዜ የሲፒዩ አጠቃቀምን በብቸኝነት ሊቆጣጠር አይችልም ማለት ነው። 10 ሚሊሰከንዶች እንኳን በጣም ረጅም ነው፣ ምክንያቱም አብዛኛዎቹ ጨዋታዎች ሁሉንም ሂደቶች ለመስራት እና ወደ ቀጣዩ የግራፊክስ ፍሬም ለመሄድ ከ16 እስከ 33 ሚሊሰከንዶች ብቻ ያስፈልጋቸዋል።
  • በሐሳብ ደረጃ፣ ቢያንስ የስርአቱ ክፍል በመረጃ የተደገፈ መሆን አለበት፣ ስለዚህም ኮድ ሰጪ ያልሆኑ ለውጦችን እንዲያደርጉ እና ማስተካከያዎች በፍጥነት እንዲከናወኑ።

ሙሉውን ስሜት/አስተሳሰብ/አክሽን የሚሸፍኑ የ AI አቀራረቦችን እንይ።

መሰረታዊ ውሳኔዎችን ማድረግ

በጣም ቀላል በሆነው ጨዋታ እንጀምር - ፖንግ. ግብ፡ ኳሱ አልፈው ከመብረር ይልቅ ኳሱ እንዲያርፍበት መቅዘፊያውን ያንቀሳቅሱት። ኳሱን ካልመታህ የምትሸነፍበት እንደ ቴኒስ ነው። እዚህ ኤአይኤ በአንፃራዊነት ቀላል ስራ አለው - መድረኩን በየትኛው አቅጣጫ እንደሚንቀሳቀስ መወሰን።

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

ሁኔታዊ መግለጫዎች

በፖንግ ውስጥ ላለው AI ፣ በጣም ግልፅ የሆነው መፍትሄ ሁል ጊዜ መድረክን ከኳሱ በታች ለማስቀመጥ መሞከር ነው።

ለዚህ ቀላል ስልተ ቀመር፣ በpseudocode የተጻፈ፡-

ጨዋታው በሚሰራበት ጊዜ እያንዳንዱ ፍሬም/ዝማኔ፡-
ኳሱ ከመቅዘፊያው በስተግራ ከሆነ፡-
መቅዘፊያ ወደ ግራ ማንቀሳቀስ
አለበለዚያ ኳሱ ከመቅዘፊያው በስተቀኝ ከሆነ፡-
መቅዘፊያውን ወደ ቀኝ ያንቀሳቅሱ

የመሳሪያ ስርዓቱ በኳሱ ፍጥነት የሚንቀሳቀስ ከሆነ ይህ በፖንግ ውስጥ ለ AI ተስማሚ ስልተ ቀመር ነው። ብዙ መረጃ ከሌለ እና ለተወካዩ ሊሆኑ የሚችሉ እርምጃዎች ከሌለ ማንኛውንም ነገር ማወሳሰብ አያስፈልግም።

ይህ አካሄድ በጣም ቀላል ስለሆነ አጠቃላይ ስሜት/አስተሳሰብ/አክቱ ዑደቱ በቀላሉ የሚታይ አይደለም። ግን እዚያ አለ፡-

  • የ Sense ክፍል መግለጫዎች ከሆነ በሁለት ውስጥ ነው. ጨዋታው ኳሱ የት እንዳለ እና መድረኩ የት እንዳለ ያውቃል፣ ስለዚህ AI ያንን መረጃ ይፈልገዋል።
  • የአስተሳሰብ ክፍል መግለጫዎች ከሆነ በሁለቱ ውስጥም ተካትቷል። በዚህ ጉዳይ ላይ እርስ በርስ የሚደጋገፉ ሁለት መፍትሄዎችን ያካተቱ ናቸው. በውጤቱም, ከሶስት ድርጊቶች ውስጥ አንዱ ተመርጧል - መድረኩን ወደ ግራ ያንቀሳቅሱት, ወደ ቀኝ ያንቀሳቅሱት, ወይም ቀድሞውኑ በትክክል ከተቀመጠ ምንም ነገር አያድርጉ.
  • የሕጉ ክፍል የሚገኘው በMove Paddle Left እና Move Paddle Right መግለጫዎች ውስጥ ነው። በጨዋታው ንድፍ ላይ በመመስረት, መድረክን በቅጽበት ወይም በተወሰነ ፍጥነት ማንቀሳቀስ ይችላሉ.

እንደነዚህ ያሉት አቀራረቦች ምላሽ ሰጪ ተብለው ይጠራሉ - ለአለም ወቅታዊ ሁኔታ ምላሽ የሚሰጡ እና እርምጃ የሚወስዱ ቀላል ህጎች (በዚህ ሁኔታ በኮዱ ውስጥ ያሉ መግለጫዎች ካሉ) አሉ።

የውሳኔ ዛፍ

የፖንግ ምሳሌ በእውነቱ የውሳኔ ዛፍ ተብሎ ከሚጠራው መደበኛ AI ጽንሰ-ሀሳብ ጋር እኩል ነው። አልጎሪዝም ወደ "ቅጠል" ለመድረስ ያልፋል - ምን እርምጃ መውሰድ እንዳለበት ውሳኔ.

ለመድረክ ስልተ ቀመር የውሳኔውን ዛፍ የማገጃ ዲያግራም እንሥራ፡-

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

እያንዳንዱ የዛፉ ክፍል መስቀለኛ መንገድ ተብሎ ይጠራል - AI እንደነዚህ ያሉትን መዋቅሮች ለመግለጽ የግራፍ ንድፈ ሐሳብ ይጠቀማል. ሁለት ዓይነት አንጓዎች አሉ-

  • የውሳኔ አንጓዎች፡- እያንዳንዱ አማራጭ እንደ የተለየ መስቀለኛ መንገድ በሚወከልበት አንዳንድ ሁኔታዎች ላይ በመመስረት በሁለት አማራጮች መካከል መምረጥ።
  • የመጨረሻ አንጓዎች፡- የመጨረሻውን ውሳኔ የሚወክል የመፈጸም ተግባር።

አልጎሪዝም የሚጀምረው ከመጀመሪያው መስቀለኛ መንገድ (የዛፉ "ሥር") ነው. ወደ የትኛው የህፃን ኖድ መሄድ እንዳለበት ይወስናል ወይም በመስቀለኛ መንገድ ውስጥ የተከማቸውን እና መውጫውን ያከናውናል.

ባለፈው ክፍል ውስጥ ከተገለጹት መግለጫዎች ጋር ተመሳሳይ ሥራ የውሳኔ ዛፍ ቢሠራ ምን ጥቅም አለው? እያንዳንዱ ውሳኔ አንድ ሁኔታ ብቻ እና ሁለት ሊሆኑ የሚችሉ ውጤቶች ያሉት እዚህ አጠቃላይ ስርዓት አለ. ይህ ገንቢው በዛፍ ውስጥ ያሉ ውሳኔዎችን የሚወክሉ መረጃዎችን ሃርድ-ኮድ ሳያስፈልገው AI እንዲፈጥር ያስችለዋል። በጠረጴዛ መልክ እናቅርበው፡-

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

በኮዱ ጎን ሕብረቁምፊዎችን ለማንበብ ስርዓት ያገኛሉ. ለእያንዳንዳቸው መስቀለኛ መንገድ ይፍጠሩ, በሁለተኛው አምድ ላይ በመመስረት የውሳኔ አመክንዮ እና በሦስተኛው እና በአራተኛው አምዶች ላይ የተመሰረቱ የልጆች ኖዶችን ያገናኙ. አሁንም ሁኔታዎችን እና ድርጊቶችን መርሃ ግብር ማዘጋጀት ያስፈልግዎታል, አሁን ግን የጨዋታው መዋቅር የበለጠ ውስብስብ ይሆናል. እዚህ ተጨማሪ ውሳኔዎችን እና ድርጊቶችን ጨምረህ ከዛም የዛፍ ፍቺን የጽሁፍ ፋይል በቀላሉ በማስተካከል መላውን AI አብጅ። በመቀጠል ፋይሉን ወደ ጨዋታ ዲዛይነር ያስተላልፋሉ, ጨዋታውን ሳያጠናቅቅ ወይም ኮዱን ሳይቀይር ባህሪውን ሊለውጥ ይችላል.

የውሳኔ ዛፎች ከትልቅ ምሳሌዎች (ለምሳሌ ID3 አልጎሪዝም በመጠቀም) በራስ ሰር ሲገነቡ በጣም ጠቃሚ ናቸው። ይህ በተገኘው መረጃ መሰረት ሁኔታዎችን ለመከፋፈል ውጤታማ እና ከፍተኛ አፈጻጸም መሳሪያ ያደርጋቸዋል። ነገር ግን፣ ወኪሎች ድርጊቶችን እንዲመርጡ ከቀላል ስርዓት አልፈን እንሄዳለን።

ሁኔታዎች

ቅድመ-የተፈጠሩ ሁኔታዎችን እና ድርጊቶችን የሚጠቀም የውሳኔ ዛፍ ስርዓትን ተንትነናል። የ AI ንድፍ የሚሠራው ሰው ዛፉን በፈለገው መንገድ ማደራጀት ይችላል, ነገር ግን አሁንም ሁሉንም ፕሮግራም ባዘጋጀው ኮዴር ላይ መታመን አለበት. ንድፍ አውጪው የራሳቸውን ሁኔታዎች ወይም ድርጊቶች እንዲፈጥሩ መሣሪያዎቹን ብንሰጠውስ?

የፕሮግራም አድራጊው ለሁኔታዎች ኮድ መጻፍ የለበትም Is Ball Left Of Paddle and Is Ball Right Of Paddle, ንድፍ አውጪው እነዚህን እሴቶች ለመፈተሽ ሁኔታዎችን የሚጽፍበት ስርዓት መፍጠር ይችላል. ከዚያ የውሳኔው ዛፍ መረጃ እንደዚህ ይመስላል

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

ይህ በመሠረቱ ከመጀመሪያው ሠንጠረዥ ጋር ተመሳሳይ ነው ፣ ግን በራሳቸው ውስጥ ያሉት መፍትሄዎች የራሳቸው ኮድ አላቸው ፣ ልክ እንደ መግለጫው ሁኔታዊ ክፍል። በኮዱ በኩል፣ ይህ በሁለተኛው አምድ ላይ ለውሳኔ አንጓዎች ይነበባል፣ ነገር ግን ለመፈጸም የተለየ ሁኔታ ከመፈለግ ይልቅ (ቦል ግራው ኦፍ ፓድል ነው) ሁኔታዊ መግለጫውን ይገመግማል እና እውነት ወይም ሐሰት ይመልሳል። ይህ የሚደረገው የሉአ ወይም አንጀክሪፕት ስክሪፕት ቋንቋን በመጠቀም ነው። እነሱን በመጠቀም አንድ ገንቢ በጨዋታው ውስጥ ያሉትን ነገሮች (ኳስ እና መቅዘፊያ) መውሰድ እና በስክሪፕቱ ውስጥ የሚገኙ ተለዋዋጮችን መፍጠር ይችላል (ball.position)። እንዲሁም፣ የስክሪፕት አጻጻፍ ቋንቋ ከC++ የበለጠ ቀላል ነው። ሙሉ የማጠናቀር ደረጃን አይፈልግም, ስለዚህ የጨዋታ አመክንዮዎችን በፍጥነት ለማስተካከል ተስማሚ ነው እና "ኮድ ያልሆኑ" አስፈላጊ ተግባራትን እራሳቸው እንዲፈጥሩ ያስችላቸዋል.

ከላይ ባለው ምሳሌ, የስክሪፕት ቋንቋው ሁኔታዊ መግለጫውን ለመገምገም ብቻ ነው, ግን ለድርጊቶችም ሊያገለግል ይችላል. ለምሳሌ፣ የMove Paddle Right ውሂቡ የስክሪፕት መግለጫ ሊሆን ይችላል (ball.position.x += 10)። ስለዚህ ድርጊቱ በስክሪፕቱ ውስጥም ይገለጻል፣ የMove Paddle Right ፕሮግራም ማድረግ ሳያስፈልግ።

የበለጠ መሄድ እና ሙሉውን የውሳኔ ዛፍ በስክሪፕት ቋንቋ መጻፍ ይችላሉ። ይህ በሃርድ ኮድ ሁኔታዊ መግለጫዎች መልክ ኮድ ይሆናል ፣ ግን እነሱ በውጫዊ ስክሪፕት ፋይሎች ውስጥ ይቀመጣሉ ፣ ማለትም ፣ አጠቃላይ ፕሮግራሙን ሳያጠናቅቁ ሊለወጡ ይችላሉ። የተለያዩ የ AI ምላሾችን በፍጥነት ለመፈተሽ ብዙውን ጊዜ በጨዋታው ወቅት የስክሪፕት ፋይሉን ማርትዕ ይችላሉ።

የክስተት ምላሽ

ከላይ ያሉት ምሳሌዎች ለፖንግ ፍጹም ናቸው. እነሱ የ Sense/Think/Act ዑደትን ያለማቋረጥ ያካሂዳሉ እና የአለምን የቅርብ ጊዜ ሁኔታ መሰረት አድርገው ይሰራሉ። ነገር ግን ይበልጥ ውስብስብ በሆኑ ጨዋታዎች ውስጥ ለግለሰብ ክስተቶች ምላሽ መስጠት አለብዎት, እና ሁሉንም ነገር በአንድ ጊዜ አይገመግሙም. በዚህ ጉዳይ ላይ ፖንግ ቀድሞውኑ መጥፎ ምሳሌ ነው. ሌላ እንምረጥ።

አስቡት ተኳሽ ጠላቶቹ ተጫዋቹን እስኪያዩ ድረስ እንቅስቃሴ አልባ ሲሆኑ ከዚያ በኋላ እንደ “ልዩነት” ይንቀሳቀሳሉ-አንድ ሰው ወደ “ችኮላ” ይሮጣል ፣ አንድ ሰው ከሩቅ ያጠቃል። አሁንም መሰረታዊ ምላሽ ሰጪ ስርዓት ነው - "ተጫዋች ከታየ አንድ ነገር ያድርጉ" - ግን ምክንያታዊ በሆነ መልኩ በተጫዋች የታየ ክስተት እና ምላሽ (ምላሽ ይምረጡ እና ያስፈጽሙት) ሊከፋፈል ይችላል።

ይህ ወደ ስሜት/አስተሳሰብ/አክቱ ዑደት ይመልሰናል። አይአይ ተጫዋቹን አይቶ እንደሆነ እያንዳንዱን ፍሬም የሚፈትሽ የ Sense ክፍል ኮድ ማድረግ እንችላለን። ካልሆነ ምንም ነገር አይከሰትም, ነገር ግን ካየ, የተጫዋች የታየ ክስተት ተፈጠረ. ኮዱ "ተጫዋቹ የታየ ክስተት ሲከሰት ያድርጉ" የሚል የተለየ ክፍል ይኖረዋል የአስተሳሰብ እና ድርጊት ክፍሎችን ለመቅረፍ የሚያስፈልግዎ ምላሽ። ስለዚህ ለተጫዋቹ ለታየው ክስተት ምላሽን ያዘጋጃሉ-ለ"የሚጣደፉ" ገፀ ባህሪ - ChargeAndAttack ፣ እና ለተኳሹ - HideAndSnipe። እነዚህ ግንኙነቶች እንደገና መሰብሰብ ሳያስፈልግ ለፈጣን አርትዖት በመረጃ ፋይሉ ውስጥ ሊፈጠሩ ይችላሉ። የስክሪፕት ቋንቋ እዚህም መጠቀም ይቻላል።

አስቸጋሪ ውሳኔዎችን ማድረግ

ምንም እንኳን ቀላል የምላሽ ስርዓቶች በጣም ኃይለኛ ቢሆኑም በቂ ያልሆኑባቸው ብዙ ሁኔታዎች አሉ. አንዳንድ ጊዜ ተወካዩ አሁን እያደረገ ባለው ነገር ላይ በመመስረት የተለያዩ ውሳኔዎችን ማድረግ ያስፈልግዎታል፣ ነገር ግን ይህንን እንደ ቅድመ ሁኔታ መገመት ከባድ ነው። አንዳንድ ጊዜ በውሳኔ ዛፍ ወይም ስክሪፕት ውስጥ እነሱን በብቃት ለመወከል በጣም ብዙ ሁኔታዎች አሉ። አንዳንድ ጊዜ በሚቀጥለው ደረጃ ላይ ከመወሰንዎ በፊት ሁኔታው ​​እንዴት እንደሚለወጥ አስቀድመው መገምገም ያስፈልግዎታል. እነዚህን ችግሮች ለመፍታት የበለጠ የተራቀቁ አካሄዶች ያስፈልጋሉ።

የመጨረሻ ግዛት ማሽን

ፊኒት ስቴት ማሽን ወይም FSM (finite state machine) ወኪላችን በአሁኑ ጊዜ ከበርካታ ሊሆኑ ከሚችሉ ግዛቶች በአንዱ ውስጥ እንደሚገኝ እና ከአንዱ ግዛት ወደ ሌላ መሸጋገር እንደሚችል የሚናገርበት መንገድ ነው። እንደዚህ ያሉ ግዛቶች የተወሰነ ቁጥር አሉ-ስለዚህ ስሙ. ከህይወት የተሻለው ምሳሌ የትራፊክ መብራት ነው። በተለያዩ ቦታዎች ላይ የተለያዩ የብርሃን ቅደም ተከተሎች አሉ, ግን መርሆው አንድ ነው - እያንዳንዱ ግዛት አንድ ነገርን ይወክላል (ማቆም, መራመድ, ወዘተ.). የትራፊክ መብራት በማንኛውም ጊዜ በአንድ ግዛት ውስጥ ብቻ ነው, እና በቀላል ህጎች መሰረት ከአንዱ ወደ ሌላው ይንቀሳቀሳል.

በጨዋታዎች ውስጥ ከኤንፒሲዎች ጋር ተመሳሳይ ታሪክ ነው። ለምሳሌ፣ ከሚከተሉት ግዛቶች ጋር ጠባቂ እንውሰድ፡-

  • ጥበቃ ማድረግ.
  • ማጥቃት።
  • መሸሽ።

እና ሁኔታውን ለመለወጥ እነዚህ ሁኔታዎች-

  • ጠባቂው ጠላትን ካየ, ያጠቃዋል.
  • ጠባቂው ቢያጠቃው ግን ጠላትን ካላየ ወደ ፓትሮል ይመለሳል።
  • ጠባቂው ቢያጠቃው ግን ክፉኛ ከቆሰለ ይሸሻል።

እንዲሁም ከአሳዳጊ ግዛት ተለዋዋጭ እና የተለያዩ ቼኮች ጋር ከሆነ-መግለጫዎችን መጻፍ ይችላሉ-በአቅራቢያ ጠላት አለ ፣ የ NPC የጤና ደረጃ ምንድ ነው ፣ ወዘተ. ጥቂት ተጨማሪ ግዛቶችን እንጨምር።

  • ሾል ፈትነት - በፓትሮል መካከል.
  • መፈለግ - የታየው ጠላት ሲጠፋ.
  • እርዳታ ማግኘት - ጠላት ሲታወቅ, ግን ብቻውን ለመዋጋት በጣም ጠንካራ ነው.

ለእያንዳንዳቸው ምርጫው ውስን ነው - ለምሳሌ, ጠባቂው ዝቅተኛ ጤንነት ካለው የተደበቀ ጠላት ለመፈለግ አይሄድም.

ለነገሩ፣ ትልቅ የ"ifs" ዝርዝር አለ ፣ ያ "በጣም አስቸጋሪ ሊሆን ይችላል፣ስለዚህ በግዛቶች መካከል የሚደረጉ ለውጦችን በአእምሯችን እንድንይዝ የሚያስችል ዘዴን መደበኛ ማድረግ አለብን። ይህንን ለማድረግ ሁሉንም ግዛቶች ግምት ውስጥ እናስገባለን, እና በእያንዳንዱ ግዛት ስር ለእነርሱ አስፈላጊ ከሆኑ ሁኔታዎች ጋር ወደ ሌሎች ግዛቶች ሁሉንም ሽግግሮች በዝርዝር እንጽፋለን.

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

ይህ የስቴት ሽግግር ሰንጠረዥ ነው - ኤፍኤስኤምን ለመወከል አጠቃላይ መንገድ። ዲያግራም እንሳል እና የNPC ባህሪ እንዴት እንደሚቀየር የተሟላ አጠቃላይ እይታን እናገኝ።

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

ስዕሉ አሁን ባለው ሁኔታ ላይ በመመስረት ለዚህ ወኪል የውሳኔ አሰጣጥ ምንነት ያንፀባርቃል። ከዚህም በላይ እያንዳንዱ ቀስት ከእሱ ቀጥሎ ያለው ሁኔታ እውነት ከሆነ በክልሎች መካከል ያለውን ሽግግር ያሳያል.

እያንዳንዱ ማሻሻያ የወኪሉን ወቅታዊ ሁኔታ እንፈትሻለን, የሽግግሮችን ዝርዝር እንመለከታለን, እና የሽግግሩ ሁኔታዎች ከተሟሉ, አዲሱን ግዛት ይቀበላል. ለምሳሌ፣ እያንዳንዱ ፍሬም የ10 ሰከንድ ጊዜ ቆጣሪው ጊዜው ያለፈበት መሆኑን ያረጋግጣል፣ እና ከሆነ፣ ከዚያም ጠባቂው ከኢድሊንግ ግዛት ወደ ፓትሮሊንግ ይሄዳል። በተመሳሳይ ሁኔታ, አጥቂው ግዛት የወኪሉን ጤንነት ይፈትሻል - ዝቅተኛ ከሆነ, ከዚያም ወደ ሸሸ ግዛት ውስጥ ይገባል.

ይህ በክልሎች መካከል የሚደረጉ ሽግግሮችን ማስተናገድ ነው፣ ግን ከራሳቸው ከክልሎች ጋር ስላለው ባህሪስ? ለአንድ የተወሰነ ግዛት ትክክለኛ ባህሪን ከመተግበር አንፃር፣ ለኤፍኤስኤም ድርጊቶች የምንሰጥባቸው በተለምዶ ሁለት ዓይነት “መንጠቆ” አሉ።

  • ለአሁኑ ሁኔታ በየጊዜው የምናከናውናቸው ተግባራት።
  • ከአንዱ ግዛት ወደ ሌላው ስንሸጋገር የምንወስዳቸው እርምጃዎች።

ለመጀመሪያው ዓይነት ምሳሌዎች. የፓትሮሊንግ ግዛት ወኪሉን በእያንዳንዱ ፍሬም በፓትሮል መንገድ ያንቀሳቅሰዋል። የአጥቂው ሁኔታ እያንዳንዱን ፍሬም ለማጥቃት ይሞክራል ወይም ይህ ወደሚቻልበት ሁኔታ ለመሸጋገር ይሞክራል።

ለሁለተኛው ዓይነት, ሽግግሩን አስቡበት "ጠላት የሚታይ ከሆነ እና ጠላት በጣም ጠንካራ ከሆነ, ወደ ፍለጋው የእርዳታ ሁኔታ ይሂዱ. ወኪሉ ለእርዳታ የት መሄድ እንዳለበት መርጦ ይህንን መረጃ ማከማቸት እና የት መሄድ እንዳለበት የእገዛ ግዛት እንዲያውቅ ማድረግ አለበት። አንዴ እርዳታ ከተገኘ ወኪሉ ወደ አጥቂ ሁኔታ ይመለሳል። በዚህ ጊዜ፣ ስለስጋቱ ለአጋር መንገር ይፈልጋል፣ ስለዚህ NotifyFriendOfThreat እርምጃ ሊከሰት ይችላል።

አሁንም ይህንን ስርዓት በስሜት/አስተሳሰብ/በአክቱ ዑደት መነፅር መመልከት እንችላለን። ስሜት በሽግግር አመክንዮ ጥቅም ላይ በሚውልበት ውሂብ ውስጥ ተካትቷል። አስቡ - ሽግግሮች በእያንዳንዱ ግዛት ይገኛሉ. ህጉም የሚከናወነው በግዛት ውስጥ ወይም በክልሎች መካከል በሚደረጉ ሽግግሮች በየጊዜው በሚደረጉ ድርጊቶች ነው።

አንዳንድ ጊዜ ያለማቋረጥ የድምፅ አሰጣጥ ሽግግር ሁኔታዎች ውድ ሊሆኑ ይችላሉ። ለምሳሌ፣ እያንዳንዱ ወኪል ጠላቶችን ማየት መቻሉን እና ከፓትሮሊንግ ወደ አጥቂ ሁኔታ መሸጋገር መቻሉን ለማወቅ እያንዳንዱን ፍሬም ውስብስብ ስሌቶችን ቢያከናውን ይህ ብዙ የሲፒዩ ጊዜ ይወስዳል።

በአለም ሁኔታ ውስጥ ያሉ አስፈላጊ ለውጦች እንደሚከሰቱ ክስተቶች እንደሚከሰቱ ክስተቶች ሊታሰብ ይችላል. FSM የሽግግሩን ሁኔታ ከማጣራት ይልቅ “ወኪሌ ተጫዋቹን ማየት ይችላል?” እያንዳንዱ ፍሬም፣ የተለየ ስርዓት ባነሰ ጊዜ ለመፈተሽ ሊዋቀር ይችላል (ለምሳሌ 5 ጊዜ በሰከንድ)። ውጤቱም ቼኩ ሲያልፍ የተጫዋች ታይን ማውጣት ነው።

ይህ ወደ ኤፍኤስኤም ተላልፏል፣ እሱም አሁን ወደ ተጫዋቹ የታየ ክስተት ሁኔታ ሁኔታ ሄዶ በዚሁ መሰረት ምላሽ መስጠት አለበት። ምላሽ ከመስጠትዎ በፊት ሊደረስበት ከማይችል መዘግየት በስተቀር ውጤቱ ተመሳሳይ ነው። ነገር ግን የሴንስ ክፍሉን በተለየ የፕሮግራሙ ክፍል በመለየቱ አፈጻጸም ተሻሽሏል።

ተዋረዳዊ ውሱን ግዛት ማሽን

ይሁን እንጂ ከትላልቅ ኤፍኤስኤምኤስ ጋር መሥራት ሁልጊዜ ምቹ አይደለም. MeleeAttacking እና RangedAttackingን ለመለየት የጥቃት ሁኔታን ማስፋፋት ከፈለግን ወደ አጥቂ ሁኔታ (የአሁኑ እና ወደፊት) ከሚመሩት ሁሉም ግዛቶች ሽግግሮችን መለወጥ አለብን።

በእኛ ምሳሌ ውስጥ ብዙ የተባዙ ሽግግሮች እንዳሉ አስተውለህ ይሆናል። በIdling ግዛት ውስጥ ያሉ አብዛኛዎቹ ሽግግሮች በፓትሮሊንግ ግዛት ውስጥ ካሉ ሽግግሮች ጋር ተመሳሳይ ናቸው። በተለይም ብዙ ተመሳሳይ ግዛቶችን ከጨመርን እራሳችንን ላለመድገም ጥሩ ይሆናል. ኢድሊንግ እና ፓትሮሊንግ በቡድን መቧደኑ ትርጉም ያለው ነው “ውጊያ ያልሆነ” በሚለው አጠቃላይ መለያ ስር አንድ የተለመደ የሽግግር ስብስብ ብቻ ባለበት ወደ ፍልሚያ ግዛቶች። ይህንን መለያ እንደ ግዛት ካሰብነው ኢድሊንግ እና ፓትሮሊንግ ንዑስ ክፍለ ሀገር ይሆናሉ። ለአዲስ የውጊያ ያልሆነ ንዑስ ግዛት የተለየ የሽግግር ሠንጠረዥ የመጠቀም ምሳሌ፡-

ዋና ግዛቶች፡-
የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

ከጦርነት ሁኔታ ውጭ;
የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

እና በዲያግራም መልክ፡-

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

እሱ ተመሳሳይ ስርዓት ነው፣ ነገር ግን አዲስ የውጊያ ያልሆነ ግዛት ያለው ኢድሊንግ እና ፓትሮሊንግን ይጨምራል። እያንዳንዱ ግዛት ኤፍኤስኤም ከንዑስ ስቴቶች ጋር (እና እነዚህ ንዑስ ግዛቶች፣ በተራው፣ የራሳቸው ኤፍኤስኤምኤስን የያዙ - እና የመሳሰሉትን እስከሚፈልጉ ድረስ) በተዋረድ ፊኒት ስቴት ማሽን ወይም HFSM (ተዋረዳዊ ውሱን ግዛት ማሽን) እናገኛለን። የውጊያ ያልሆነውን ሁኔታ በቡድን በቡድን በማድረግ, ያልተደጋገሙ ሽግግሮችን እንቆርጣለን. የጋራ ሽግግሮች ላላቸው አዳዲስ ግዛቶች ተመሳሳይ ነገር ማድረግ እንችላለን። ለምሳሌ፣ ወደፊት የአጥቂ ግዛትን ወደ MeleeAttacking እና MissileAttacking ግዛቶች ብናሰፋው፣ በጠላት ርቀት እና በአሞ ተገኝነት ላይ በመመስረት እርስ በርስ የሚሸጋገሩ ንዑስ ግዛቶች ይሆናሉ። በውጤቱም, ውስብስብ ባህሪያት እና ንዑስ ባህሪያት በትንሹ የተባዙ ሽግግሮች ሊወከሉ ይችላሉ.

የባህሪ ዛፍ

በ HFSM, ውስብስብ የባህሪዎች ጥምረት በቀላል መንገድ ይፈጠራሉ. ሆኖም፣ በሽግግር ሕጎች መልክ የውሳኔ አሰጣጥ አሁን ካለው ሁኔታ ጋር በቅርበት የተገናኘ መሆኑ ትንሽ ችግር አለ። እና በብዙ ጨዋታዎች ይህ በትክክል የሚያስፈልገው ነው። እና የግዛት ተዋረድን በጥንቃቄ መጠቀም የሽግግር ድግግሞሾችን ቁጥር ሊቀንስ ይችላል። ነገር ግን አንዳንድ ጊዜ ምንም አይነት ሁኔታ ውስጥ ቢሆኑ ወይም በማንኛውም ግዛት ውስጥ የሚተገበሩ ህጎች ያስፈልጉዎታል። ለምሳሌ፣ የኤጀንቱ ጤና ወደ 25% ቢቀንስ፣ በውጊያ፣ ስራ ፈት ወይም ንግግር ላይ ምንም ይሁን ምን እንዲሸሽ ትፈልጋለህ - ይህንን ሁኔታ በእያንዳንዱ ግዛት ላይ መጨመር አለብህ። እና የእርስዎ ዲዛይነር በኋላ ዝቅተኛውን የጤንነት ደረጃ ከ 25% ወደ 10% ለመቀየር ከፈለገ ይህ እንደገና መደረግ አለበት።

በሐሳብ ደረጃ, ይህ ሁኔታ በአንድ ቦታ ላይ ብቻ ለውጦችን ለማድረግ እና የሽግግር ሁኔታዎችን ላለመንካት ስለ "በየትኛው ሁኔታ" ላይ ውሳኔዎች ከራሳቸው ከክልሎች ውጭ የሚደረጉበት ስርዓት ያስፈልገዋል. የባህሪ ዛፎች እዚህ ይታያሉ.

እነሱን ለመተግበር ብዙ መንገዶች አሉ ፣ ግን ዋናው ነገር ለሁሉም በግምት አንድ ነው እና ከውሳኔ ዛፍ ጋር ተመሳሳይ ነው-አልጎሪዝም የሚጀምረው በ “ሥር” መስቀለኛ መንገድ ነው ፣ እና ዛፉ ውሳኔዎችን ወይም ድርጊቶችን የሚወክሉ አንጓዎችን ይይዛል። ምንም እንኳን ጥቂት ቁልፍ ልዩነቶች አሉ-

  • አንጓዎች አሁን ከሶስቱ እሴቶች አንዱን ይመልሳሉ፡ ተሳክቷል (ስራው ከተጠናቀቀ)፣ አልተሳካም (ሊጀመር የማይችል ከሆነ) ወይም እየሮጠ (አሁንም እየሰራ ከሆነ እና የመጨረሻ ውጤት ከሌለ)።
  • በሁለት አማራጮች መካከል ለመምረጥ ተጨማሪ የውሳኔ አንጓዎች የሉም. በምትኩ, አንድ የልጅ መስቀለኛ መንገድ ያላቸው የዲኮር አንጓዎች ናቸው. ከተሳካላቸው፣ ብቸኛ ልጃቸውን ኖድ ያስፈጽማሉ።
  • ድርጊቶችን የሚያከናውኑ አንጓዎች እየተከናወኑ ያሉትን ድርጊቶች ለመወከል የሩጫ ዋጋን ይመለሳሉ።

ይህ አነስተኛ የአንጓዎች ስብስብ ብዙ ቁጥር ያላቸው ውስብስብ ባህሪያትን ለመፍጠር ሊጣመር ይችላል. የHFSM ጥበቃን ከቀዳሚው ምሳሌ እንደ ባህሪ ዛፍ እናስብ።

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

በዚህ መዋቅር ከ Idling/Patrolling states ወደ Attacking ወይም ወደ ሌላ ማንኛውም ክፍለ ሀገር ግልጽ የሆነ ሽግግር ሊኖር አይገባም። ጠላት ከታየ እና የገፀ ባህሪው ጤና ዝቅተኛ ከሆነ ፣ ከዚህ በፊት የትኛውም መስቀለኛ መንገድ ይፈፅም ነበር - ፓትሮሊንግ ፣ ኢድሊንግ ፣ ማጥቃት ወይም ሌላ ምንም ይሁን ምን አፈፃፀሙ በ Fleeing node ላይ ይቆማል።

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

የባህሪ ዛፎች ውስብስብ ናቸው - እነሱን ለመቅረጽ ብዙ መንገዶች አሉ, እና ትክክለኛውን የጌጣጌጥ እና የተዋሃዱ ኖዶች ጥምረት ማግኘት አስቸጋሪ ሊሆን ይችላል. እንዲሁም ዛፉን ምን ያህል ጊዜ እንደሚፈትሹ ጥያቄዎች አሉ - እያንዳንዱን ክፍል ማለፍ እንፈልጋለን ወይንስ ከሁኔታዎች አንዱ ሲቀየር ብቻ ነው? ከአንጓዎች ጋር የተገናኘ ሁኔታን እንዴት እናከማቻለን - ለ10 ሰከንድ ያህል ኢድሊንግ እንደሆንን እንዴት እናውቃለን፣ ወይም የትኛዎቹ አንጓዎች ለመጨረሻ ጊዜ እየሰሩ መሆናቸውን እንዴት እናውቃለን ስለዚህ ቅደም ተከተሎችን በትክክል ለማስኬድ?

ለዚህም ነው ብዙ ትግበራዎች ያሉት. ለምሳሌ፣ አንዳንድ ስርዓቶች የማስዋቢያ ኖዶችን በመስመር ማስጌጫዎች ተክተዋል። የጌጣጌጥ ሁኔታዎች ሲቀየሩ ዛፉን እንደገና ይገመግማሉ, አንጓዎችን ለመቀላቀል ይረዳሉ, እና ወቅታዊ ዝመናዎችን ይሰጣሉ.

በአገልግሎት ላይ የተመሰረተ ስርዓት

አንዳንድ ጨዋታዎች ብዙ የተለያዩ መካኒኮች አሏቸው። ቀላል እና አጠቃላይ የሽግግር ደንቦችን ሁሉንም ጥቅሞች እንዲቀበሉ የሚፈለግ ነው, ነገር ግን የግድ በተሟላ የባህሪ ዛፍ መልክ አይደለም. ግልጽ የሆኑ የምርጫዎች ስብስብ ወይም ሊሆኑ የሚችሉ ድርጊቶች ዛፍ ከማግኘት ይልቅ, ሁሉንም ድርጊቶች መመርመር እና በአሁኑ ጊዜ በጣም ተስማሚ የሆነውን መምረጥ ቀላል ነው.

በዩቲሊቲ ላይ የተመሰረተው ስርዓት በዚህ ብቻ ያግዛል. ይህ ተወካዩ የተለያዩ ድርጊቶች ያሉት እና የእያንዳንዱን አንጻራዊ ጠቀሜታ መሰረት በማድረግ የትኛውን ማከናወን እንዳለበት የሚመርጥበት ስርዓት ነው። መገልገያ ተወካዩ ይህን ድርጊት እንዲፈጽም ምን ያህል አስፈላጊ ወይም ተፈላጊ እንደሆነ የዘፈቀደ መለኪያ ከሆነ።

አሁን ባለው ሁኔታ እና አካባቢ ላይ በመመስረት የተሰላ የአንድ ድርጊት ጥቅም፣ ወኪሉ በማንኛውም ጊዜ በጣም ተገቢውን ሌላ ግዛት መፈተሽ እና መምረጥ ይችላል። ይህ ከኤፍኤስኤም ጋር ተመሳሳይ ነው፣ ሽግግሮች በእያንዳንዱ እምቅ ሁኔታ ግምት፣ የአሁኑን ጨምሮ ከተወሰኑ በስተቀር። እባኮትን ለመቀጠል በጣም ጠቃሚውን እርምጃ እንደመረጥን (ወይም አስቀድመን ከጨረስን እንቆያለን) እንመርጣለን። ለበለጠ ልዩነት ይህ ከትንሽ ዝርዝር ውስጥ ሚዛናዊ ግን የዘፈቀደ ምርጫ ሊሆን ይችላል።

ስርዓቱ የዘፈቀደ የመገልገያ ዋጋዎችን ይመድባል-ለምሳሌ ከ 0 (ሙሉ በሙሉ የማይፈለግ) እስከ 100 (ሙሉ በሙሉ ተፈላጊ)። እያንዳንዱ እርምጃ የዚህን እሴት ስሌት የሚነኩ በርካታ መለኪያዎች አሉት. ወደ ሞግዚታችን ምሳሌ ስንመለስ፡-

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

በድርጊቶች መካከል ያሉ ሽግግሮች አሻሚዎች ናቸው - ማንኛውም ግዛት ማንኛውንም ሌላ ሊከተል ይችላል. የእርምጃ ቅድሚያ የሚሰጣቸው ነገሮች በተመለሱት የፍጆታ ዋጋዎች ውስጥ ይገኛሉ። ጠላት የሚታይ ከሆነ እና ያ ጠላት ጠንካራ ከሆነ እና የባህሪው ጤና ዝቅተኛ ከሆነ ሁለቱም መሸሽ እና እርዳታ ማግኘት ከፍተኛ ዜሮ ያልሆኑ እሴቶችን ይመለሳሉ። በዚህ አጋጣሚ፣ FindingHelp ሁልጊዜ ከፍ ያለ ይሆናል። ልክ እንደዚሁ፣ የትግል ያልሆኑ እንቅስቃሴዎች ከ50 በላይ አይመለሱም፣ ስለዚህ ሁልጊዜ ከጦርነቱ ያነሱ ይሆናሉ። ድርጊቶችን ሲፈጥሩ እና አጠቃቀማቸውን ሲያሰሉ ይህንን ግምት ውስጥ ማስገባት አለብዎት.

በእኛ ምሳሌ, ድርጊቶቹ ቋሚ ቋሚ እሴት ወይም ከሁለት ቋሚ እሴቶች ውስጥ አንዱን ይመለሳሉ. የበለጠ ትክክለኛ ስርዓት ግምቱን ከተከታታይ የእሴቶች ክልል ይመልሳል። ለምሳሌ፣ የተወካዩ ጤንነት ዝቅተኛ ከሆነ የሽሽት እርምጃ ከፍ ያለ የፍጆታ ዋጋዎችን ይመልሳል፣ እና የጥቃት እርምጃ ጠላት በጣም ጠንካራ ከሆነ ዝቅተኛ የመገልገያ እሴቶችን ይመልሳል። በዚህ ምክንያት, ወኪሉ ጠላትን ለማሸነፍ በቂ ጤንነት እንደሌለው በሚሰማው በማንኛውም ሁኔታ ውስጥ የሸሸው እርምጃ ከማጥቃት ይቀድማል. ይህ በማናቸውም መመዘኛዎች ላይ ተመስርተው ድርጊቶች ቅድሚያ እንዲሰጡ ያስችላቸዋል፣ይህ አካሄድ ከባህሪ ዛፍ ወይም ኤፍኤስኤም የበለጠ ተለዋዋጭ እና ተለዋዋጭ ያደርገዋል።

እያንዳንዱ እርምጃ ለፕሮግራም ስሌት ብዙ ሁኔታዎች አሉት. እነሱ በስክሪፕት ቋንቋ ወይም እንደ ተከታታይ የሂሳብ ቀመሮች ሊጻፉ ይችላሉ። የገጸ ባህሪን የእለት ተእለት ተግባር የሚመስለው ሲምስ ተጨማሪ የስሌት ሽፋንን ይጨምራል - ተወካዩ የፍጆታ ደረጃዎችን የሚነኩ ተከታታይ "ተነሳሽነቶች" ይቀበላል። አንድ ገፀ ባህሪ ከተራበ በጊዜ ሂደት የበለጠ ይራባሉ፣ እና የEatFood ድርጊት የመገልገያ ዋጋ ገፀ ባህሪው እስኪፈጽም ድረስ ይጨምራል፣ የረሃብን ደረጃ በመቀነስ እና የEatFood እሴትን ወደ ዜሮ ይመልሳል።

በደረጃ አሰጣጥ ስርዓት ላይ የተመሰረቱ ድርጊቶችን የመምረጥ ሀሳብ በጣም ቀላል ነው, ስለዚህ መገልገያ ላይ የተመሰረተ ስርዓት ለእነሱ ሙሉ ምትክ ሳይሆን እንደ AI የውሳኔ አሰጣጥ ሂደቶች አካል ሆኖ ሊያገለግል ይችላል. የውሳኔው ዛፉ የሁለት ህጻን ኖዶች የመገልገያ ደረጃ ሊጠይቅ እና ከፍተኛውን መምረጥ ይችላል። በተመሳሳይ የባህሪ ዛፍ የትኛውን ልጅ እንደሚፈጽም ለመወሰን የእርምጃዎችን ጥቅም ለመገምገም የተዋሃደ የዩቲሊቲ ኖድ ሊኖረው ይችላል።

እንቅስቃሴ እና አሰሳ

በቀደሙት ምሳሌዎች ወደ ግራ ወይም ቀኝ የምንንቀሳቀስበት መድረክ እና ጥበቃ የሚያደርግ ወይም የሚያጠቃ ጠባቂ ነበረን። ግን በተወሰነ ጊዜ ውስጥ የወኪል እንቅስቃሴን እንዴት በትክክል እንይዛለን? ፍጥነትን እንዴት እናስቀምጣለን፣ እንቅፋቶችን እንዴት እናስወግዳለን፣ እና ወደ መድረሻው መድረስ በቀጥታ መስመር ከመጓዝ የበለጠ አስቸጋሪ በሚሆንበት ጊዜ እንዴት መንገድ እናዘጋጃለን? እስቲ ይህንን እንመልከት።

አስተዳደር

በመነሻ ደረጃ, እያንዳንዱ ወኪል የፍጥነት ዋጋ እንዳለው እንገምታለን, ይህም ምን ያህል ፍጥነት እንደሚንቀሳቀስ እና በምን አቅጣጫ እንደሚሄድ ያካትታል. በሰከንድ በሜትሮች፣ በሰአት ኪሎሜትሮች፣ ፒክስሎች በሰከንድ፣ ወዘተ ሊለካ ይችላል፣ የ Sense/Think/Act loopን ስናስታውስ፣ Think part አንድ ፍጥነትን እንደሚመርጥ መገመት እንችላለን፣ እና የአክቱ ክፍል ያንን ፍጥነት በተወካዩ ላይ ይተገበራል። በተለምዶ ጨዋታዎች የእያንዳንዱን ነገር ፍጥነት ዋጋ በመማር እና በማስተካከል ይህንን ተግባር ለእርስዎ የሚያከናውን የፊዚክስ ስርዓት አላቸው። ስለዚህ, AI ን በአንድ ተግባር መተው ይችላሉ - ተወካዩ ምን ፍጥነት ሊኖረው እንደሚገባ ለመወሰን. ወኪሉ የት መሆን እንዳለበት ካወቁ በተቀመጠው ፍጥነት ወደ ትክክለኛው አቅጣጫ መሄድ ያስፈልግዎታል። በጣም ቀላል እኩልታ፡-

ተፈላጊ_ጉዞ = መድረሻ_ቦታ - ወኪል_ቦታ

2D ዓለም በዓይነ ሕሊናህ ይታይህ። ተወካዩ በ (-2,-2) ላይ ነው, መድረሻው በሰሜን ምስራቅ በ 30, 20 ነጥብ ላይ, እና ወኪሉ ለመድረስ የሚፈለገው መንገድ (32, 22) ነው. እነዚህ አቀማመጦች የሚለኩት በሜትር ነው እንበል - የተወካዩን ፍጥነት በሴኮንድ 5 ሜትሮች ከወሰድን የመፈናቀላችንን ቬክተር በመመዘን በግምት (4.12፣ 2.83) ፍጥነት እናገኛለን። በእነዚህ መለኪያዎች፣ ወኪሉ በ8 ሰከንድ ውስጥ ወደ መድረሻው ይደርሳል።

በማንኛውም ጊዜ እሴቶቹን እንደገና ማስላት ይችላሉ። ተወካዩ ወደ ዒላማው ግማሽ ርቀት ላይ ከነበረ, እንቅስቃሴው በግማሽ ርዝመት ይሆናል, ነገር ግን የተወካዩ ከፍተኛ ፍጥነት 5 ሜትር / ሰ ስለሆነ (ይህን ከላይ ወስነናል), ፍጥነቱ ተመሳሳይ ይሆናል. ይህ ኢላማዎችን ለማንቀሳቀስም ይሠራል፣ ይህም ወኪሉ በሚንቀሳቀስበት ጊዜ ትናንሽ ለውጦችን እንዲያደርግ ያስችለዋል።

ግን የበለጠ ልዩነት እንፈልጋለን - ለምሳሌ ፣ ከቆመ ወደ ሩጫ የሚንቀሳቀስ ገጸ ባህሪን ለማስመሰል ፍጥነቱን ቀስ በቀስ መጨመር። ከመቆሙ በፊት መጨረሻ ላይ ተመሳሳይ ነገር ማድረግ ይቻላል. እነዚህ ባህሪያት የማሽከርከር ባህሪ በመባል ይታወቃሉ፣ እያንዳንዳቸውም የተወሰኑ ስሞች አሏቸው፡ ፍለጋ፣መሸሽ፣መምጣት፣ወዘተ ሀሳቡ የወኪሉን ቦታ እና የአሁኑን ፍጥነት ከመድረሻው ጋር በማነፃፀር የፍጥነት ሃይሎችን በወኪሉ ፍጥነት ላይ ሊተገበር ይችላል። ወደ ግብ ለመንቀሳቀስ የተለያዩ ዘዴዎችን ለመጠቀም.

እያንዳንዱ ባህሪ ትንሽ የተለየ ዓላማ አለው. መፈለግ እና መምጣት ወኪልን ወደ መድረሻ የማዘዋወር መንገዶች ናቸው። መሰናክል መራቅ እና መለያየት ወደ ግቡ በሚወስደው መንገድ ላይ መሰናክሎችን ለማስወገድ የወኪሉን እንቅስቃሴ ያስተካክላል። አሰላለፍ እና ትስስር ወኪሎች አብረው እንዲንቀሳቀሱ ያደርጋሉ። ሁሉንም ሁኔታዎች ግምት ውስጥ በማስገባት አንድ ነጠላ የመንገድ ቬክተር ለማምረት ማንኛውም አይነት የተለያዩ የመሪነት ባህሪያት ሊጠቃለል ይችላል። ከግድግዳዎች እና ከሌሎች ወኪሎች ለመራቅ የመድረሻ፣ መለያየት እና መሰናክል መራቅ ባህሪያትን የሚጠቀም ወኪል። ይህ አቀራረብ አላስፈላጊ ዝርዝሮች ሳይኖር ክፍት በሆኑ ቦታዎች ላይ በደንብ ይሰራል.

በጣም አስቸጋሪ በሆኑ ሁኔታዎች ውስጥ ፣የተለያዩ ባህሪዎችን መጨመር በከፋ ሁኔታ ይሠራል - ለምሳሌ ፣ አንድ ወኪል በመድረሻ እና በእንቅፋት መካከል ባለው ግጭት ምክንያት ግድግዳ ላይ ሊጣበቅ ይችላል። ስለዚህ, ሁሉንም ዋጋዎች በቀላሉ ከመጨመር የበለጠ ውስብስብ የሆኑትን አማራጮች ግምት ውስጥ ማስገባት አለብዎት. መንገዱ ይህ ነው-የእያንዳንዱ ባህሪ ውጤቶችን ከመደመር ይልቅ በተለያዩ አቅጣጫዎች እንቅስቃሴን ግምት ውስጥ ማስገባት እና በጣም ጥሩውን አማራጭ መምረጥ ይችላሉ.

ሆኖም፣ ውስብስብ በሆነ አካባቢ ውስጥ የሞተ ጫፎች እና የትኛው መንገድ መሄድ እንዳለብን ምርጫዎች፣ የበለጠ የላቀ ነገር እንፈልጋለን።

መንገድ ማግኘት

ከ A ወደ B መድረስ በእንቅፋቶች ዙሪያ መጠነኛ አቅጣጫዎች ያለው ቀጥተኛ መንገድ በሆነበት ክፍት ቦታ (የእግር ኳስ ሜዳ ወይም መድረክ) ውስጥ ላለ ቀላል እንቅስቃሴ የመሪነት ባህሪዎች ጥሩ ናቸው። ለተወሳሰቡ መንገዶች፣ ዓለምን የምንቃኝበት እና በእርሱ በኩል የሚያልፍበትን መንገድ የመወሰን መንገድ የሆነ መንገድ ፍለጋ ያስፈልገናል።

በጣም ቀላሉ ማለት ከወኪሉ ቀጥሎ ባለው እያንዳንዱ ካሬ ላይ ፍርግርግ መተግበር እና ከመካከላቸው የትኛው እንዲንቀሳቀስ እንደተፈቀደ መገምገም ነው። ከመካከላቸው አንዱ መድረሻ ከሆነ, መጀመሪያ እስኪደርሱ ድረስ ከእያንዳንዱ ካሬ ወደ ቀዳሚው መንገድ ይሂዱ. መንገዱ ይህ ነው። ያለበለዚያ መድረሻዎን እስኪያገኙ ድረስ ወይም ካሬው እስኪያልቅ ድረስ በአቅራቢያ ካሉ ሌሎች ካሬዎች ጋር ሂደቱን ይድገሙት (ይህ ማለት የሚቻል መንገድ የለም ማለት ነው)። ይህ በመደበኛነት Breadth-First Search ወይም BFS (ስፋት-መጀመሪያ ፍለጋ ስልተቀመር) በመባል የሚታወቀው ነው። በእያንዳንዱ እርምጃ በሁሉም አቅጣጫዎች (ስለዚህ ስፋቱ, "ስፋት") ይመለከታል. የመፈለጊያ ቦታው የሚፈለገው ቦታ ላይ እስኪደርስ ድረስ እንደሚንቀሳቀስ የሞገድ ፊት ነው - የፍለጋ ቦታው በእያንዳንዱ ደረጃ ላይ የመጨረሻውን ነጥብ እስኪጨምር ድረስ ይሰፋል, ከዚያ በኋላ ወደ መጀመሪያው መመለስ ይቻላል.

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

በውጤቱም, የሚፈለገው መንገድ የተጠናከረበት የካሬዎች ዝርዝር ይደርስዎታል. ይህ መንገድ ነው (ስለዚህ ዱካ ፍለጋ) - ተወካዩ መድረሻውን ሲከተል የሚጎበኟቸው ቦታዎች ዝርዝር።

በአለም ላይ ያለውን የእያንዳንዱን ካሬ አቀማመጥ ካወቅን በመንገዳችን ላይ ለመንቀሳቀስ የመሪ ባህሪን መጠቀም እንችላለን - ከመስቀለኛ 1 እስከ መስቀለኛ መንገድ 2፣ ከዚያም ከመስቀለኛ 2 እስከ መስቀለኛ 3 እና የመሳሰሉት። በጣም ቀላሉ አማራጭ ወደ ቀጣዩ ካሬ መሃል መሄድ ነው, ነገር ግን በጣም የተሻለው አማራጭ አሁን ባለው ካሬ እና በሚቀጥለው መካከል ባለው ጠርዝ መካከል ማቆም ነው. በዚህ ምክንያት ተወካዩ በሾሉ ማዞሪያዎች ላይ ጠርዞችን መቁረጥ ይችላል.

የBFS አልጎሪዝም ጉዳቶችም አሉት - ልክ እንደ “ትክክለኛው” አቅጣጫ “በተሳሳተ” አቅጣጫ ብዙ ካሬዎችን ይመረምራል። እዚህ ላይ ነው A*(A star) የተባለ ይበልጥ ውስብስብ አልጎሪዝም ወደ ጨዋታ የሚመጣው። በተመሳሳይ መንገድ ይሰራል, ነገር ግን የጎረቤት አደባባዮች (ከዚያም የጎረቤቶች ጎረቤቶች, ከዚያም የጎረቤቶች ጎረቤቶች, ወዘተ) በጭፍን ከመመርመር ይልቅ አንጓዎችን ወደ ዝርዝር ውስጥ ይሰበስባል እና ይደረደራቸዋል ስለዚህም የሚቀጥለው መስቀለኛ መንገድ ሁልጊዜ የሚመረመረው. ወደ አጭሩ መንገድ የሚወስደው። አንጓዎች የተደረደሩት ሁለቱን ነገሮች ግምት ውስጥ በማስገባት በሂውሪስቲክ ላይ በመመስረት ነው—ወደሚፈለገው ካሬ የሚወስደውን መላምታዊ መንገድ “ዋጋ” (ማንኛውም የጉዞ ወጪን ጨምሮ) እና ካሬው ከመድረሻው ምን ያህል እንደሚርቅ በመገመት (በመፈለጊያው ውስጥ ያለውን ፍለጋ አድልዎ ማድረግ) ትክክለኛ አቅጣጫ).

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

ይህ ምሳሌ የሚያሳየው ወኪሉ በአንድ ጊዜ አንድ ካሬን እንደሚመረምር ያሳያል, በእያንዳንዱ ጊዜ በጣም ተስፋ ሰጪ የሆነውን በአቅራቢያው ያለውን ይመርጣል. የተገኘው መንገድ ከ BFS ጋር ተመሳሳይ ነው, ነገር ግን በሂደቱ ውስጥ ጥቂት ካሬዎች ግምት ውስጥ ገብተዋል - ይህም በጨዋታ አፈፃፀም ላይ ትልቅ ተጽእኖ አለው.

እንቅስቃሴ ያለ ፍርግርግ

ግን አብዛኛዎቹ ጨዋታዎች በፍርግርግ ላይ የተቀመጡ አይደሉም፣ እና ብዙ ጊዜ ከእውነታው ውጪ ይህን ማድረግ አይቻልም። መስማማት ያስፈልጋል። ካሬዎቹ ምን ያህል መጠን መሆን አለባቸው? በጣም ትልቅ እና ትናንሽ ኮሪደሮችን ወይም መዞሪያዎችን በትክክል መወከል አይችሉም, በጣም ትንሽ እና ለመፈለግ በጣም ብዙ ካሬዎች ይኖራሉ, ይህም በመጨረሻ ብዙ ጊዜ ይወስዳል.

በመጀመሪያ ሊረዳው የሚገባው ነገር መረቡ የተገናኙትን አንጓዎች ግራፍ ይሰጠናል. የ A* እና BFS ስልተ ቀመሮች በትክክል በግራፎች ላይ ይሰራሉ ​​እና ስለ መረባችን ምንም ግድ የላቸውም። በጨዋታው ዓለም ውስጥ የትም ቦታ ኖዶችን ልናስቀምጠው እንችላለን፡ በማንኛውም ሁለት የተገናኙ አንጓዎች፣ እንዲሁም በመነሻ እና በመጨረሻ ነጥቦች እና ቢያንስ በአንዱ አንጓዎች መካከል ግንኙነት እስካለ ድረስ፣ አልጎሪዝም ልክ እንደበፊቱ ይሰራል። ይህ ብዙውን ጊዜ የመንገዶች ስርዓት ተብሎ ይጠራል ፣ ምክንያቱም እያንዳንዱ መስቀለኛ መንገድ በዓለም ላይ ትልቅ ቦታን ስለሚወክል የማንኛውም መላምታዊ መንገዶች አካል ሊሆን ይችላል።

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ
ምሳሌ 1፡ በእያንዳንዱ ካሬ ውስጥ ቋጠሮ። ፍለጋው ወኪሉ በሚገኝበት መስቀለኛ መንገድ ይጀምራል እና በሚፈለገው ካሬ መስቀለኛ መንገድ ያበቃል.

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ
ምሳሌ 2፡ አነስ ያለ የአንጓዎች ስብስብ (የመንገድ ነጥቦች)። ፍለጋው በተወካዩ አደባባይ ይጀምራል፣ በሚፈለገው የአንጓዎች ብዛት ያልፋል፣ ከዚያም ወደ መድረሻው ይቀጥላል።

ይህ ሙሉ በሙሉ ተለዋዋጭ እና ኃይለኛ ስርዓት ነው. ነገር ግን የመንገዶች ነጥብ የት እና እንዴት እንደሚቀመጥ ለመወሰን የተወሰነ ጥንቃቄ ያስፈልጋል፣ ያለበለዚያ ወኪሎች በቀላሉ የቅርቡን ነጥብ ላያዩ ይችላሉ እና መንገዱን መጀመር አይችሉም። የአለምን ጂኦሜትሪ መሰረት በማድረግ የመንገዶች ነጥቦችን በራስ ሰር ብናስቀምጥ ቀላል ይሆናል።

ይህ የአሰሳ ጥልፍልፍ ወይም navmesh (የአሰሳ ጥልፍልፍ) የሚታይበት ነው። ይህ በአብዛኛው በአለም ጂኦሜትሪ ላይ የተለበጠ ባለ 2D ትሪያንግል ነው - ወኪሉ እንዲራመድ በሚፈቀድበት ቦታ። በመረቡ ውስጥ ያሉት እያንዳንዱ ትሪያንግሎች በግራፉ ውስጥ አንድ መስቀለኛ መንገድ ይሆናሉ፣ እና እስከ ሶስት ተጓዳኝ ትሪያንግሎች በግራፉ ውስጥ ተጓዳኝ ኖዶች ይሆናሉ።

ይህ ሥዕል ከዩኒቲ ሞተር ምሳሌ ነው - በዓለም ላይ ያለውን ጂኦሜትሪ ተንትኖ ናvmesh (በቅጽበታዊ ገጽ እይታ በሰማያዊ ሰማያዊ) ፈጠረ። በ navmesh ውስጥ ያለው እያንዳንዱ ፖሊጎን አንድ ወኪል የሚቆምበት ወይም ከአንድ ፖሊጎን ወደ ሌላ ፖሊጎን የሚንቀሳቀስበት አካባቢ ነው። በዚህ ምሳሌ, ፖሊጎኖች ከተቀመጡባቸው ወለሎች ያነሱ ናቸው - ይህ የሚደረገው የወኪሉን መጠን ግምት ውስጥ በማስገባት ነው, ይህም ከስም ቦታው በላይ የሚዘልቅ ነው.

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

እንደገና A * ስልተቀመርን በመጠቀም በዚህ ጥልፍልፍ መንገድ መፈለግ እንችላለን። ይህ ሁሉንም ጂኦሜትሪ ከግምት ውስጥ ያስገባ እና አላስፈላጊ አንጓዎችን እና የመንገዶችን መፍጠር የማይፈልግ በዓለም ላይ ፍጹም የሆነ መንገድ ይሰጠናል ።

መንገድ ፍለጋ የአንድ መጣጥፍ አንድ ክፍል በቂ ያልሆነበት በጣም ሰፊ ርዕስ ነው። የበለጠ በዝርዝር ለማጥናት ከፈለጉ, ይህ ይረዳል የአሚት ፓቴል ድር ጣቢያ.

እቅድ

አንዳንድ ጊዜ አቅጣጫ መርጦ መንቀሳቀስ ብቻ በቂ እንዳልሆነ በመንገድ ፍለጋ ተምረናል - መንገድ መርጠን ወደፈለግንበት ቦታ ለመድረስ ጥቂት ተራዎችን ማድረግ አለብን። ይህንን ሃሳብ ጠቅለል አድርገን ልናጠቃልለው እንችላለን፡- ግብን ማሳካት የሚቀጥለው ደረጃ ብቻ ሳይሆን አጠቃላይ ቅደም ተከተል ሲሆን አንዳንድ ጊዜ የመጀመሪያው ምን መሆን እንዳለበት ለማወቅ ብዙ ደረጃዎችን መመልከት ያስፈልግዎታል። ይህ እቅድ ማውጣት ይባላል. መንገድ ፍለጋ ለማቀድ ከብዙ ማራዘሚያዎች እንደ አንዱ ተደርጎ ሊወሰድ ይችላል። ከስሜት/አስተሳሰብ/የድርጊት ዑደታችን አንፃር፣ ይህ የአስተሳሰብ ክፍል ለወደፊቱ በርካታ የአክት ክፍሎችን የሚያቅድበት ነው።

የቦርድ ጨዋታ አስማት፡ መሰብሰቢያውን ምሳሌ እንመልከት። በመጀመሪያ የሚከተሉትን የካርድ ካርዶች በእጃችን ይዘን እንሄዳለን-

  • ስዋምፕ - 1 ጥቁር መና (የመሬት ካርድ) ይሰጣል.
  • ጫካ - 1 አረንጓዴ መና (የመሬት ካርድ) ይሰጣል.
  • የሸሸ ጠንቋይ - ለመጥራት 1 ሰማያዊ ማና ያስፈልገዋል።
  • Elvish Mystic - ለመጥራት 1 አረንጓዴ መና ያስፈልገዋል።

ቀላል ለማድረግ ቀሪዎቹን ሶስት ካርዶች ችላ እንላለን። እንደ ደንቡ አንድ ተጫዋች በአንድ ተራ 1 የመሬት ካርድ እንዲጫወት ይፈቀድለታል፣ ይህንን ካርድ መና ከውስጡ ለማውጣት “መታ” ማድረግ እና እንደ ማና መጠን አስማት (ፍጥረትን ጨምሮ) ማድረግ ይችላል። በዚህ ሁኔታ የሰው ልጅ ተጫዋቹ ደን መጫወት፣ 1 አረንጓዴ ማና መታ ማድረግ እና ከዚያ Elvish Mystic መጥራት ያውቃል። ግን ጨዋታው AI ይህንን እንዴት ሊያውቅ ይችላል?

ቀላል እቅድ ማውጣት

ተራው አካሄድ ምንም ተስማሚ እስካልተገኘ ድረስ እያንዳንዱን ድርጊት በተራ መሞከር ነው። ካርዶቹን በመመልከት AI Swamp መጫወት የሚችለውን ይመለከታል። እና እሱ ይጫወታል። በዚህ ተራ የሚቀሩ ሌሎች ድርጊቶች አሉ? እነሱን ለመጥራት አረንጓዴ እና ሰማያዊ ማና ስለሚያስፈልጋቸው Elvish Mystic ወይም Fugitive Wizard ወይ ሊጠራ አይችልም፣ ስዋምፕ ደግሞ ጥቁር መና ብቻ ይሰጣል። እና ከአሁን በኋላ ጫካ መጫወት አይችልም, ምክንያቱም ቀድሞውኑ ስዋምፕን ተጫውቷል. ስለዚህ, ጨዋታው AI ህጎቹን ተከትሏል, ነገር ግን በደንብ አላደረገም. ሊሻሻል ይችላል።

ማቀድ ጨዋታውን ወደሚፈለገው ሁኔታ የሚያመጣውን የእርምጃዎች ዝርዝር ማግኘት ይችላል። በመንገድ ላይ ያለው እያንዳንዱ ካሬ ጎረቤቶች እንደነበሩት ሁሉ (በመንገድ ፍለጋ)፣ በእቅድ ውስጥ ያለው እያንዳንዱ ተግባር ጎረቤቶች ወይም ተተኪዎችም አሉት። የተፈለገውን ሁኔታ እስክንደርስ ድረስ እነዚህን ድርጊቶች እና ተከታይ ድርጊቶች መፈለግ እንችላለን.

በእኛ ምሳሌ፣ የሚፈለገው ውጤት “ከተቻለ ፍጡርን አስጠራ” ነው። በተራው መጀመሪያ ላይ በጨዋታው ህጎች የተፈቀዱ ሁለት ሊሆኑ የሚችሉ ድርጊቶችን ብቻ እናያለን-

1. ስዋምፕን ይጫወቱ (ውጤት፡ በጨዋታው ውስጥ ረግረጋማ)
2. የደን ጨዋታ (ውጤት፡ በጨዋታው ውስጥ ያለው ጫካ)

እያንዳንዱ እርምጃ ወደ ተጨማሪ ድርጊቶች ሊያመራ እና ሌሎችን መዝጋት ይችላል, እንደገና በጨዋታው ህግ መሰረት. ስዋምፕን እንደጫወትን አስቡት - ይህ ረግረጋማውን እንደሚቀጥለው ደረጃ ያስወግዳል (አስቀድመን ተጫውተናል) እና ይህ ደግሞ ደንን ያስወግዳል (ምክንያቱም እንደ ደንቦቹ በአንድ ተራ አንድ የመሬት ካርድ መጫወት ይችላሉ)። ከዚህ በኋላ AI 1 ጥቁር መና እንደሚቀጥለው ደረጃ ይጨምራል ምክንያቱም ሌሎች አማራጮች የሉም. ወደ ፊት ሄዶ ረግረጋማውን መታ ከመረጠ 1 አሃድ ጥቁር መና ይቀበላል እና ምንም ማድረግ አይችልም።

1. ስዋምፕን ይጫወቱ (ውጤት፡ በጨዋታው ውስጥ ረግረጋማ)
1.1 "መታ" ስዋምፕ (ውጤት፡ ረግረጋማ "መታ"፣ +1 የጥቁር መና አሃድ)
ምንም እርምጃዎች አይገኙም - END
2. የደን ጨዋታ (ውጤት፡ በጨዋታው ውስጥ ያለው ጫካ)

የእርምጃዎች ዝርዝር አጭር ነበር, የመጨረሻው ጫፍ ላይ ደርሰናል. ለሚቀጥለው ደረጃ ሂደቱን መድገም እናደርጋለን. ጫካን እንጫወታለን ፣ “1 አረንጓዴ ማና ያግኙ” የሚለውን እርምጃ ይክፈቱ ፣ ይህም በተራው ደግሞ ሶስተኛውን ተግባር ይከፍታል - Elvish Mysticን ይደውሉ።

1. ስዋምፕን ይጫወቱ (ውጤት፡ በጨዋታው ውስጥ ረግረጋማ)
1.1 "መታ" ስዋምፕ (ውጤት፡ ረግረጋማ "መታ"፣ +1 የጥቁር መና አሃድ)
ምንም እርምጃዎች አይገኙም - END
2. የደን ጨዋታ (ውጤት፡ በጨዋታው ውስጥ ያለው ጫካ)
2.1 "መታ" ጫካ (ውጤት፡ ደን "መታ" ነው፣ +1 የአረንጓዴ ማና አሃድ)
2.1.1 ኤልቪሽ ሚስቲክን አስጠራ (ውጤት፡ Elvish Mystic በጨዋታ፣ -1 አረንጓዴ መና)
ምንም እርምጃዎች አይገኙም - END

በመጨረሻም፣ ሁሉንም ሊሆኑ የሚችሉ ድርጊቶችን መርምረን ፍጡርን የሚጠራ እቅድ አግኝተናል።

ይህ በጣም ቀላል ምሳሌ ነው። አንዳንድ መመዘኛዎችን ከሚያሟላ ማንኛውም እቅድ ይልቅ የተሻለውን እቅድ መምረጥ ይመከራል. በአጠቃላይ አፈፃፀማቸው ውጤት ወይም አጠቃላይ ጥቅም ላይ በመመስረት እምቅ እቅዶችን መገምገም ይቻላል. የመሬት ካርድ በመጫወት እራስዎን 1 ነጥብ እና ፍጡርን ለመጥራት 3 ነጥብ ማግኘት ይችላሉ። ስዋምፕን መጫወት የ1 ነጥብ እቅድ ይሆናል። እና ደን መጫወት → ጫካውን መታ ያድርጉ → ኤልቪሽ ሚስቲክን አስጠራ ወዲያውኑ 4 ነጥብ ይሰጣል።

በ Magic: The Gathering ውስጥ ማቀድ እንዴት እንደሚሰራ ነው, ግን ተመሳሳይ አመክንዮ በሌሎች ሁኔታዎች ላይም ይሠራል. ለምሳሌ፣ ለኤጲስ ቆጶሱ በቼዝ ውስጥ እንዲንቀሳቀስ ቦታ ለመስጠት ፓውን ማንቀሳቀስ። ወይም እንደዚህ በXCOM ውስጥ በጥንቃቄ ለመምታት ከግድግዳ ጀርባ ሽፋን ይውሰዱ። በአጠቃላይ, ሀሳቡን ያገኙታል.

የተሻሻለ እቅድ ማውጣት

አንዳንድ ጊዜ እያንዳንዱን አማራጭ ግምት ውስጥ ለማስገባት በጣም ብዙ ሊሆኑ የሚችሉ ድርጊቶች አሉ. በአስማት ወደ ምሳሌው ስንመለስ: መሰብሰብ: በጨዋታው ውስጥ እና በእጅዎ ውስጥ ብዙ የመሬት እና የፍጥረት ካርዶች አሉ እንበል - የእንቅስቃሴዎች ጥምረት ብዛት በደርዘኖች ውስጥ ሊሆን ይችላል. ለችግሩ በርካታ መፍትሄዎች አሉ.

የመጀመሪያው ዘዴ የኋላ ሰንሰለት ነው. ሁሉንም ጥምሮች ከመሞከር ይልቅ በመጨረሻው ውጤት መጀመር እና ቀጥተኛ መንገድ ለማግኘት መሞከር የተሻለ ነው. ከዛፉ ሥር ወደ አንድ የተወሰነ ቅጠል ከመሄድ ይልቅ ወደ ተቃራኒው አቅጣጫ እንሄዳለን - ከቅጠሉ ወደ ሥሩ. ይህ ዘዴ ቀላል እና ፈጣን ነው.

ጠላት 1 ጤና ካለው, "ድርድር 1 ወይም ከዚያ በላይ ጉዳት" እቅድ ማግኘት ይችላሉ. ይህንን ለማሳካት ብዙ ቅድመ ሁኔታዎች መሟላት አለባቸው-

1. ጉዳት በጥንቆላ ሊከሰት ይችላል - በእጅ መሆን አለበት.
2. ድግምት ለማድረግ መና ያስፈልገዎታል።
3. ማናን ለማግኘት የመሬት ካርድ መጫወት ያስፈልግዎታል።
4. የመሬት ካርድ ለመጫወት, በእጅዎ ውስጥ ሊኖርዎት ይገባል.

ሌላው መንገድ ምርጥ-የመጀመሪያ ፍለጋ ነው. ሁሉንም መንገዶች ከመሞከር ይልቅ በጣም ተስማሚ የሆነውን እንመርጣለን. ብዙውን ጊዜ, ይህ ዘዴ አላስፈላጊ የፍለጋ ወጪዎች ሳይኖር በጣም ጥሩውን እቅድ ይሰጣል. A * ምርጥ የመጀመሪያ ፍለጋ አይነት ነው - ከመጀመሪያው ጀምሮ በጣም ተስፋ ሰጭ መንገዶችን በመመርመር ሌሎች አማራጮችን ሳያጣራ የተሻለውን መንገድ ቀድሞውኑ ማግኘት ይችላል።

አስደሳች እና ከጊዜ ወደ ጊዜ ተወዳጅነት ያለው ምርጥ-የመጀመሪያ ፍለጋ አማራጭ የሞንቴ ካርሎ ዛፍ ፍለጋ ነው። እያንዳንዱን ቀጣይ እርምጃ በሚመርጡበት ጊዜ የትኞቹ እቅዶች ከሌሎቹ እንደሚበልጡ ከመገመት ይልቅ፣ መጨረሻው እስኪደርስ ድረስ (እቅዱ ድል ወይም ሽንፈትን በሚያመጣበት ጊዜ) በእያንዳንዱ እርምጃ የዘፈቀደ ተተኪዎችን ይመርጣል። የመጨረሻው ውጤት ቀደም ሲል የነበሩትን አማራጮች ክብደት ለመጨመር ወይም ለመቀነስ ያገለግላል. ይህንን ሂደት በተከታታይ ብዙ ጊዜ በመድገም, ስልተ ቀመር ምንም እንኳን ሁኔታው ​​ቢቀየርም (ጠላት በተጫዋቹ ውስጥ ጣልቃ ለመግባት እርምጃ ቢወስድ) ጥሩው ቀጣዩ እንቅስቃሴ ምን እንደሆነ ጥሩ ግምት ይሰጣል.

ያለግብ ተኮር የድርጊት መርሃ ግብር ወይም GOAP (ግብ-ተኮር የድርጊት ማቀድ) በጨዋታዎች ውስጥ ስለማቀድ ምንም አይነት ታሪክ የተሟላ አይሆንም። ይህ በስፋት ጥቅም ላይ የዋለ እና የተወያየበት ዘዴ ነው, ነገር ግን ከተወሰኑ ዝርዝሮች በስተቀር, እሱ ቀደም ሲል የተነጋገርነው የኋለኛው ሰንሰለት ዘዴ ነው. አላማው "ተጫዋቹን ማጥፋት" ከሆነ እና ተጫዋቹ ከሽፋን ጀርባ ከሆነ, እቅዱ ሊሆን ይችላል: በቦምብ ለማጥፋት → ያግኙት → ይጣሉት.

ብዙውን ጊዜ ብዙ ግቦች አሉ ፣ እያንዳንዱም የራሱ የሆነ ቅድሚያ አለው። ከፍተኛ ቅድሚያ የሚሰጠው አላማ መጨረስ ካልቻለ (ምንም አይነት የእርምጃዎች ጥምረት "ተጫዋቹን መግደል" እቅድ አይፈጥርም ምክንያቱም ተጫዋቹ አይታይም), AI ወደ ዝቅተኛ ቅድሚያ ዓላማዎች ይመለሳል.

ስልጠና እና መላመድ

ጨዋታ AI በተለምዶ የማሽን መማሪያን እንደማይጠቀም ቀደም ብለን ተናግረናል ምክንያቱም በእውነተኛ ጊዜ ወኪሎችን ለማስተዳደር ተስማሚ ስላልሆነ። ይህ ማለት ግን ከዚህ አካባቢ የሆነ ነገር መበደር አይችሉም ማለት አይደለም። አንድ ነገር የምንማርበት ተኳሽ ውስጥ ተቃዋሚ እንፈልጋለን። ለምሳሌ በካርታው ላይ ስላሉት ምርጥ ቦታዎች ይወቁ። ወይም በትግል ጨዋታ ውስጥ ያለ ተቃዋሚ ተጫዋቹን በተደጋጋሚ ጥቅም ላይ የሚውለውን የኮምቦ እንቅስቃሴ የሚያግድ፣ ሌሎችን እንዲጠቀም ያነሳሳዋል። ስለዚህ የማሽን መማር በእንደዚህ ዓይነት ሁኔታዎች ጠቃሚ ሊሆን ይችላል.

ስታቲስቲክስ እና ፕሮባቢሊቲዎች

ወደ ውስብስብ ምሳሌዎች ከመግባታችን በፊት፣ ጥቂት ቀላል መለኪያዎችን በመውሰድ እና ውሳኔዎችን ለመወሰን ምን ያህል ርቀት መሄድ እንደምንችል እንመልከት። ለምሳሌ የእውነተኛ ጊዜ ስልት - አንድ ተጫዋች በጨዋታው የመጀመሪያ ደቂቃዎች ውስጥ ጥቃት ሊሰነዝር እንደሚችል እና ለዚህ ምን መከላከያ ማዘጋጀት እንዳለበት እንዴት እንወስናለን? የወደፊት ምላሾች ምን ሊሆኑ እንደሚችሉ ለመረዳት የተጫዋቹን ያለፈ ልምድ ማጥናት እንችላለን። ለመጀመር ያህል፣ እኛ እንደዚህ ያለ ጥሬ መረጃ የለንም፣ ግን ልንሰበስበው እንችላለን - AI በሰው ላይ በተጫወተ ቁጥር የመጀመሪያውን ጥቃት ጊዜ መመዝገብ ይችላል። ከጥቂት ክፍለ ጊዜዎች በኋላ ተጫዋቹ ወደፊት ለማጥቃት የሚወስደውን አማካይ ጊዜ እናገኛለን።

በአማካኝ እሴቶች ላይም ችግር አለ-ተጫዋቹ 20 ጊዜ በፍጥነት ከሮጠ እና 20 ጊዜ በዝግታ ከተጫወተ ፣ አስፈላጊዎቹ እሴቶች መሃል ላይ ይሆናሉ ፣ እና ይህ ምንም ጠቃሚ ነገር አይሰጠንም ። አንዱ መፍትሔ የግቤት ውሂብን መገደብ ነው - የመጨረሻዎቹ 20 ቁርጥራጮች ግምት ውስጥ መግባት ይችላሉ.

የተጫዋቹ ያለፈ ምርጫ ወደፊት ተመሳሳይ እንደሚሆን በማሰብ የአንዳንድ ድርጊቶችን እድሎች በሚገመትበት ጊዜ ተመሳሳይ አቀራረብ ጥቅም ላይ ይውላል። አንድ ተጫዋች አምስት ጊዜ በእሳት ኳስ፣ ሁለት ጊዜ በመብረቅ፣ እና አንድ ጊዜ በሜላ ቢያጠቃን እሱ የሚመርጠው እሳት ኳስ መሆኑ ግልጽ ነው። ፋየርቦል=62,5%፣ መብረቅ=25% እና ሜሊ=12,5% ​​የተለያዩ የጦር መሳሪያዎችን የመጠቀም እድልን እንመርምር። የእኛ ጨዋታ AI እራሱን ከእሳት ለመከላከል መዘጋጀት አለበት.

ሌላው የሚገርመው ዘዴ የናይቭ ቤይስ ክላሲፋየርን በመጠቀም ብዙ የግብአት መረጃዎችን በማጥናት ሁኔታውን በመመደብ AI በሚፈለገው መንገድ ምላሽ እንዲሰጥ ማድረግ ነው። የባዬዥያ ክላሲፋየሮች በኢሜል አይፈለጌ መልዕክት ማጣሪያ ውስጥ በመጠቀማቸው ይታወቃሉ። እዚያም ቃላቶቹን ይመረምራሉ, ቃላቶቹ ቀደም ብለው ከነበሩበት (በአይፈለጌ መልእክት ወይም አይፈለጌ መልእክት) ያወዳድሯቸዋል, እና ስለገቢ ኢሜይሎች መደምደሚያ ላይ ይደርሳሉ. በትንሽ ግብዓቶችም ተመሳሳይ ነገር ማድረግ እንችላለን። AI በሚያያቸው ሁሉም ጠቃሚ መረጃዎች (እንደ የጠላት ክፍሎች የተፈጠሩት ፣ ምን አይነት ድግምት ይጠቀማሉ ፣ ወይም የትኞቹ ቴክኖሎጂዎች ላይ ምርምር ያደረጉ) እና የመጨረሻው ውጤት (ጦርነት ወይም ሰላም ፣ ጥድፊያ ወይም መከላከል ፣ ወዘተ) ላይ በመመስረት። - የተፈለገውን የ AI ባህሪን እንመርጣለን.

እነዚህ ሁሉ የስልጠና ዘዴዎች በቂ ናቸው, ነገር ግን በሙከራ መረጃ ላይ በመመርኮዝ እነሱን መጠቀም ጥሩ ነው. AI እርስዎ የተጫዋች ሞካሪዎች ከተጠቀሙባቸው የተለያዩ ስልቶች ጋር መላመድን ይማራል። ከተለቀቀ በኋላ ከተጫዋቹ ጋር የሚላመድ AI በጣም ሊተነበይ የሚችል ወይም ለማሸነፍ በጣም ከባድ ሊሆን ይችላል።

በእሴት ላይ የተመሰረተ መላመድ

ከጨዋታ ዓለማችን ይዘት እና ከህጎቹ አንፃር የግቤት ውሂቡን በቀላሉ ከመጠቀም ይልቅ በውሳኔ አሰጣጥ ላይ ተጽእኖ ያላቸውን የእሴቶች ስብስብ መለወጥ እንችላለን። ይህን እናደርጋለን፡-

  • AI በጨዋታው ጊዜ (ከላይ እንደተገለፀው) የዓለም ሁኔታ እና ቁልፍ ክስተቶች ላይ መረጃን ይሰብስብ።
  • በዚህ ውሂብ ላይ በመመስረት ጥቂት ጠቃሚ እሴቶችን እንለውጥ።
  • እነዚህን እሴቶች በማቀናበር ወይም በመገምገም ውሳኔዎቻችንን እንተገብራለን።

ለምሳሌ፣ አንድ ወኪል ከመጀመሪያው ሰው ተኳሽ ካርታ ላይ የሚመርጥባቸው ብዙ ክፍሎች አሉት። እያንዳንዱ ክፍል የራሱ ዋጋ አለው, ይህም ለመጎብኘት ምን ያህል እንደሚፈለግ ይወስናል. በዋጋው ላይ በመመስረት AI ወደ የትኛው ክፍል መሄድ እንዳለበት በዘፈቀደ ይመርጣል። ከዚያም ወኪሉ በየትኛው ክፍል ውስጥ እንደተገደለ ያስታውሳል እና ዋጋውን ይቀንሳል (ወደዚያ የመመለስ እድሉ). በተመሳሳይ ሁኔታ ለተገላቢጦሽ ሁኔታ - ወኪሉ ብዙ ተቃዋሚዎችን ካጠፋ, ከዚያም የክፍሉ ዋጋ ይጨምራል.

የማርኮቭ ሞዴል

የተሰበሰበውን መረጃ ትንበያ ለመስጠት ብንጠቀምስ? ለተወሰነ ጊዜ ተጫዋች የምናየውን እያንዳንዱን ክፍል የምናስታውስ ከሆነ ተጫዋቹ ወደየትኛው ክፍል ሊሄድ እንደሚችል እንገምታለን። የተጫዋቹን እንቅስቃሴዎች በክፍሎች (እሴቶች) በመከታተል እና በመመዝገብ, እነሱን መተንበይ እንችላለን.

ሶስት ክፍሎችን እንውሰድ ቀይ, አረንጓዴ እና ሰማያዊ. እንዲሁም የጨዋታውን ክፍለ ጊዜ ስንመለከት የቀረጽናቸው ምልከታዎች፡-

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

በእያንዳንዱ ክፍል ውስጥ ያሉት የምልከታዎች ብዛት እኩል ነው - አሁንም ለድብድብ ጥሩ ቦታ የት እንደምናደርግ አናውቅም። ስታቲስቲክስን መሰብሰብም በካርታው ውስጥ እኩል በሚታዩ ተጫዋቾች እንደገና በማፍለቅ ውስብስብ ነው። ነገር ግን በካርታው ላይ ከታዩ በኋላ ስለሚገቡት ቀጣይ ክፍል ያለው መረጃ አስቀድሞ ጠቃሚ ነው።

አረንጓዴው ክፍል ለተጫዋቾቹ እንደሚስማማ ማየት ይቻላል - ብዙ ሰዎች ከቀይ ክፍል ወደ እሱ ይንቀሳቀሳሉ ፣ 50% የሚሆኑት እዚያ ተጨማሪ ይቀራሉ። ሰማያዊው ክፍል, በተቃራኒው ተወዳጅ አይደለም, ማንም ወደ እሱ አይሄድም ማለት ይቻላል, እና ካደረጉ, ረጅም ጊዜ አይቆዩም.

ነገር ግን መረጃው የበለጠ ጠቃሚ ነገር ይነግረናል - ተጫዋቹ በሰማያዊ ክፍል ውስጥ ሲሆን, እኛ የምናየው ቀጣዩ ክፍል አረንጓዴ ሳይሆን ቀይ ይሆናል. ምንም እንኳን አረንጓዴው ክፍል ከቀይ ክፍል የበለጠ ተወዳጅ ቢሆንም ተጫዋቹ በሰማያዊ ክፍል ውስጥ ከሆነ ሁኔታው ​​ይለወጣል. የሚቀጥለው ግዛት (ማለትም ተጫዋቹ የሚሄድበት ክፍል) በቀድሞው ሁኔታ (ማለትም ተጫዋቹ አሁን ባለው ክፍል) ይወሰናል. ጥገኞችን ስለምንመረምር፣ ምልከታዎችን በራሳችን ከቆጠርን የበለጠ ትክክለኛ ትንበያዎችን እናደርጋለን።

ካለፈው ግዛት በተገኘው መረጃ መሰረት የወደፊቱን ሁኔታ መተንበይ የማርኮቭ ሞዴል ተብሎ የሚጠራ ሲሆን እንደነዚህ ያሉ ምሳሌዎች (ከክፍሎች ጋር) የማርኮቭ ሰንሰለቶች ይባላሉ. ንድፎቹ በተከታታይ ግዛቶች መካከል የመቀያየር እድልን የሚወክሉ በመሆናቸው በእያንዳንዱ ሽግግር ዙሪያ የመሆን እድል ያላቸው እንደ ኤፍኤስኤምኤስ በምስል ይታያሉ። ከዚህ ቀደም፣ አንድ ወኪል ያለበትን የባህሪ ሁኔታ ለመወከል FSM ን ተጠቅመን ነበር፣ ነገር ግን ይህ ጽንሰ-ሀሳብ ከወኪሉ ጋር የተገናኘም አልሆነም ወደ ማንኛውም ግዛት ይዘልቃል። በዚህ ሁኔታ ስቴቶቹ ወኪሉ የሚይዘውን ክፍል ይወክላሉ፡-

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

ይህ በአንጻራዊ ሁኔታ የስቴት ለውጦችን የመወከል ቀላል መንገድ ነው ፣ ይህም ለ AI የሚቀጥለውን ሁኔታ ለመተንበይ የተወሰነ ችሎታ ይሰጣል። ወደፊት ብዙ እርምጃዎችን መገመት ትችላለህ።

አንድ ተጫዋች በአረንጓዴው ክፍል ውስጥ ከሆነ, በሚቀጥለው ጊዜ በሚታይበት ጊዜ እዚያ የመቆየት እድሉ 50% ነው. ግን ከዚያ በኋላ እንኳን እዚያ የመሆን እድሉ ምን ያህል ነው? ተጫዋቹ ከሁለት ምልከታ በኋላ አረንጓዴ ክፍል ውስጥ የመቆየቱ እድል ብቻ ሳይሆን ወጥቶ የተመለሰበት እድልም አለ። አዲሱን መረጃ ግምት ውስጥ በማስገባት አዲሱ ሰንጠረዥ ይኸውና:

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ

ከሁለት ምልከታዎች በኋላ በአረንጓዴው ክፍል ውስጥ ተጫዋቹን የማየት እድሉ ከ 51% ጋር እኩል እንደሚሆን ያሳያል - 21% እሱ ከቀይ ክፍል እንደሚሆን ፣ 5% ተጫዋቹ በመካከላቸው ያለውን ሰማያዊ ክፍል እንደሚጎበኝ እና 25% ተጫዋቹ አረንጓዴውን ክፍል አይለቅም.

ሠንጠረዡ በቀላሉ የሚታይ መሳሪያ ነው - አሰራሩ በእያንዳንዱ ደረጃ ላይ ያሉትን እድሎች ማባዛት ብቻ ይጠይቃል. ይህ ማለት የወደፊቱን በአንድ ማስጠንቀቂያ ማየት ይችላሉ-ወደ ክፍል የመግባት እድሉ ሙሉ በሙሉ አሁን ባለው ክፍል ላይ የተመሰረተ እንደሆነ እንገምታለን. ይህ የማርኮቭ ንብረት ተብሎ ይጠራል - የወደፊቱ ሁኔታ የሚወሰነው በአሁኑ ጊዜ ብቻ ነው. ግን ይህ መቶ በመቶ ትክክል አይደለም. ተጫዋቾች በሌሎች ሁኔታዎች ላይ በመመስረት ውሳኔዎችን መለወጥ ይችላሉ-የጤና ደረጃ ወይም የጥይት መጠን። እነዚህን እሴቶች ስለማንመዘግብ፣ የእኛ ትንበያዎች ትክክለኛነታቸው ያነሰ ይሆናል።

ኤን-ግራም

የትግል ጨዋታ ምሳሌ እና የተጫዋቹን ጥምር እንቅስቃሴዎች መተንበይስ? ተመሳሳይ! ነገር ግን ከአንድ ግዛት ወይም ክስተት ይልቅ፣ ጥምር አድማን የሚያካትቱትን ሁሉንም ቅደም ተከተሎች እንመረምራለን።

ይህንን ለማድረግ አንዱ መንገድ እያንዳንዱን ግብአት (እንደ ኪክ፣ ፑንች ወይም ብሎክ ያሉ) በመጠባበቂያ ውስጥ ማከማቸት እና ሙሉውን ቋት እንደ ክስተት መፃፍ ነው። ስለዚህ ተጫዋቹ የSuperDeathFist ጥቃትን ለመጠቀም Kick, Kick, Punch ደጋግሞ ይጫናል, የ AI ሲስተም ሁሉንም ግብዓቶች በመጠባበቂያ ውስጥ ያከማቻል እና በእያንዳንዱ እርምጃ ውስጥ ጥቅም ላይ የዋሉትን የመጨረሻዎቹን ሶስት ያስታውሳል.

የጨዋታ AI እንዴት እንደሚፈጠር፡ ለጀማሪዎች መመሪያ
(በደማቅ ውስጥ ያሉት መስመሮች ተጫዋቹ የSuperDeathFist ጥቃትን ሲጀምር ነው።)

ኤአይኤው ተጫዋቹ ኪክን ሲመርጥ ሌላ Kick ሲከተል ሁሉንም አማራጮች ያያል እና የሚቀጥለው ግቤት ሁል ጊዜ ፓንች መሆኑን ያስተውላል። ይህ ወኪሉ የSuperDeathFist ጥምር እንቅስቃሴን እንዲተነብይ እና ከተቻለ እንዲያግደው ያስችለዋል።

እነዚህ የክስተቶች ቅደም ተከተሎች N-grams ይባላሉ, N የተከማቹ ንጥረ ነገሮች ቁጥር ነው. በቀድሞው ምሳሌ 3-ግራም (ትሪግራም) ነበር, ይህም ማለት: የመጀመሪያዎቹ ሁለት ግቤቶች ሶስተኛውን ለመተንበይ ጥቅም ላይ ይውላሉ. በዚህ መሠረት, በ 5-ግራም ውስጥ, የመጀመሪያዎቹ አራት ግቤቶች አምስተኛውን እና ወዘተ.

ንድፍ አውጪው የ N-grams መጠንን በጥንቃቄ መምረጥ ያስፈልገዋል. ትንሽ ኤን ትንሽ ማህደረ ትውስታን ይፈልጋል ነገር ግን ትንሽ ታሪክን ያከማቻል። ለምሳሌ፣ 2-ግራም (ቢግራም) ኪክን፣ ኪክ ወይም ኪክን፣ ቡጢን ይመዘግባል፣ ነገር ግን Kick፣ Kick፣ Punch ማከማቸት አይችልም፣ ስለዚህ AI ለ SuperDeathFist ጥምር ምላሽ አይሰጥም።

በሌላ በኩል ትላልቅ ቁጥሮች የበለጠ ማህደረ ትውስታን ይፈልጋሉ እና ብዙ ተጨማሪ አማራጮች ስለሚኖሩ AI ለማሰልጠን በጣም አስቸጋሪ ይሆናል. ሶስት ሊሆኑ የሚችሉ የኪክ፣ ፑንች ወይም ብሎክ ግብአቶች ካሉዎት እና ባለ 10-ግራም ከተጠቀምን ያ ወደ 60 ሺህ የሚጠጉ የተለያዩ አማራጮች ይሆናል።

የቢግራም ሞዴል ቀላል የማርኮቭ ሰንሰለት ነው - እያንዳንዱ ያለፈ ሁኔታ / የአሁኑ ሁኔታ ጥንድ ቢግራም ነው, እና በመጀመሪያው ላይ በመመስረት ሁለተኛውን ሁኔታ መተንበይ ይችላሉ. 3-ግራም እና ተለቅ ያለ ኤን-ግራም እንዲሁ እንደ ማርኮቭ ሰንሰለቶች ሊታሰብ ይችላል ፣ ሁሉም ንጥረ ነገሮች (በ N-gram ውስጥ ካለው የመጨረሻው በስተቀር) አንድ ላይ ሆነው የመጀመሪያውን ግዛት እና የመጨረሻውን አካል ሁለተኛውን ይመሰርታሉ። የውጊያው ጨዋታ ምሳሌ ከ Kick and Kick state ወደ Kick and Punch ግዛት የመሸጋገር እድልን ያሳያል። የበርካታ የግብአት ታሪክ ግቤቶችን እንደ አንድ አሃድ በመመልከት፣ የግብአት ቅደም ተከተሎችን በመሠረታዊነት ወደ የግዛቱ ክፍል እንለውጣለን። ይህ የማርኮቭን ንብረት ይሰጠናል ፣ ይህም የሚቀጥለውን ግብዓት ለመተንበይ እና ምን ዓይነት ጥምር እንቅስቃሴ ቀጥሎ እንደሚሆን ለመገመት የማርኮቭ ሰንሰለቶችን እንድንጠቀም ያስችለናል።

መደምደሚያ

በአርቴፊሻል ኢንተለጀንስ እድገት ውስጥ በጣም የተለመዱ መሳሪያዎችን እና አቀራረቦችን ተነጋገርን. በተጨማሪም ጥቅም ላይ መዋል ያለባቸውን እና በተለይም ጠቃሚ የሆኑትን ሁኔታዎች ተመልክተናል.

ይህ የጨዋታ AI መሰረታዊ ነገሮችን ለመረዳት በቂ መሆን አለበት. ግን, በእርግጥ, እነዚህ ሁሉም ዘዴዎች አይደሉም. ብዙም ታዋቂ ያልሆኑ ግን ውጤታማ ያልሆኑ የሚከተሉትን ያካትታሉ፡-

  • ኮረብታ መውጣትን፣ ቀስ በቀስ መውረድን እና የዘረመል ስልተ ቀመሮችን ጨምሮ የማመቻቸት ስልተ ቀመሮች
  • ተቃራኒ ፍለጋ/መርሐግብር ስልተ ቀመሮች (ሚኒማክስ እና አልፋ-ቤታ መግረዝ)
  • የምደባ ዘዴዎች (ፐርሴፕትሮን, የነርቭ ኔትወርኮች እና የድጋፍ ቬክተር ማሽኖች)
  • የኤጀንቶችን ግንዛቤ እና ትውስታ ለማስኬድ ስርዓቶች
  • የሕንፃ አቀራረቦች ወደ AI (ድብልቅ ሥርዓቶች ፣ ንዑስ-ሕንፃዎች እና ሌሎች የ AI ስርዓቶችን መደራረብ መንገዶች)
  • አኒሜሽን መሳሪያዎች (እቅድ እና እንቅስቃሴ ማስተባበር)
  • የአፈጻጸም ሁኔታዎች (የዝርዝር ደረጃ፣ በማንኛውም ጊዜ እና የጊዜ አወጣጥ ስልተ ቀመሮች)

በርዕሱ ላይ የመስመር ላይ ግብዓቶች፡-

1. GameDev.net አለው በ AI ላይ ከጽሁፎች እና አጋዥ ስልጠናዎች ጋር ክፍል, እንዲሁም መድረኩ.
2. AiGameDev.com ከጨዋታ AI እድገት ጋር በተያያዙ ሰፊ ርዕሰ ጉዳዮች ላይ ብዙ አቀራረቦችን እና መጣጥፎችን ይዟል።
3. የ GDC ቮልት ከGDC AI Summit የመጡ ርዕሶችን ያካትታል፣ ብዙዎቹ በነጻ ይገኛሉ።
4. ጠቃሚ ቁሳቁሶች በድረ-ገጹ ላይም ሊገኙ ይችላሉ AI ጨዋታ ፕሮግራመሮች Guild.
5. ቶሚ ቶምፕሰን፣ AI ተመራማሪ እና የጨዋታ አዘጋጅ፣ ቪዲዮዎችን በYouTube ላይ ይሰራል AI እና ጨዋታዎች በንግድ ጨዋታዎች ውስጥ ስለ AI ማብራሪያ እና ጥናት.

በርዕሱ ላይ መጽሐፍት:

1. የ Game AI Pro መጽሐፍ ተከታታይ የተወሰኑ ባህሪያትን እንዴት መተግበር እንደሚቻል ወይም የተወሰኑ ችግሮችን እንዴት እንደሚፈታ የሚያብራሩ የአጭር መጣጥፎች ስብስብ ነው።

ጨዋታ AI Pro: የተሰበሰበ የጨዋታ AI ባለሙያዎች ጥበብ
ጨዋታ AI Pro 2: የተሰበሰበ የጨዋታ AI ባለሙያዎች ጥበብ
ጨዋታ AI Pro 3: የተሰበሰበ የጨዋታ AI ባለሙያዎች ጥበብ

2. AI Game Programming ጥበብ ተከታታይ የ Game AI Pro ተከታታይ ቀዳሚ ነው። የቆዩ ዘዴዎችን ይዟል, ግን ሁሉም ማለት ይቻላል ዛሬም ቢሆን ጠቃሚ ናቸው.

AI ጨዋታ ፕሮግራሚንግ ጥበብ 1
AI ጨዋታ ፕሮግራሚንግ ጥበብ 2
AI ጨዋታ ፕሮግራሚንግ ጥበብ 3
AI ጨዋታ ፕሮግራሚንግ ጥበብ 4

3. አርቲፊሻል ኢንተለጀንስ፡ ዘመናዊ አቀራረብ የአርቴፊሻል ኢንተለጀንስ አጠቃላይ መስክን ለመረዳት ለሚፈልጉ ሁሉ መሠረታዊ ከሆኑ ጽሑፎች አንዱ ነው። ይህ ስለ ጨዋታ እድገት መጽሐፍ አይደለም - የ AI መሰረታዊ ነገሮችን ያስተምራል።

ምንጭ: hab.com

አስተያየት ያክሉ