ክፍል 7 / 11

የኮድ ማመንጨት እና ሞተር ውህደት፡ አንድነት (C#) እና እውነተኛ ያልሆነ (ብሉፕሪንት/ሲ++)

ትርፍ፡

  • ሞተር፣ ሥሪት፣ ቋንቋ እና አርክቴክቸር አውድ በመስጠት አስተማማኝ፣ ሊጠናቀር የሚችል የጨዋታ ኮድ ከአርቴፊሻል ኢንተለጀንስ የማዘጋጀት ችሎታ እና ኮዱን በማንበብ እና በመረዳት በማዋሃድ።
  • የጨዋታ ኮድ-ተኮር አፈጻጸምን (በፍሬም ምደባ)፣ የሞተርን የሕይወት ዑደት እና የማሰብ ችሎታን በማቀናጀት፣ በመሞከር እና በመገለጫ የማስተዳደር ችሎታ
  • በባለብዙ-ተጫዋች ጨዋታዎች ውስጥ የአስተናጋጅ-ስልጣን መርህን የመተግበር እና የደህንነት መረጃን በሃላፊነት የመጠቀም ችሎታ የራስዎን ጨዋታ ለመከላከል እና ለማረጋገጥ ብቻ።

ጨዋታው ሶፍትዌር ነው; ምንም ያህል በጥሩ ሁኔታ የተነደፈ ቢሆንም, በኮድ ይተገበራል. የጨዋታው ሞተር ጨዋታውን እንዲሰራ የሚያደርግ መሠረተ ልማት ነው፡ አንድነት (በሰፋ ጥቅም ላይ የዋለ ኢንጂን ስክሪፕት በ C#) እና Unreal Engine (ሞተር C++ እና ቪዥዋል ስክሪፕት ቋንቋ ብሉፕሪንት) ሁለቱ በጣም የተለመዱ ናቸው። AI በኮድ ማመንጨት ውስጥ በጣም የበሰሉ እርዳታዎች አንዱ ነው፡ የተጫዋች ተቆጣጣሪ ፣የእቃ ዝርዝር ስርዓት ፣የግዛት ማሽኖች ፣ማዳን/ጭነት ፣በይነገጽ አመክንዮ ፣ማረም እና ማደስ (ባህሪውን ሳይጥስ ኮድን ማስተካከል)። ግን የጨዋታ ኮድ የራሱ ችግሮች አሉት-አፈፃፀም (የፍሬም ፍጥነት) ፣ የሞተር የህይወት ዑደት ፣ ባለብዙ ተጫዋች ደህንነት። በዚህ ክፍል ውስጥ በጨዋታ ኮድ ውስጥ AIን ደህንነቱ በተጠበቀ ሁኔታ እና በብቃት እንዴት እንደሚጠቀሙ ይማራሉ ።

ወሳኝ መርህ: ሞተር እና ስሪት አውድ

AI ለየትኛው ሞተር እና ስሪት እንደሚጽፍ ካላወቀ ግራ የተጋባ፣ ጊዜ ያለፈበት ወይም የሌለ ኤፒአይ ይፈጥራል። ስለዚህ በእያንዳንዱ የኮድ መጠየቂያ ሞተር፣ ስሪት፣ ቋንቋ እና አርክቴክቸር አውድ ይስጡ። "ለአንድነት የተጫዋች እንቅስቃሴን ይፃፉ" ደካማ ነው; "Unity 2022.3, C #, new Input System, Rigidbody based physics movement" ኃይለኛ ነው። ብሉፕሪንት ወይም C++ በ Unreal ይፈልጉ እንደሆነ እና የትኛውን ስሪት እየተጠቀሙ እንደሆነ ይግለጹ።

ደህንነቱ የተጠበቀ የኮድ ፍሰት ደረጃ በደረጃ፡

  1. አውድ ስጥ (ሞተር፣ ስሪት፣ ቋንቋ፣ ወቅታዊ አርክቴክቸር፣ ገደቦች)።
  2. ትንሽ እና የተገለጸውን (አንድ አካል እንጂ አጠቃላይ ስርዓቱን አይደለም) ይፈልጋሉ.
  3. ኮዱን ያንብቡ እና ይረዱ (በመስመር የሚሰራውን ይረዱ ፣ የማይረዱትን ኮድ አያስቀምጡ)።
  4. ይገንቡ እና ይሞክሩ (በሞተር ላይ ያሂዱ ፣ መገለጫ - አፈፃፀምን ይለኩ)።
  5. Refactor እና ውህደት (የፕሮጀክት ደረጃን አዛምድ)።
ጠቃሚ ምክር: AI ን ኮድ ሲጠይቁ "በአስተያየቶች ያብራሩ" ይበሉ. ግብዎ ኮዱን መረዳት ነው; ያልተረዱትን የ AI ኮድ በፕሮጀክት ውስጥ ማስገባት የማይቀር ዕዳ ይከማቻል። እንዲሁም ኮድን በትንሽ እና ሊፈተኑ በሚችሉ ቁርጥራጮች ይጠይቁ፡ ከ500-መስመር ስርዓት ይልቅ፣ አንድ የተወሰነ ስራ የሚሰራ 30-50 መስመር አካል ሁለቱንም ለማረጋገጥ እና ለማዋሃድ ቀላል ነው።

ለጨዋታ ኮድ የተወሰኑ ወጥመዶች

አፈጻጸም። የጨዋታ ኮድ በሰከንድ ከ30-60+ ጊዜ ይሰራል። AI ውድ ስራዎችን (የማህደረ ትውስታ ድልድል፣ ፍለጋ፣ የሕብረቁምፊ ማሻሻያ) በእያንዳንዱ ፍሬም ላይ በሚሠራው የዝማኔ ዑደት ውስጥ ማስቀመጥ ይችላል። ይህ የፍሬም ፍጥነትን ይቀንሳል. የመገለጫ አፈጻጸም ወሳኝ ኮዶች እና እንደ "በእያንዳንዱ ፍሬም ላይ አሂድ፣ ምንም ምደባ የለም" ያሉ የ AI ገደቦችን ይስጡ።

የሞተር የሕይወት ዑደት. AI አንዳንድ ጊዜ ልዩ ዘዴዎች ሲጠሩ ግራ ይጋባል, ለምሳሌ በ Unity ውስጥ ንቁ/ጀምር/አዘምን, BeginPlay/Tick in Unreal. በመሞከር የህይወት ዑደት ስህተቶችን ይያዙ።

ባለብዙ ተጫዋች ደህንነት። ይህ ከ IT/ደህንነት አንፃር በጣም ወሳኝ ጉዳይ ነው። ባለብዙ ተጫዋች ደንበኛውን በጭራሽ አትመኑ፡ በተጫዋቹ ኮምፒውተር ላይ ያለው ደንበኛ ለማጭበርበር ሊታለል ይችላል። እንደ ነጥቦች፣ ጉዳት፣ ገንዘብ በአገልጋዩ ላይ (አገልጋይ-ባለስልጣን) ያሉ ወሳኝ ሁኔታዎችን ያረጋግጡ። በዚህ መርህ በ AI የተፈጠረውን የአውታረ መረብ ኮድ ይቆጣጠሩ ፣ AI በደንበኛ የሚታመን ተጋላጭነትን ከፈጠረ፣ ያስተካክሉት። ይህንን መረጃ የራስዎን ጨዋታ ለመከላከል እና ለማረጋገጥ ብቻ ይጠቀሙ; ያለፈቃድ የሌላ ሰው አገልጋይ ማግኘት ወይም ማጭበርበር ሕገ-ወጥ እና ሥነ ምግባር የጎደለው ነው።

ማስጠንቀቂያ፡ AI የመነጨ ኮድ ተጋላጭነቶችን ሊይዝ ይችላል (የግቤት ማረጋገጫ ይጎድላል፣ የደንበኛ እምነት፣ የፋይል ማጭበርበርን ያስቀምጡ)። ኮዱን በጭፍን አይቀበሉ; የደህንነት ግምገማ ያካሂዱ፣ በተለይም የአውታረ መረብ፣ የኢኮኖሚክስ እና የቁጠባ ኮድ።

የህንጻ እና የጥገና ዕዳ

AI የግለሰብ ተግባራትን በፍጥነት ያዘጋጃል; ነገር ግን የጨዋታው ስነ-ህንፃ-ስርዓቶች እንዴት እንደሚከፋፈሉ, እንዴት እንደሚነጋገሩ, መረጃ የሚቀመጥበት - የረጅም ጊዜ ውሳኔ ነው, እና የሰው ነው. AI “ሙሉውን ዝርዝር ይፃፉ ፣ ይዋጉ እና ስርዓቱን በአንድ ላይ እንዲያድኑ” ከነገሯት የሚሰራ ግን በጥብቅ የተጣመረ ፣ ለመንከባከብ አስቸጋሪ ፣ ሊሰፋ የማይችል የክር ኳስ ያገኛሉ ። በምትኩ፣ አርክቴክቸርን ነድፈሃል፣ ትናንሽ ክፍሎችን በተገለጹ በይነገጾች ለመሙላት AIን ተጠቀም። ጥሩ አርክቴክቸር ጨዋታው እያደገ ሲሄድ ለውጥ ያመጣል፡ መጥፎ ውሳኔዎች ከአንድ አመት በኋላ ተመልሰው ይመጣሉ እንደ ቴክኒካል ዕዳ እያንዳንዱን አዲስ ባህሪ የሚዘገይ።

ሌላው የጥገና ዕዳ ምንጭ ወደ ፕሮጀክቱ የሚገባ ኮድ ነው. በ AI የተጻፈ ስርዓት ዛሬ ሊሠራ ይችላል; ነገር ግን ከስድስት ወራት በኋላ መተካት ሲኖርብዎት እና ማንም ሰው ያደረጉትን ነገር አያስታውስም, ዕዳው ወደ ወለድ ይለወጣል. ለዚህም ነው ሁለት ዘርፎች አስፈላጊ የሆኑት፡ በምርት ጊዜ ኮዱን ማንበብ እና መረዳት እና ከ AI አስተያየቶችን ማብራርያ መጠየቅ። እንደ አንድ ደንብ፣ እራስዎ እንደገና መፃፍ ወይም ቢያንስ በመስመር ማስረዳት የማይችሉትን ማንኛውንም AI ኮድ ወደ ፕሮጀክትዎ አያስገቡ። AI ፍጥነት ይሰጣል; የእርስዎ ተግሣጽ ዘላቂነት ይሰጣል.

ሶስት ጥቃቅን ጉዳዮች

ጉዳይ 1 - የመልቀቂያ አውድ ሳንካውን ከልክሏል። አንድ ፕሮግራመር መጀመሪያ "ለአንድነት ኢንቬንቶሪ ጻፍ" አለ; ኮዱ የድሮ ኤፒአይ እየተጠቀመ ነበር፣ አላጠናቀረም። ከዚያም አውድ ሰጠ "Unity 2022.3, C #, ScriptableObject ላይ የተመሠረተ"; ኮዱ ለመጀመሪያ ጊዜ ተሰብስቦ ከፕሮጀክቱ ጋር ይጣጣማል. ዐውደ-ጽሑፉ የአንድ ሰዓት ማረም አስቀምጧል።

ጉዳይ 2 - የአፈፃፀም ወጥመድ. በአንድ ጨዋታ የፍሬም ፍጥነቱ ዝቅተኛ ነበር። መግለጫ በሚሰጥበት ጊዜ በአይአይ የተሰራ የማሻሻያ ዘዴ በእያንዳንዱ ፍሬም ውስጥ አዲስ ዝርዝር ሲመድብ እና ጠላቶችን ሲፈልግ ታይቷል። የፍሬም ፍጥነቱን ከ42 ወደ 60 በመጨመር ኮዱን በተሸጎጠ ማጣቀሻ እና ባለአራት ያልሆነ ዝማኔ ተስተካክሏል።

ጉዳይ 3 - የደህንነት ተጋላጭነት ተያዘ። ባለብዙ-ተጫዋች ጨዋታ ውስጥ, AI የመነጨ ኮድ በደንበኛው ላይ ያለውን ጉዳት ያሰላል እና ለአገልጋዩ ሪፖርት አድርጓል; ይህ ለማጭበርበር ክፍት ነበር (ደንበኛው ማለቂያ የሌለው ጉዳት ሊያደርስ ይችላል)። ኮዱ አገልጋይ-ባለስልጣን ሆኗል (አገልጋዩ ጉዳቱን ያሰላል)። ኦዲቱ ከሕትመት በኋላ የሚደርስ የማጭበርበር ቅሌት እንዳይከሰት አድርጓል።

አራት ሊገለበጡ የሚችሉ አብነቶች

1) የኮድ ጥያቄ ከአውድ ጋር፡-

ሞተር፡ አንድነት 2022.3. ቋንቋ፡ C# አርክቴክቸር፡ [ለምሳሌ፡. አካል ላይ የተመሠረተ.ገደብ: አዘምን ውስጥ መመደብ; ሊነበብ የሚችል እና አስተያየት ይስጡ.ተግባር: [ነጠላ, የተወሰነ አካል, ለምሳሌ. "ድርብ ዝላይ ቁምፊ መቆጣጠሪያ"]. የሚጠቀሙት እያንዳንዱ ኤፒአይ በዚህ ስሪት ውስጥ መሆኑን ያረጋግጡ; እርግጠኛ ካልሆንክ አሳውቀኝ።

2) የኮድ ማብራሪያ/ግምገማ፡-

የሚከተለውን ኮድ መስመር በመስመር ያብራሩ እና ይፃፉ (1) ምን እንደሚሰራ ፣ (2) የአፈፃፀም ችግሮች (በፍሬም ምደባ ፣ ውድ ፍለጋ) ፣ (3) ሊሆኑ የሚችሉ ስህተቶች ፣ (4) የማሻሻያ ጥቆማዎች ። ኮድ: [ለጥፍ]

3) ባለብዙ-ተጫዋች ደህንነት ኦዲት;

የሚከተለውን ባለብዙ ተጫዋች ኮድ ለደህንነት ይመርምሩ። በተለይ፡ ደንበኛው የሚታመንባቸው ቦታዎች፣ በአገልጋዩ ላይ መረጋገጥ ያለበት ወሳኝ ሁኔታ (ጉዳት፣ ነጥቦች፣ ገንዘብ)፣ የግቤት ማረጋገጫ ይጎድላል። አገልጋይ-ባለስልጣን ለማድረግ እንዲስተካከል ይጠቁሙ።ይህ የራሴን ጨዋታ ለመከላከል ብቻ ነው። ኮድ: [ለጥፍ]

4) የአፈጻጸም መገለጫ ላይ ያተኮረ ተሃድሶ፡-

ይህ ኮድ በእያንዳንዱ ፍሬም ላይ ይሰራል እና የፍሬም ፍጥነቱን ይቀንሳል፡ [ኮድ]። ምደባዎችን፣ ውድ ፍለጋዎችን እና አላስፈላጊ የፍሬም በፍሬም ስራዎችን ያግኙ። በመሸጎጫ እና ባነሰ ተደጋጋሚ ዝመናዎች ባህሪን ሳያቋርጡ ያሻሽሉ። ለውጦቹን ያብራሩ.

ደካማ ጥያቄ / ጠንካራ ጥያቄ

ደካማ ጥያቄ፡

በዩኒቲ ውስጥ የማዳን ስርዓት ይፃፉ።

ምንም ስሪት, ቅርጸት, የውሂብ ወሰን, ደህንነት; ውጤቱ አጠቃላይ እና አደገኛ ነው.

ኃይለኛ ጥያቄ፡-

ሞተር፡ አንድነት 2022.3፣ ሲ#። ተግባር፡- JSON ላይ የተመሰረተ የማዳን/የጭነት ስርዓት። ለመዳን፡ የተጫዋች ቦታ፣ ክምችት፣ እድገት። ገደብ: በፋይል ሙስና ላይ የስህተት አስተዳደርን ያግኙ; በቀላሉ በተጫዋቹ በመቀየር ማጭበርበርን ለመከላከል ኢንተግሪቲ ቼክ (ሃሽ) ወደ ማስቀመጫው ፋይል ይጨምሩ። ኮዱን አስተያየት ይስጡ እና እያንዳንዱ ኤፒአይ በዚህ ስሪት ላይ መሆኑን ያረጋግጡ።

ስሪት ማውጣት፣ ወሰን፣ የስህተት አያያዝ እና የታማኝነት ማረጋገጥ ውጤቱን ያጠነክራል።

የሞተር/ቋንቋ አውድ ሰንጠረዥ

ሞተር

ቋንቋ

ለ AI ምን መስጠት እንዳለቦት

ልዩ ትኩረት

አንድነት

ሲ#

ስሪት ፣ የግቤት / ፊዚክስ ስርዓት

ድልድልን ያዘምኑ, የህይወት ዑደት

ከእውነታው የራቀ

ንድፍ

ስሪት፣ የመስቀለኛ መንገድ አውድ

የእይታ ሎጂክ ገደቦች

ከእውነታው የራቀ

ሲ++

ስሪት, ሞጁል መዋቅር

ማህደረ ትውስታ ፣ ጂሲ ፣ ማክሮዎች

ባለብዙ ተጫዋች

ሁለቱም

የአውታረ መረብ ሞዴል

አቅራቢ-አገዛዝ

የተለመዱ ስህተቶች

  • ሞተር/ስሪት አይገልጽም። ጊዜው ካለፈበት ወይም ከተሰራ ኤፒአይ ነው የሚመጣው።
  • ኮድ ሳይረዱት ማመን. ሊቆይ የማይችል ዕዳ ይከማቻል.
  • አፈጻጸም አለመለካት። የፍሬም-በ-ፍሬም ምደባ የፍሬም ፍጥነትን በጸጥታ ይቀንሳል።
  • ደንበኛው ማመን. በብዙ ተጫዋች ውስጥ የማታለል ተጋላጭነት አለ።
  • መላውን ስርዓት በአንድ ጊዜ መፈለግ. ትንሽ ፣ ሊሞከር የሚችል ቁራጭ የበለጠ ደህንነቱ የተጠበቀ ነው።

በማጠቃለያው

AI በጨዋታ ኮድ ውስጥ ኃይለኛ ረዳት ነው, ግን ሞተር, ስሪት እና የስነ-ህንፃ አውድ ያስፈልገዋል. ኮዱን ሳያነቡ እና ሳይረዱት ፣ ሳይሰበስቡ እና ሳይሞክሩት እና አፈፃፀሙን እና ደህንነትን ሳያረጋግጡ ወደ ፕሮጀክት ውስጥ አያስገቡት። በባለብዙ ተጫዋች የአገልጋይ-ስልጣን ጠብቅ እና የደህንነት መረጃን ለመከላከያ እና የማረጋገጫ አላማዎች ብቻ ይጠቀሙ።

የመተግበሪያ ተግባር

ትንሽ አካል ይምረጡ (ለምሳሌ ድርብ ዝላይ ወይም ቀላል ክምችት)። ሞተር እና ስሪት "የኮድ ጥያቄ ከአውድ" አብነት ጋር በማቅረብ ኮድ ይፍጠሩ። ከዚያ ተመሳሳይ ኮድ በ"ኮድ መግለጫ/ግምገማ" አብነት እንዲገመገም በማድረግ የአፈጻጸም እና የሳንካ ስጋቶችን ያስወግዱ። በሞተሩ ውስጥ ያለውን ኮድ ያሰባስቡ እና ይፈትሹ.

የማረጋገጫ ዝርዝር

  • [ ] እኔ ሞተር, ስሪት, ቋንቋ እና አርክቴክቸር አውድ ሰጠሁ.
  • [] ኮዱን አንብቤ ተረዳሁ; በአስተያየት ፈልጌ ነበር።
  • [ ] እኔ አጠናቅሬ በሞተሩ ውስጥ ሞከርኩት እና አፈፃፀሙን ለካሁት።
  • [] በኔትወርኩ/በኢኮኖሚ/በማስቀመጥ ኮድ ውስጥ የደህንነት ፍተሻ አደረግሁ።
  • [ ] የራሴን ጨዋታ ለመከላከል የደህንነት መረጃን ብቻ ነው የተጠቀምኩት።