ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಆಟಗಳಲ್ಲಿ ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯ ಕುರಿತು ನಾನು ಕೆಲವು ಆಸಕ್ತಿದಾಯಕ ವಿಷಯಗಳನ್ನು ನೋಡಿದ್ದೇನೆ. ಸರಳ ಉದಾಹರಣೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು AI ಕುರಿತು ಮೂಲಭೂತ ವಿಷಯಗಳ ವಿವರಣೆಯೊಂದಿಗೆ, ಮತ್ತು ಅದರ ಅನುಕೂಲಕರ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ವಿನ್ಯಾಸಕ್ಕಾಗಿ ಹಲವು ಉಪಯುಕ್ತ ಸಾಧನಗಳು ಮತ್ತು ವಿಧಾನಗಳಿವೆ. ಅವುಗಳನ್ನು ಹೇಗೆ, ಎಲ್ಲಿ ಮತ್ತು ಯಾವಾಗ ಬಳಸಬೇಕು ಎಂಬುದೂ ಇದೆ.

ಹೆಚ್ಚಿನ ಉದಾಹರಣೆಗಳನ್ನು ಸೂಡೊಕೋಡ್‌ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ, ಆದ್ದರಿಂದ ಯಾವುದೇ ಸುಧಾರಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಜ್ಞಾನದ ಅಗತ್ಯವಿಲ್ಲ. ಕಟ್ ಅಡಿಯಲ್ಲಿ ಚಿತ್ರಗಳು ಮತ್ತು gif ಗಳೊಂದಿಗೆ ಪಠ್ಯದ 35 ಹಾಳೆಗಳಿವೆ, ಆದ್ದರಿಂದ ಸಿದ್ಧರಾಗಿ.

ಯುಪಿಡಿ ನಾನು ಕ್ಷಮೆಯಾಚಿಸುತ್ತೇನೆ, ಆದರೆ ನಾನು ಈಗಾಗಲೇ ಈ ಲೇಖನದ ನನ್ನ ಸ್ವಂತ ಅನುವಾದವನ್ನು ಹ್ಯಾಬ್ರೆಯಲ್ಲಿ ಮಾಡಿದ್ದೇನೆ ರೋಗಿ ಶೂನ್ಯ. ನೀವು ಅವರ ಆವೃತ್ತಿಯನ್ನು ಓದಬಹುದು ಇಲ್ಲಿ, ಆದರೆ ಕೆಲವು ಕಾರಣಗಳಿಗಾಗಿ ಲೇಖನವು ನನ್ನನ್ನು ಹಾದುಹೋಯಿತು (ನಾನು ಹುಡುಕಾಟವನ್ನು ಬಳಸಿದ್ದೇನೆ, ಆದರೆ ಏನೋ ತಪ್ಪಾಗಿದೆ). ಮತ್ತು ನಾನು ಆಟದ ಅಭಿವೃದ್ಧಿಗೆ ಮೀಸಲಾಗಿರುವ ಬ್ಲಾಗ್‌ನಲ್ಲಿ ಬರೆಯುತ್ತಿರುವುದರಿಂದ, ಚಂದಾದಾರರಿಗೆ ನನ್ನ ಅನುವಾದದ ಆವೃತ್ತಿಯನ್ನು ಬಿಡಲು ನಾನು ನಿರ್ಧರಿಸಿದೆ (ಕೆಲವು ಅಂಕಗಳನ್ನು ವಿಭಿನ್ನವಾಗಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾಗಿದೆ, ಕೆಲವು ಡೆವಲಪರ್‌ಗಳ ಸಲಹೆಯ ಮೇರೆಗೆ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಬಿಟ್ಟುಬಿಡಲಾಗಿದೆ).

AI ಎಂದರೇನು?

ಗೇಮ್ AI ಆಬ್ಜೆಕ್ಟ್ ಇರುವ ಪರಿಸ್ಥಿತಿಗಳ ಆಧಾರದ ಮೇಲೆ ಯಾವ ಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕು ಎಂಬುದರ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ. ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ "ಬುದ್ಧಿವಂತ ಏಜೆಂಟ್" ನಿರ್ವಹಣೆ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಅಲ್ಲಿ ಏಜೆಂಟ್ ಆಟಗಾರನ ಪಾತ್ರ, ವಾಹನ, ಬೋಟ್ ಅಥವಾ ಕೆಲವೊಮ್ಮೆ ಹೆಚ್ಚು ಅಮೂರ್ತವಾದದ್ದು: ಸಂಪೂರ್ಣ ಗುಂಪು ಅಥವಾ ನಾಗರಿಕತೆ. ಪ್ರತಿಯೊಂದು ಸಂದರ್ಭದಲ್ಲೂ ಅದು ತನ್ನ ಪರಿಸರವನ್ನು ನೋಡಬೇಕು, ಅದರ ಆಧಾರದ ಮೇಲೆ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕು ಮತ್ತು ಅವುಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ವರ್ತಿಸಬೇಕು. ಇದನ್ನು ಸೆನ್ಸ್/ಥಿಂಕ್/ಆಕ್ಟ್ ಸೈಕಲ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ:

  • ಇಂದ್ರಿಯ: ಏಜೆಂಟ್ ತನ್ನ ಪರಿಸರದಲ್ಲಿ ತನ್ನ ನಡವಳಿಕೆಯ ಮೇಲೆ ಪ್ರಭಾವ ಬೀರಬಹುದಾದ ವಸ್ತುಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತಾನೆ ಅಥವಾ ಪಡೆಯುತ್ತಾನೆ (ಹತ್ತಿರದ ಬೆದರಿಕೆಗಳು, ಸಂಗ್ರಹಿಸಲು ವಸ್ತುಗಳು, ಅನ್ವೇಷಿಸಲು ಆಸಕ್ತಿದಾಯಕ ಸ್ಥಳಗಳು).
  • ಯೋಚಿಸಿ: ಏಜೆಂಟ್ ಹೇಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತಾನೆ (ವಸ್ತುಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಇದು ಸಾಕಷ್ಟು ಸುರಕ್ಷಿತವಾಗಿದೆಯೇ ಅಥವಾ ಅವನು ಮೊದಲು ಹೋರಾಡಬೇಕೇ / ಮರೆಮಾಡಬೇಕೇ ಎಂದು ಪರಿಗಣಿಸುತ್ತದೆ).
  • ಕಾಯಿದೆ: ಏಜೆಂಟ್ ಹಿಂದಿನ ನಿರ್ಧಾರವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಕ್ರಮಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತಾನೆ (ಶತ್ರು ಅಥವಾ ವಸ್ತುವಿನ ಕಡೆಗೆ ಚಲಿಸಲು ಪ್ರಾರಂಭಿಸುತ್ತಾನೆ).
  • ... ಈಗ ಪಾತ್ರಗಳ ಕ್ರಿಯೆಗಳಿಂದಾಗಿ ಪರಿಸ್ಥಿತಿ ಬದಲಾಗಿದೆ, ಆದ್ದರಿಂದ ಚಕ್ರವು ಹೊಸ ಡೇಟಾದೊಂದಿಗೆ ಪುನರಾವರ್ತಿಸುತ್ತದೆ.

AI ಲೂಪ್‌ನ ಸೆನ್ಸ್ ಭಾಗದ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಸ್ವಾಯತ್ತ ಕಾರುಗಳು ರಸ್ತೆಯ ಚಿತ್ರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ, ಅವುಗಳನ್ನು ರಾಡಾರ್ ಮತ್ತು ಲಿಡಾರ್ ಡೇಟಾದೊಂದಿಗೆ ಸಂಯೋಜಿಸುತ್ತವೆ ಮತ್ತು ಅವುಗಳನ್ನು ಅರ್ಥೈಸುತ್ತವೆ. ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಯಂತ್ರ ಕಲಿಕೆಯಿಂದ ಮಾಡಲಾಗುತ್ತದೆ, ಇದು ಒಳಬರುವ ಡೇಟಾವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಅದಕ್ಕೆ ಅರ್ಥವನ್ನು ನೀಡುತ್ತದೆ, "ನಿಮಗಿಂತ 20 ಗಜಗಳಷ್ಟು ಮುಂದೆ ಇನ್ನೊಂದು ಕಾರು ಇದೆ" ನಂತಹ ಶಬ್ದಾರ್ಥದ ಮಾಹಿತಿಯನ್ನು ಹೊರತೆಗೆಯುತ್ತದೆ. ಇವು ವರ್ಗೀಕರಣ ಸಮಸ್ಯೆಗಳು ಎಂದು ಕರೆಯಲ್ಪಡುತ್ತವೆ.

ಹೆಚ್ಚಿನ ಡೇಟಾವು ಈಗಾಗಲೇ ಅದರ ಅವಿಭಾಜ್ಯ ಅಂಗವಾಗಿರುವುದರಿಂದ ಮಾಹಿತಿಯನ್ನು ಹೊರತೆಗೆಯಲು ಆಟಗಳಿಗೆ ಸಂಕೀರ್ಣ ವ್ಯವಸ್ಥೆಯ ಅಗತ್ಯವಿಲ್ಲ. ಮುಂದೆ ಶತ್ರುವಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಲು ಇಮೇಜ್ ರೆಕಗ್ನಿಷನ್ ಅಲ್ಗಾರಿದಮ್‌ಗಳನ್ನು ಚಲಾಯಿಸುವ ಅಗತ್ಯವಿಲ್ಲ - ಆಟವು ಈಗಾಗಲೇ ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳುವ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಮಾಹಿತಿಯನ್ನು ನೇರವಾಗಿ ತಿಳಿದಿದೆ ಮತ್ತು ಫೀಡ್ ಮಾಡುತ್ತದೆ. ಆದ್ದರಿಂದ, ಚಕ್ರದ ಇಂದ್ರಿಯ ಭಾಗವು ಥಿಂಕ್ ಮತ್ತು ಆಕ್ಟ್ ಭಾಗಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ ಸರಳವಾಗಿರುತ್ತದೆ.

ಗೇಮ್ AI ನ ಮಿತಿಗಳು

AI ಹಲವಾರು ಮಿತಿಗಳನ್ನು ಹೊಂದಿದೆ, ಅದನ್ನು ಗಮನಿಸಬೇಕು:

  • ಯಂತ್ರ ಕಲಿಕೆಯ ಅಲ್ಗಾರಿದಮ್ ಇದ್ದಂತೆ AI ಗೆ ಮುಂಚಿತವಾಗಿ ತರಬೇತಿ ನೀಡುವ ಅಗತ್ಯವಿಲ್ಲ. ಹತ್ತಾರು ಸಾವಿರ ಆಟಗಾರರನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಮತ್ತು ಅವರ ವಿರುದ್ಧ ಆಡಲು ಉತ್ತಮ ಮಾರ್ಗವನ್ನು ಕಲಿಯಲು ಅಭಿವೃದ್ಧಿಯ ಸಮಯದಲ್ಲಿ ನರಮಂಡಲವನ್ನು ಬರೆಯಲು ಯಾವುದೇ ಅರ್ಥವಿಲ್ಲ. ಏಕೆ? ಏಕೆಂದರೆ ಆಟವನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಗಿಲ್ಲ ಮತ್ತು ಯಾವುದೇ ಆಟಗಾರರು ಇಲ್ಲ.
  • ಆಟವು ವಿನೋದಮಯ ಮತ್ತು ಸವಾಲಿನದಾಗಿರಬೇಕು, ಆದ್ದರಿಂದ ಏಜೆಂಟ್‌ಗಳು ಜನರ ವಿರುದ್ಧ ಉತ್ತಮ ವಿಧಾನವನ್ನು ಕಂಡುಕೊಳ್ಳಬಾರದು.
  • ಏಜೆಂಟರು ನೈಜವಾಗಿ ಕಾಣಬೇಕು ಇದರಿಂದ ಆಟಗಾರರು ನಿಜವಾದ ಜನರ ವಿರುದ್ಧ ಆಡುತ್ತಿದ್ದಾರೆ ಎಂದು ಭಾವಿಸುತ್ತಾರೆ. AlphaGo ಪ್ರೋಗ್ರಾಂ ಮನುಷ್ಯರನ್ನು ಮೀರಿಸಿದೆ, ಆದರೆ ಆಯ್ಕೆ ಮಾಡಿದ ಹಂತಗಳು ಆಟದ ಸಾಂಪ್ರದಾಯಿಕ ತಿಳುವಳಿಕೆಯಿಂದ ಬಹಳ ದೂರದಲ್ಲಿವೆ. ಆಟವು ಮಾನವ ಎದುರಾಳಿಯನ್ನು ಅನುಕರಿಸಿದರೆ, ಈ ಭಾವನೆಯು ಅಸ್ತಿತ್ವದಲ್ಲಿರಬಾರದು. ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬದಲಾಯಿಸಬೇಕಾಗಿದೆ ಆದ್ದರಿಂದ ಅದು ಆದರ್ಶ ನಿರ್ಧಾರಗಳಿಗಿಂತ ತೋರಿಕೆಯ ನಿರ್ಧಾರಗಳನ್ನು ಮಾಡುತ್ತದೆ.
  • AI ನೈಜ ಸಮಯದಲ್ಲಿ ಕೆಲಸ ಮಾಡಬೇಕು. ಇದರರ್ಥ ಅಲ್ಗಾರಿದಮ್ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ದೀರ್ಘಕಾಲದವರೆಗೆ CPU ಬಳಕೆಯನ್ನು ಏಕಸ್ವಾಮ್ಯಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. 10 ಮಿಲಿಸೆಕೆಂಡ್‌ಗಳು ಕೂಡ ತುಂಬಾ ಉದ್ದವಾಗಿದೆ, ಏಕೆಂದರೆ ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಮಾಡಲು ಮತ್ತು ಮುಂದಿನ ಗ್ರಾಫಿಕ್ಸ್ ಫ್ರೇಮ್‌ಗೆ ಹೋಗಲು ಹೆಚ್ಚಿನ ಆಟಗಳಿಗೆ 16 ರಿಂದ 33 ಮಿಲಿಸೆಕೆಂಡುಗಳು ಮಾತ್ರ ಬೇಕಾಗುತ್ತವೆ.
  • ತಾತ್ತ್ವಿಕವಾಗಿ, ಸಿಸ್ಟಮ್‌ನ ಕನಿಷ್ಠ ಭಾಗವು ಡೇಟಾ-ಚಾಲಿತವಾಗಿರಬೇಕು, ಇದರಿಂದ ಕೋಡರ್‌ಗಳಲ್ಲದವರು ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಬಹುದು ಮತ್ತು ಹೊಂದಾಣಿಕೆಗಳು ಹೆಚ್ಚು ವೇಗವಾಗಿ ಸಂಭವಿಸಬಹುದು.

ಸಂಪೂರ್ಣ ಸೆನ್ಸ್/ಥಿಂಕ್/ಆಕ್ಟ್ ಚಕ್ರವನ್ನು ಒಳಗೊಂಡಿರುವ AI ವಿಧಾನಗಳನ್ನು ನೋಡೋಣ.

ಮೂಲಭೂತ ನಿರ್ಧಾರಗಳನ್ನು ಮಾಡುವುದು

ಸರಳವಾದ ಆಟದೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸೋಣ - ಪಾಂಗ್. ಗುರಿ: ಪ್ಯಾಡಲ್ ಅನ್ನು ಸರಿಸಿ ಇದರಿಂದ ಚೆಂಡು ಅದರ ಹಿಂದೆ ಹಾರುವ ಬದಲು ಪುಟಿಯುತ್ತದೆ. ಇದು ಟೆನಿಸ್‌ನಂತೆ, ನೀವು ಚೆಂಡನ್ನು ಹೊಡೆಯದಿದ್ದರೆ ನೀವು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಇಲ್ಲಿ AI ತುಲನಾತ್ಮಕವಾಗಿ ಸುಲಭವಾದ ಕೆಲಸವನ್ನು ಹೊಂದಿದೆ - ವೇದಿಕೆಯನ್ನು ಯಾವ ದಿಕ್ಕಿನಲ್ಲಿ ಚಲಿಸಬೇಕೆಂದು ನಿರ್ಧರಿಸುವುದು.

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಷರತ್ತುಬದ್ಧ ಹೇಳಿಕೆಗಳು

ಪಾಂಗ್‌ನಲ್ಲಿನ AI ಗಾಗಿ, ಚೆಂಡಿನ ಕೆಳಗೆ ವೇದಿಕೆಯನ್ನು ಇರಿಸಲು ಯಾವಾಗಲೂ ಪ್ರಯತ್ನಿಸುವುದು ಅತ್ಯಂತ ಸ್ಪಷ್ಟವಾದ ಪರಿಹಾರವಾಗಿದೆ.

ಇದಕ್ಕಾಗಿ ಸರಳ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಸೂಡೊಕೋಡ್‌ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ:

ಆಟವು ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ಪ್ರತಿ ಫ್ರೇಮ್/ನವೀಕರಣ:
ಚೆಂಡು ಪ್ಯಾಡಲ್‌ನ ಎಡಭಾಗದಲ್ಲಿದ್ದರೆ:
ಪ್ಯಾಡಲ್ ಅನ್ನು ಎಡಕ್ಕೆ ಸರಿಸಿ
ಇಲ್ಲದಿದ್ದರೆ ಚೆಂಡು ಪ್ಯಾಡಲ್‌ನ ಬಲಭಾಗದಲ್ಲಿದ್ದರೆ:
ಪ್ಯಾಡಲ್ ಅನ್ನು ಬಲಕ್ಕೆ ಸರಿಸಿ

ವೇದಿಕೆಯು ಚೆಂಡಿನ ವೇಗದಲ್ಲಿ ಚಲಿಸಿದರೆ, ಇದು ಪಾಂಗ್‌ನಲ್ಲಿನ AI ಗೆ ಸೂಕ್ತವಾದ ಅಲ್ಗಾರಿದಮ್ ಆಗಿದೆ. ಏಜೆಂಟ್ಗೆ ಹೆಚ್ಚು ಡೇಟಾ ಮತ್ತು ಸಂಭವನೀಯ ಕ್ರಮಗಳು ಇಲ್ಲದಿದ್ದರೆ ಯಾವುದನ್ನೂ ಸಂಕೀರ್ಣಗೊಳಿಸುವ ಅಗತ್ಯವಿಲ್ಲ.

ಈ ವಿಧಾನವು ತುಂಬಾ ಸರಳವಾಗಿದ್ದು, ಸಂಪೂರ್ಣ ಸೆನ್ಸ್/ಥಿಂಕ್/ಆಕ್ಟ್ ಚಕ್ರವು ಕೇವಲ ಗಮನಿಸುವುದಿಲ್ಲ. ಆದರೆ ಅದು ಇದೆ:

  • ಸೆನ್ಸ್ ಭಾಗವು ಎರಡು ವೇಳೆ ಹೇಳಿಕೆಗಳಲ್ಲಿದೆ. ಚೆಂಡು ಎಲ್ಲಿದೆ ಮತ್ತು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಎಲ್ಲಿದೆ ಎಂದು ಆಟಕ್ಕೆ ತಿಳಿದಿದೆ, ಆದ್ದರಿಂದ AI ಆ ಮಾಹಿತಿಗಾಗಿ ಅದನ್ನು ನೋಡುತ್ತದೆ.
  • ಎರಡು if ಹೇಳಿಕೆಗಳಲ್ಲಿ ಥಿಂಕ್ ಭಾಗವೂ ಸೇರಿದೆ. ಅವರು ಎರಡು ಪರಿಹಾರಗಳನ್ನು ಸಾಕಾರಗೊಳಿಸುತ್ತಾರೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ ಪರಸ್ಪರ ಪ್ರತ್ಯೇಕವಾಗಿರುತ್ತವೆ. ಪರಿಣಾಮವಾಗಿ, ಮೂರು ಕ್ರಿಯೆಗಳಲ್ಲಿ ಒಂದನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ - ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ಎಡಕ್ಕೆ ಸರಿಸಿ, ಅದನ್ನು ಬಲಕ್ಕೆ ಸರಿಸಿ ಅಥವಾ ಅದನ್ನು ಈಗಾಗಲೇ ಸರಿಯಾಗಿ ಇರಿಸಿದ್ದರೆ ಏನನ್ನೂ ಮಾಡಬೇಡಿ.
  • ಕಾಯಿದೆ ಭಾಗವು ಮೂವ್ ಪ್ಯಾಡಲ್ ಲೆಫ್ಟ್ ಮತ್ತು ಮೂವ್ ಪ್ಯಾಡಲ್ ರೈಟ್ ಹೇಳಿಕೆಗಳಲ್ಲಿ ಕಂಡುಬರುತ್ತದೆ. ಆಟದ ವಿನ್ಯಾಸವನ್ನು ಅವಲಂಬಿಸಿ, ಅವರು ವೇದಿಕೆಯನ್ನು ತಕ್ಷಣವೇ ಅಥವಾ ನಿರ್ದಿಷ್ಟ ವೇಗದಲ್ಲಿ ಚಲಿಸಬಹುದು.

ಅಂತಹ ವಿಧಾನಗಳನ್ನು ಪ್ರತಿಕ್ರಿಯಾತ್ಮಕ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ - ಪ್ರಪಂಚದ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುವ ಮತ್ತು ಕ್ರಮಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಸರಳ ನಿಯಮಗಳಿವೆ (ಈ ಸಂದರ್ಭದಲ್ಲಿ ಕೋಡ್‌ನಲ್ಲಿರುವ ಹೇಳಿಕೆಗಳು).

ನಿರ್ಧಾರ ಮರ

ಪಾಂಗ್ ಉದಾಹರಣೆಯು ವಾಸ್ತವವಾಗಿ ನಿರ್ಧಾರ ವೃಕ್ಷ ಎಂಬ ಔಪಚಾರಿಕ AI ಪರಿಕಲ್ಪನೆಗೆ ಸಮನಾಗಿರುತ್ತದೆ. ಅಲ್ಗಾರಿದಮ್ ಅದರ ಮೂಲಕ "ಎಲೆ" ಅನ್ನು ತಲುಪುತ್ತದೆ - ಯಾವ ಕ್ರಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕು ಎಂಬುದರ ಕುರಿತು ನಿರ್ಧಾರ.

ನಮ್ಮ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ಅಲ್ಗಾರಿದಮ್‌ಗಾಗಿ ನಿರ್ಧಾರ ವೃಕ್ಷದ ಬ್ಲಾಕ್ ರೇಖಾಚಿತ್ರವನ್ನು ಮಾಡೋಣ:

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಮರದ ಪ್ರತಿಯೊಂದು ಭಾಗವನ್ನು ನೋಡ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ - AI ಅಂತಹ ರಚನೆಗಳನ್ನು ವಿವರಿಸಲು ಗ್ರಾಫ್ ಸಿದ್ಧಾಂತವನ್ನು ಬಳಸುತ್ತದೆ. ಎರಡು ರೀತಿಯ ನೋಡ್ಗಳಿವೆ:

  • ನಿರ್ಧಾರ ನೋಡ್‌ಗಳು: ಕೆಲವು ಸ್ಥಿತಿಯನ್ನು ಪರೀಕ್ಷಿಸುವ ಆಧಾರದ ಮೇಲೆ ಎರಡು ಪರ್ಯಾಯಗಳ ನಡುವೆ ಆಯ್ಕೆಮಾಡುವುದು, ಅಲ್ಲಿ ಪ್ರತಿ ಪರ್ಯಾಯವನ್ನು ಪ್ರತ್ಯೇಕ ನೋಡ್‌ನಂತೆ ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ.
  • ಎಂಡ್ ನೋಡ್‌ಗಳು: ಅಂತಿಮ ನಿರ್ಧಾರವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಕ್ರಿಯೆ.

ಅಲ್ಗಾರಿದಮ್ ಮೊದಲ ನೋಡ್ನಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ (ಮರದ "ಮೂಲ"). ಇದು ಯಾವ ಚೈಲ್ಡ್ ನೋಡ್‌ಗೆ ಹೋಗಬೇಕು ಎಂಬುದರ ಕುರಿತು ನಿರ್ಧಾರವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಅಥವಾ ನೋಡ್‌ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಕ್ರಿಯೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ನಿರ್ಗಮಿಸುತ್ತದೆ.

ಹಿಂದಿನ ವಿಭಾಗದಲ್ಲಿನ if ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ಗಳಂತೆಯೇ ನಿರ್ಧಾರ ವೃಕ್ಷವು ಅದೇ ಕೆಲಸವನ್ನು ಮಾಡುವುದರಿಂದ ಏನು ಪ್ರಯೋಜನ? ಇಲ್ಲಿ ಒಂದು ಸಾಮಾನ್ಯ ವ್ಯವಸ್ಥೆ ಇದೆ, ಪ್ರತಿ ನಿರ್ಧಾರವು ಕೇವಲ ಒಂದು ಷರತ್ತು ಮತ್ತು ಎರಡು ಸಂಭವನೀಯ ಫಲಿತಾಂಶಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಇದು ಹಾರ್ಡ್-ಕೋಡ್ ಮಾಡದೆಯೇ ಮರದಲ್ಲಿನ ನಿರ್ಧಾರಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಡೇಟಾದಿಂದ AI ಅನ್ನು ರಚಿಸಲು ಡೆವಲಪರ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅದನ್ನು ಟೇಬಲ್ ರೂಪದಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸೋಣ:

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಕೋಡ್ ಬದಿಯಲ್ಲಿ ನೀವು ತಂತಿಗಳನ್ನು ಓದುವ ವ್ಯವಸ್ಥೆಯನ್ನು ಪಡೆಯುತ್ತೀರಿ. ಅವುಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದಕ್ಕೂ ಒಂದು ನೋಡ್ ಅನ್ನು ರಚಿಸಿ, ಎರಡನೇ ಕಾಲಮ್‌ನ ಆಧಾರದ ಮೇಲೆ ನಿರ್ಧಾರ ತರ್ಕವನ್ನು ಮತ್ತು ಮೂರನೇ ಮತ್ತು ನಾಲ್ಕನೇ ಕಾಲಮ್‌ಗಳ ಆಧಾರದ ಮೇಲೆ ಚೈಲ್ಡ್ ನೋಡ್‌ಗಳನ್ನು ಸಂಪರ್ಕಿಸಿ. ನೀವು ಇನ್ನೂ ಪರಿಸ್ಥಿತಿಗಳು ಮತ್ತು ಕ್ರಿಯೆಗಳನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡಬೇಕಾಗುತ್ತದೆ, ಆದರೆ ಈಗ ಆಟದ ರಚನೆಯು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗಿರುತ್ತದೆ. ಇಲ್ಲಿ ನೀವು ಹೆಚ್ಚುವರಿ ನಿರ್ಧಾರಗಳು ಮತ್ತು ಕ್ರಿಯೆಗಳನ್ನು ಸೇರಿಸುತ್ತೀರಿ, ತದನಂತರ ಟ್ರೀ ಡೆಫಿನಿಷನ್ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ಸರಳವಾಗಿ ಸಂಪಾದಿಸುವ ಮೂಲಕ ಸಂಪೂರ್ಣ AI ಅನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ. ಮುಂದೆ, ನೀವು ಆಟದ ವಿನ್ಯಾಸಕರಿಗೆ ಫೈಲ್ ಅನ್ನು ವರ್ಗಾಯಿಸುತ್ತೀರಿ, ಅವರು ಆಟವನ್ನು ಮರುಸಂಕಲಿಸದೆ ಅಥವಾ ಕೋಡ್ ಅನ್ನು ಬದಲಾಯಿಸದೆ ವರ್ತನೆಯನ್ನು ಬದಲಾಯಿಸಬಹುದು.

ದೊಡ್ಡ ಉದಾಹರಣೆಗಳಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ಮಿಸಿದಾಗ ನಿರ್ಧಾರ ಮರಗಳು ತುಂಬಾ ಉಪಯುಕ್ತವಾಗಿವೆ (ಉದಾಹರಣೆಗೆ, ID3 ಅಲ್ಗಾರಿದಮ್ ಬಳಸಿ). ಪಡೆದ ಡೇಟಾದ ಆಧಾರದ ಮೇಲೆ ಸಂದರ್ಭಗಳನ್ನು ವರ್ಗೀಕರಿಸಲು ಇದು ಅವುಗಳನ್ನು ಪರಿಣಾಮಕಾರಿ ಮತ್ತು ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ ಸಾಧನವನ್ನಾಗಿ ಮಾಡುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಏಜೆಂಟ್‌ಗಳಿಗೆ ಕ್ರಿಯೆಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ನಾವು ಸರಳ ವ್ಯವಸ್ಥೆಯನ್ನು ಮೀರಿ ಹೋಗುತ್ತೇವೆ.

ಸನ್ನಿವೇಶಗಳು

ಪೂರ್ವ-ರಚಿಸಲಾದ ಪರಿಸ್ಥಿತಿಗಳು ಮತ್ತು ಕ್ರಿಯೆಗಳನ್ನು ಬಳಸಿದ ನಿರ್ಧಾರ ಮರದ ವ್ಯವಸ್ಥೆಯನ್ನು ನಾವು ವಿಶ್ಲೇಷಿಸಿದ್ದೇವೆ. AI ಅನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವ ವ್ಯಕ್ತಿಯು ತನಗೆ ಬೇಕಾದ ರೀತಿಯಲ್ಲಿ ಮರವನ್ನು ಆಯೋಜಿಸಬಹುದು, ಆದರೆ ಅವನು ಇನ್ನೂ ಎಲ್ಲವನ್ನೂ ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಿದ ಕೋಡರ್ ಅನ್ನು ಅವಲಂಬಿಸಬೇಕಾಗುತ್ತದೆ. ನಾವು ವಿನ್ಯಾಸಕಾರರಿಗೆ ಅವರ ಸ್ವಂತ ಪರಿಸ್ಥಿತಿಗಳು ಅಥವಾ ಕ್ರಿಯೆಗಳನ್ನು ರಚಿಸಲು ಸಾಧನಗಳನ್ನು ನೀಡಿದರೆ ಏನು?

ಆದ್ದರಿಂದ ಪ್ರೋಗ್ರಾಮರ್ ಈಸ್ ಬಾಲ್ ಲೆಫ್ಟ್ ಆಫ್ ಪ್ಯಾಡಲ್ ಮತ್ತು ಈಸ್ ಬಾಲ್ ರೈಟ್ ಆಫ್ ಪ್ಯಾಡಲ್ ಎಂಬ ಷರತ್ತುಗಳಿಗೆ ಕೋಡ್ ಬರೆಯಬೇಕಾಗಿಲ್ಲ, ಈ ಮೌಲ್ಯಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಡಿಸೈನರ್ ಷರತ್ತುಗಳನ್ನು ಬರೆಯುವ ವ್ಯವಸ್ಥೆಯನ್ನು ಅವನು ರಚಿಸಬಹುದು. ನಂತರ ನಿರ್ಧಾರ ಮರದ ಡೇಟಾ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಇದು ಮೂಲಭೂತವಾಗಿ ಮೊದಲ ಕೋಷ್ಟಕದಲ್ಲಿರುವಂತೆಯೇ ಇರುತ್ತದೆ, ಆದರೆ ತಮ್ಮಲ್ಲಿರುವ ಪರಿಹಾರಗಳು ತಮ್ಮದೇ ಆದ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿರುತ್ತವೆ, ಇದು if ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ನ ಷರತ್ತುಬದ್ಧ ಭಾಗದಂತೆಯೇ ಇರುತ್ತದೆ. ಕೋಡ್ ಬದಿಯಲ್ಲಿ, ಇದು ನಿರ್ಧಾರದ ನೋಡ್‌ಗಳಿಗಾಗಿ ಎರಡನೇ ಕಾಲಮ್‌ನಲ್ಲಿ ಓದುತ್ತದೆ, ಆದರೆ ಕಾರ್ಯಗತಗೊಳಿಸಲು ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಯನ್ನು ಹುಡುಕುವ ಬದಲು (ಪಾಡಲ್‌ನಿಂದ ಚೆಂಡು ಉಳಿದಿದೆ), ಇದು ಷರತ್ತುಬದ್ಧ ಅಭಿವ್ಯಕ್ತಿಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಸರಿ ಅಥವಾ ತಪ್ಪು ಎಂದು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಲುವಾ ಅಥವಾ ಏಂಜೆಲ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆಯನ್ನು ಬಳಸಿ ಇದನ್ನು ಮಾಡಲಾಗುತ್ತದೆ. ಅವುಗಳನ್ನು ಬಳಸಿಕೊಂಡು, ಡೆವಲಪರ್ ತನ್ನ ಆಟದಲ್ಲಿ (ಬಾಲ್ ಮತ್ತು ಪ್ಯಾಡಲ್) ವಸ್ತುಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಲಭ್ಯವಿರುವ ಅಸ್ಥಿರಗಳನ್ನು ರಚಿಸಬಹುದು (ball.position). ಅಲ್ಲದೆ, ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆ C++ ಗಿಂತ ಸರಳವಾಗಿದೆ. ಇದಕ್ಕೆ ಪೂರ್ಣ ಸಂಕಲನ ಹಂತದ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಆಟದ ತರ್ಕವನ್ನು ತ್ವರಿತವಾಗಿ ಸರಿಹೊಂದಿಸಲು ಇದು ಸೂಕ್ತವಾಗಿದೆ ಮತ್ತು "ಕೋಡರ್-ಅಲ್ಲದವರು" ಅಗತ್ಯ ಕಾರ್ಯಗಳನ್ನು ಸ್ವತಃ ರಚಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.

ಮೇಲಿನ ಉದಾಹರಣೆಯಲ್ಲಿ, ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆಯನ್ನು ಷರತ್ತುಬದ್ಧ ಅಭಿವ್ಯಕ್ತಿಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ಮಾತ್ರ ಬಳಸಲಾಗುತ್ತದೆ, ಆದರೆ ಇದನ್ನು ಕ್ರಿಯೆಗಳಿಗೆ ಸಹ ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಡೇಟಾ ಮೂವ್ ಪ್ಯಾಡಲ್ ರೈಟ್ ಸ್ಕ್ರಿಪ್ಟ್ ಸ್ಟೇಟ್‌ಮೆಂಟ್ ಆಗಬಹುದು (ball.position.x += 10). ಆದ್ದರಿಂದ ಕ್ರಮವನ್ನು ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ, ಪ್ಯಾಡಲ್ ರೈಟ್ ಅನ್ನು ಸರಿಸಿ ಪ್ರೋಗ್ರಾಂ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ.

ನೀವು ಇನ್ನೂ ಮುಂದೆ ಹೋಗಿ ಸಂಪೂರ್ಣ ನಿರ್ಧಾರ ವೃಕ್ಷವನ್ನು ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಬಹುದು. ಇದು ಹಾರ್ಡ್‌ಕೋಡ್ ಮಾಡಲಾದ ಷರತ್ತುಬದ್ಧ ಹೇಳಿಕೆಗಳ ರೂಪದಲ್ಲಿ ಕೋಡ್ ಆಗಿರುತ್ತದೆ, ಆದರೆ ಅವು ಬಾಹ್ಯ ಸ್ಕ್ರಿಪ್ಟ್ ಫೈಲ್‌ಗಳಲ್ಲಿ ಇರುತ್ತವೆ, ಅಂದರೆ, ಸಂಪೂರ್ಣ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಮರುಸಂಕಲಿಸದೆಯೇ ಅವುಗಳನ್ನು ಬದಲಾಯಿಸಬಹುದು. ವಿವಿಧ AI ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಪರೀಕ್ಷಿಸಲು ನೀವು ಆಟದ ಸಮಯದಲ್ಲಿ ಸ್ಕ್ರಿಪ್ಟ್ ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸಬಹುದು.

ಈವೆಂಟ್ ಪ್ರತಿಕ್ರಿಯೆ

ಮೇಲಿನ ಉದಾಹರಣೆಗಳು ಪಾಂಗ್‌ಗೆ ಸೂಕ್ತವಾಗಿವೆ. ಅವರು ನಿರಂತರವಾಗಿ ಸೆನ್ಸ್/ಥಿಂಕ್/ಆಕ್ಟ್ ಚಕ್ರವನ್ನು ನಡೆಸುತ್ತಾರೆ ಮತ್ತು ಪ್ರಪಂಚದ ಇತ್ತೀಚಿನ ಸ್ಥಿತಿಯನ್ನು ಆಧರಿಸಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಾರೆ. ಆದರೆ ಹೆಚ್ಚು ಸಂಕೀರ್ಣ ಆಟಗಳಲ್ಲಿ ನೀವು ವೈಯಕ್ತಿಕ ಘಟನೆಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಬೇಕು ಮತ್ತು ಎಲ್ಲವನ್ನೂ ಒಂದೇ ಬಾರಿಗೆ ಮೌಲ್ಯಮಾಪನ ಮಾಡಬಾರದು. ಈ ಸಂದರ್ಭದಲ್ಲಿ ಪಾಂಗ್ ಈಗಾಗಲೇ ಕೆಟ್ಟ ಉದಾಹರಣೆಯಾಗಿದೆ. ಇನ್ನೊಂದನ್ನು ಆರಿಸಿಕೊಳ್ಳೋಣ.

ಆಟಗಾರನನ್ನು ಪತ್ತೆಹಚ್ಚುವವರೆಗೆ ಶತ್ರುಗಳು ಚಲನರಹಿತರಾಗಿರುವ ಶೂಟರ್ ಅನ್ನು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ, ಅದರ ನಂತರ ಅವರು ತಮ್ಮ "ವಿಶೇಷತೆ" ಯನ್ನು ಅವಲಂಬಿಸಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಾರೆ: ಯಾರಾದರೂ "ಅತ್ಯಾತುರ" ಕ್ಕೆ ಓಡುತ್ತಾರೆ, ಯಾರಾದರೂ ದೂರದಿಂದ ದಾಳಿ ಮಾಡುತ್ತಾರೆ. ಇದು ಇನ್ನೂ ಮೂಲಭೂತ ಪ್ರತಿಕ್ರಿಯಾತ್ಮಕ ವ್ಯವಸ್ಥೆಯಾಗಿದೆ - "ಆಟಗಾರನನ್ನು ಗುರುತಿಸಿದರೆ, ಏನನ್ನಾದರೂ ಮಾಡಿ" - ಆದರೆ ಅದನ್ನು ತಾರ್ಕಿಕವಾಗಿ ಪ್ಲೇಯರ್ ಸೀನ್ ಈವೆಂಟ್ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿ ವಿಭಜಿಸಬಹುದು (ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ).

ಇದು ನಮ್ಮನ್ನು ಸೆನ್ಸ್/ಥಿಂಕ್/ಆಕ್ಟ್ ಚಕ್ರಕ್ಕೆ ಮರಳಿ ತರುತ್ತದೆ. AI ಪ್ಲೇಯರ್ ಅನ್ನು ನೋಡುತ್ತದೆಯೇ ಎಂದು ಪ್ರತಿ ಫ್ರೇಮ್ ಅನ್ನು ಪರಿಶೀಲಿಸುವ ಸೆನ್ಸ್ ಭಾಗವನ್ನು ನಾವು ಕೋಡ್ ಮಾಡಬಹುದು. ಇಲ್ಲದಿದ್ದರೆ, ಏನೂ ಆಗುವುದಿಲ್ಲ, ಆದರೆ ಅದು ನೋಡಿದರೆ, ಪ್ಲೇಯರ್ ಸೀನ್ ಈವೆಂಟ್ ಅನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ. "ಪ್ಲೇಯರ್ ಸೀನ್ ಈವೆಂಟ್ ಸಂಭವಿಸಿದಾಗ, ಮಾಡು" ಎಂದು ಹೇಳುವ ಪ್ರತ್ಯೇಕ ವಿಭಾಗವನ್ನು ಕೋಡ್ ಹೊಂದಿರುತ್ತದೆ, ಅಲ್ಲಿ ನೀವು ಥಿಂಕ್ ಮತ್ತು ಆಕ್ಟ್ ಭಾಗಗಳನ್ನು ತಿಳಿಸಲು ಪ್ರತಿಕ್ರಿಯೆಯ ಅಗತ್ಯವಿದೆ. ಹೀಗಾಗಿ, ನೀವು ಪ್ಲೇಯರ್ ಸೀನ್ ಈವೆಂಟ್‌ಗೆ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಹೊಂದಿಸುತ್ತೀರಿ: "ರಶಿಂಗ್" ಪಾತ್ರಕ್ಕಾಗಿ - ಚಾರ್ಜ್‌ಆಂಡ್‌ಅಟ್ಯಾಕ್ ಮತ್ತು ಸ್ನೈಪರ್‌ಗಾಗಿ - ಹೈಡ್‌ಆಂಡ್‌ಸ್ನೈಪ್. ಮರುಕಂಪೈಲ್ ಮಾಡದೆಯೇ ತ್ವರಿತ ಸಂಪಾದನೆಗಾಗಿ ಈ ಸಂಬಂಧಗಳನ್ನು ಡೇಟಾ ಫೈಲ್‌ನಲ್ಲಿ ರಚಿಸಬಹುದು. ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆಯನ್ನು ಇಲ್ಲಿಯೂ ಬಳಸಬಹುದು.

ಕಠಿಣ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವುದು

ಸರಳ ಪ್ರತಿಕ್ರಿಯೆ ವ್ಯವಸ್ಥೆಗಳು ಬಹಳ ಶಕ್ತಿಯುತವಾಗಿದ್ದರೂ, ಅವುಗಳು ಸಾಕಾಗದೇ ಇರುವ ಅನೇಕ ಸಂದರ್ಭಗಳಿವೆ. ಕೆಲವೊಮ್ಮೆ ಏಜೆಂಟ್ ಪ್ರಸ್ತುತ ಏನು ಮಾಡುತ್ತಿದ್ದಾನೆ ಎಂಬುದರ ಆಧಾರದ ಮೇಲೆ ನೀವು ವಿಭಿನ್ನ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ, ಆದರೆ ಇದನ್ನು ಒಂದು ಷರತ್ತು ಎಂದು ಕಲ್ಪಿಸುವುದು ಕಷ್ಟ. ಕೆಲವೊಮ್ಮೆ ನಿರ್ಧಾರ ವೃಕ್ಷ ಅಥವಾ ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಪ್ರತಿನಿಧಿಸಲು ಹಲವಾರು ಷರತ್ತುಗಳಿವೆ. ಕೆಲವೊಮ್ಮೆ ಮುಂದಿನ ಹಂತವನ್ನು ನಿರ್ಧರಿಸುವ ಮೊದಲು ಪರಿಸ್ಥಿತಿಯು ಹೇಗೆ ಬದಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನೀವು ಮುಂಚಿತವಾಗಿ ನಿರ್ಣಯಿಸಬೇಕಾಗುತ್ತದೆ. ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಹೆಚ್ಚು ಅತ್ಯಾಧುನಿಕ ವಿಧಾನಗಳ ಅಗತ್ಯವಿದೆ.

ಪರಿಮಿತ ಸ್ಥಿತಿಯ ಯಂತ್ರ

ಫಿನೈಟ್ ಸ್ಟೇಟ್ ಮೆಷಿನ್ ಅಥವಾ ಎಫ್‌ಎಸ್‌ಎಮ್ (ಫಿನೈಟ್ ಸ್ಟೇಟ್ ಮೆಷಿನ್) ಎಂಬುದು ನಮ್ಮ ಏಜೆಂಟ್ ಪ್ರಸ್ತುತ ಹಲವಾರು ಸಂಭವನೀಯ ರಾಜ್ಯಗಳಲ್ಲಿ ಒಂದನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಅದು ಒಂದು ರಾಜ್ಯದಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಪರಿವರ್ತನೆಯಾಗಬಹುದು ಎಂದು ಹೇಳುವ ವಿಧಾನವಾಗಿದೆ. ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ಅಂತಹ ರಾಜ್ಯಗಳಿವೆ-ಆದ್ದರಿಂದ ಹೆಸರು. ಜೀವನದಿಂದ ಉತ್ತಮ ಉದಾಹರಣೆ ಟ್ರಾಫಿಕ್ ಲೈಟ್ ಆಗಿದೆ. ವಿವಿಧ ಸ್ಥಳಗಳಲ್ಲಿ ದೀಪಗಳ ವಿಭಿನ್ನ ಅನುಕ್ರಮಗಳಿವೆ, ಆದರೆ ತತ್ವವು ಒಂದೇ ಆಗಿರುತ್ತದೆ - ಪ್ರತಿ ರಾಜ್ಯವು ಏನನ್ನಾದರೂ ಪ್ರತಿನಿಧಿಸುತ್ತದೆ (ನಿಲ್ಲಿಸು, ನಡಿಗೆ, ಇತ್ಯಾದಿ.). ಟ್ರಾಫಿಕ್ ಲೈಟ್ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಒಂದೇ ಸ್ಥಿತಿಯಲ್ಲಿರುತ್ತದೆ ಮತ್ತು ಸರಳ ನಿಯಮಗಳ ಆಧಾರದ ಮೇಲೆ ಒಂದರಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಚಲಿಸುತ್ತದೆ.

ಇದು ಆಟಗಳಲ್ಲಿ NPC ಗಳೊಂದಿಗೆ ಇದೇ ರೀತಿಯ ಕಥೆಯಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಈ ಕೆಳಗಿನ ರಾಜ್ಯಗಳೊಂದಿಗೆ ಕಾವಲುಗಾರನನ್ನು ತೆಗೆದುಕೊಳ್ಳೋಣ:

  • ಗಸ್ತು ತಿರುಗುತ್ತಿದೆ.
  • ದಾಳಿ ಮಾಡುವುದು.
  • ಪಲಾಯನ.

ಮತ್ತು ಅದರ ಸ್ಥಿತಿಯನ್ನು ಬದಲಾಯಿಸಲು ಈ ಷರತ್ತುಗಳು:

  • ಕಾವಲುಗಾರನು ಶತ್ರುವನ್ನು ನೋಡಿದರೆ, ಅವನು ಆಕ್ರಮಣ ಮಾಡುತ್ತಾನೆ.
  • ಕಾವಲುಗಾರನು ದಾಳಿ ಮಾಡಿದರೂ ಶತ್ರುವನ್ನು ನೋಡದಿದ್ದರೆ, ಅವನು ಗಸ್ತು ತಿರುಗುತ್ತಾನೆ.
  • ಕಾವಲುಗಾರನು ದಾಳಿ ಮಾಡಿದರೂ ತೀವ್ರವಾಗಿ ಗಾಯಗೊಂಡರೆ, ಅವನು ಓಡಿಹೋಗುತ್ತಾನೆ.

ನೀವು ಗಾರ್ಡಿಯನ್ ಸ್ಟೇಟ್ ವೇರಿಯಬಲ್ ಮತ್ತು ವಿವಿಧ ಚೆಕ್‌ಗಳೊಂದಿಗೆ if-ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ಗಳನ್ನು ಸಹ ಬರೆಯಬಹುದು: ಹತ್ತಿರದಲ್ಲಿ ಶತ್ರುವಿದೆಯೇ, NPC ಯ ಆರೋಗ್ಯ ಮಟ್ಟ ಏನು, ಇತ್ಯಾದಿ. ನಾವು ಇನ್ನೂ ಕೆಲವು ರಾಜ್ಯಗಳನ್ನು ಸೇರಿಸೋಣ:

  • ಆಲಸ್ಯ - ಗಸ್ತು ನಡುವೆ.
  • ಹುಡುಕಲಾಗುತ್ತಿದೆ - ಗಮನಿಸಿದ ಶತ್ರು ಕಣ್ಮರೆಯಾದಾಗ.
  • ಸಹಾಯವನ್ನು ಹುಡುಕುವುದು - ಶತ್ರುವನ್ನು ಗುರುತಿಸಿದಾಗ, ಆದರೆ ಏಕಾಂಗಿಯಾಗಿ ಹೋರಾಡಲು ತುಂಬಾ ಬಲಶಾಲಿಯಾಗಿದ್ದಾಗ.

ಅವುಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದಕ್ಕೂ ಆಯ್ಕೆಯು ಸೀಮಿತವಾಗಿದೆ - ಉದಾಹರಣೆಗೆ, ಕಾವಲುಗಾರನು ಕಡಿಮೆ ಆರೋಗ್ಯವನ್ನು ಹೊಂದಿದ್ದರೆ ಗುಪ್ತ ಶತ್ರುವನ್ನು ಹುಡುಕಲು ಹೋಗುವುದಿಲ್ಲ.

ಎಲ್ಲಾ ನಂತರ, "ifs" ನ ದೊಡ್ಡ ಪಟ್ಟಿ ಇದೆ , ಅದು " ತುಂಬಾ ತೊಡಕಾಗಬಹುದು, ಆದ್ದರಿಂದ ರಾಜ್ಯಗಳ ನಡುವಿನ ರಾಜ್ಯಗಳು ಮತ್ತು ಪರಿವರ್ತನೆಗಳನ್ನು ಮನಸ್ಸಿನಲ್ಲಿಟ್ಟುಕೊಳ್ಳಲು ನಮಗೆ ಅನುಮತಿಸುವ ವಿಧಾನವನ್ನು ನಾವು ಔಪಚಾರಿಕಗೊಳಿಸಬೇಕಾಗಿದೆ. ಇದನ್ನು ಮಾಡಲು, ನಾವು ಎಲ್ಲಾ ರಾಜ್ಯಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುತ್ತೇವೆ ಮತ್ತು ಪ್ರತಿ ರಾಜ್ಯದ ಅಡಿಯಲ್ಲಿ ನಾವು ಅವರಿಗೆ ಅಗತ್ಯವಿರುವ ಷರತ್ತುಗಳೊಂದಿಗೆ ಇತರ ರಾಜ್ಯಗಳಿಗೆ ಎಲ್ಲಾ ಪರಿವರ್ತನೆಗಳನ್ನು ಪಟ್ಟಿಯಲ್ಲಿ ಬರೆಯುತ್ತೇವೆ.

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಇದು ರಾಜ್ಯ ಪರಿವರ್ತನೆಯ ಕೋಷ್ಟಕವಾಗಿದೆ - FSM ಅನ್ನು ಪ್ರತಿನಿಧಿಸಲು ಸಮಗ್ರ ಮಾರ್ಗವಾಗಿದೆ. ರೇಖಾಚಿತ್ರವನ್ನು ಸೆಳೆಯೋಣ ಮತ್ತು NPC ನಡವಳಿಕೆಯು ಹೇಗೆ ಬದಲಾಗುತ್ತದೆ ಎಂಬುದರ ಸಂಪೂರ್ಣ ಅವಲೋಕನವನ್ನು ಪಡೆಯೋಣ.

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ರೇಖಾಚಿತ್ರವು ಪ್ರಸ್ತುತ ಪರಿಸ್ಥಿತಿಯ ಆಧಾರದ ಮೇಲೆ ಈ ಏಜೆಂಟ್‌ಗೆ ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳುವಿಕೆಯ ಸಾರವನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ. ಇದಲ್ಲದೆ, ಪ್ರತಿ ಬಾಣವು ಅದರ ಪಕ್ಕದಲ್ಲಿರುವ ಸ್ಥಿತಿಯು ನಿಜವಾಗಿದ್ದರೆ ರಾಜ್ಯಗಳ ನಡುವಿನ ಪರಿವರ್ತನೆಯನ್ನು ತೋರಿಸುತ್ತದೆ.

ಪ್ರತಿ ಅಪ್‌ಡೇಟ್‌ನಲ್ಲಿ ನಾವು ಏಜೆಂಟ್‌ನ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತೇವೆ, ಪರಿವರ್ತನೆಗಳ ಪಟ್ಟಿಯನ್ನು ನೋಡುತ್ತೇವೆ ಮತ್ತು ಪರಿವರ್ತನೆಯ ಷರತ್ತುಗಳನ್ನು ಪೂರೈಸಿದರೆ, ಅದು ಹೊಸ ಸ್ಥಿತಿಯನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಪ್ರತಿ ಫ್ರೇಮ್ 10-ಸೆಕೆಂಡ್ ಟೈಮರ್ ಅವಧಿ ಮೀರಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ ಮತ್ತು ಹಾಗಿದ್ದಲ್ಲಿ, ಗಾರ್ಡ್ ಐಡ್ಲಿಂಗ್ ಸ್ಟೇಟ್‌ನಿಂದ ಗಸ್ತು ತಿರುಗುವಿಕೆಗೆ ಹೋಗುತ್ತದೆ. ಅದೇ ರೀತಿಯಲ್ಲಿ, ಆಕ್ರಮಣಕಾರಿ ಸ್ಥಿತಿಯು ಏಜೆಂಟ್‌ನ ಆರೋಗ್ಯವನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ - ಅದು ಕಡಿಮೆಯಿದ್ದರೆ, ಅದು ಪಲಾಯನ ಸ್ಥಿತಿಗೆ ಹೋಗುತ್ತದೆ.

ಇದು ರಾಜ್ಯಗಳ ನಡುವಿನ ಸ್ಥಿತ್ಯಂತರಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತಿದೆ, ಆದರೆ ರಾಜ್ಯಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ನಡವಳಿಕೆಯ ಬಗ್ಗೆ ಏನು? ಒಂದು ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಗೆ ನಿಜವಾದ ನಡವಳಿಕೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ವಿಷಯದಲ್ಲಿ, ನಾವು FSM ಗೆ ಕ್ರಿಯೆಗಳನ್ನು ನಿಯೋಜಿಸುವ ಎರಡು ರೀತಿಯ "ಹುಕ್" ಇವೆ:

  • ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಗಾಗಿ ನಾವು ನಿಯತಕಾಲಿಕವಾಗಿ ನಿರ್ವಹಿಸುವ ಕ್ರಿಯೆಗಳು.
  • ಒಂದು ರಾಜ್ಯದಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಪರಿವರ್ತನೆ ಮಾಡುವಾಗ ನಾವು ತೆಗೆದುಕೊಳ್ಳುವ ಕ್ರಮಗಳು.

ಮೊದಲ ವಿಧದ ಉದಾಹರಣೆಗಳು. ಗಸ್ತು ರಾಜ್ಯವು ಪ್ರತಿ ಚೌಕಟ್ಟಿನ ಗಸ್ತು ಮಾರ್ಗದಲ್ಲಿ ಏಜೆಂಟ್ ಅನ್ನು ಚಲಿಸುತ್ತದೆ. ಆಕ್ರಮಣಕಾರಿ ಸ್ಥಿತಿಯು ಪ್ರತಿ ಚೌಕಟ್ಟಿನ ಮೇಲೆ ಆಕ್ರಮಣವನ್ನು ಪ್ರಾರಂಭಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ ಅಥವಾ ಇದು ಸಾಧ್ಯವಿರುವ ಸ್ಥಿತಿಗೆ ಪರಿವರ್ತನೆಗೊಳ್ಳುತ್ತದೆ.

ಎರಡನೆಯ ಪ್ರಕಾರಕ್ಕಾಗಿ, ಪರಿವರ್ತನೆಯನ್ನು ಪರಿಗಣಿಸಿ “ಶತ್ರು ಗೋಚರಿಸಿದರೆ ಮತ್ತು ಶತ್ರು ತುಂಬಾ ಬಲಶಾಲಿಯಾಗಿದ್ದರೆ, ನಂತರ ಫೈಂಡಿಂಗ್ ಸಹಾಯ ಸ್ಥಿತಿಗೆ ಹೋಗಿ. ಸಹಾಯಕ್ಕಾಗಿ ಎಲ್ಲಿಗೆ ಹೋಗಬೇಕೆಂದು ಏಜೆಂಟ್ ಆಯ್ಕೆ ಮಾಡಬೇಕು ಮತ್ತು ಈ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಬೇಕು ಇದರಿಂದ ಫೈಂಡಿಂಗ್ ಹೆಲ್ಪ್ ಸ್ಟೇಟ್ ಎಲ್ಲಿಗೆ ಹೋಗಬೇಕೆಂದು ತಿಳಿಯುತ್ತದೆ. ಒಮ್ಮೆ ಸಹಾಯ ಕಂಡುಬಂದರೆ, ಏಜೆಂಟ್ ಆಕ್ರಮಣಕಾರಿ ಸ್ಥಿತಿಗೆ ಹಿಂತಿರುಗುತ್ತಾನೆ. ಈ ಹಂತದಲ್ಲಿ, ಅವರು ಬೆದರಿಕೆಯ ಬಗ್ಗೆ ಮಿತ್ರರಿಗೆ ಹೇಳಲು ಬಯಸುತ್ತಾರೆ, ಆದ್ದರಿಂದ NotifyFriendOfThreat ಕ್ರಿಯೆಯು ಸಂಭವಿಸಬಹುದು.

ಮತ್ತೊಮ್ಮೆ, ನಾವು ಸೆನ್ಸ್/ಥಿಂಕ್/ಆಕ್ಟ್ ಚಕ್ರದ ಮಸೂರದ ಮೂಲಕ ಈ ವ್ಯವಸ್ಥೆಯನ್ನು ನೋಡಬಹುದು. ಸಂಕ್ರಮಣ ತರ್ಕದಿಂದ ಬಳಸಲಾಗುವ ಡೇಟಾದಲ್ಲಿ ಸೆನ್ಸ್ ಮೂರ್ತಿವೆತ್ತಿದೆ. ಯೋಚಿಸಿ - ಪ್ರತಿ ರಾಜ್ಯದಲ್ಲಿ ಲಭ್ಯವಿರುವ ಪರಿವರ್ತನೆಗಳು. ಮತ್ತು ಆಕ್ಟ್ ಅನ್ನು ನಿಯತಕಾಲಿಕವಾಗಿ ರಾಜ್ಯದೊಳಗೆ ಅಥವಾ ರಾಜ್ಯಗಳ ನಡುವಿನ ಪರಿವರ್ತನೆಗಳಲ್ಲಿ ನಿರ್ವಹಿಸುವ ಕ್ರಿಯೆಗಳಿಂದ ಕೈಗೊಳ್ಳಲಾಗುತ್ತದೆ.

ಕೆಲವೊಮ್ಮೆ ನಿರಂತರವಾಗಿ ಮತದಾನದ ಪರಿವರ್ತನೆಯ ಪರಿಸ್ಥಿತಿಗಳು ದುಬಾರಿಯಾಗಬಹುದು. ಉದಾಹರಣೆಗೆ, ಪ್ರತಿ ಏಜೆಂಟ್ ಸಂಕೀರ್ಣ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ನಿರ್ವಹಿಸಿದರೆ ಅದು ಶತ್ರುಗಳನ್ನು ನೋಡಬಹುದೇ ಮತ್ತು ಅದು ಗಸ್ತು ತಿರುಗುವಿಕೆಯಿಂದ ದಾಳಿ ಮಾಡುವ ಸ್ಥಿತಿಗೆ ಪರಿವರ್ತನೆಯಾಗಬಹುದೇ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಪ್ರತಿ ಫ್ರೇಮ್ ಅನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ, ಇದು ಸಾಕಷ್ಟು CPU ಸಮಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.

ಪ್ರಪಂಚದ ಸ್ಥಿತಿಯಲ್ಲಿನ ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳನ್ನು ಅವು ಸಂಭವಿಸಿದಂತೆ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುವ ಘಟನೆಗಳೆಂದು ಪರಿಗಣಿಸಬಹುದು. ಎಫ್‌ಎಸ್‌ಎಮ್ ಪರಿವರ್ತನಾ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸುವ ಬದಲು "ನನ್ನ ಏಜೆಂಟ್ ಪ್ಲೇಯರ್ ಅನ್ನು ನೋಡಬಹುದೇ?" ಪ್ರತಿ ಫ್ರೇಮ್, ಕಡಿಮೆ ಆಗಾಗ್ಗೆ ಪರಿಶೀಲಿಸಲು ಪ್ರತ್ಯೇಕ ವ್ಯವಸ್ಥೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು (ಉದಾ. ಸೆಕೆಂಡಿಗೆ 5 ಬಾರಿ). ಮತ್ತು ಚೆಕ್ ಹಾದುಹೋದಾಗ ಪ್ಲೇಯರ್ ಸೀನ್ ಅನ್ನು ನೀಡುವುದು ಫಲಿತಾಂಶವಾಗಿದೆ.

ಇದನ್ನು FSM ಗೆ ರವಾನಿಸಲಾಗಿದೆ, ಅದು ಈಗ ಪ್ಲೇಯರ್ ಸೀನ್ ಈವೆಂಟ್ ಸ್ವೀಕರಿಸಿದ ಸ್ಥಿತಿಗೆ ಹೋಗಬೇಕು ಮತ್ತು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸಬೇಕು. ಪ್ರತಿಕ್ರಿಯಿಸುವ ಮೊದಲು ಬಹುತೇಕ ಅಗ್ರಾಹ್ಯ ವಿಳಂಬವನ್ನು ಹೊರತುಪಡಿಸಿ ಪರಿಣಾಮವಾಗಿ ವರ್ತನೆಯು ಒಂದೇ ಆಗಿರುತ್ತದೆ. ಆದರೆ ಸೆನ್ಸ್ ಭಾಗವನ್ನು ಪ್ರೋಗ್ರಾಂನ ಪ್ರತ್ಯೇಕ ಭಾಗವಾಗಿ ಬೇರ್ಪಡಿಸುವ ಪರಿಣಾಮವಾಗಿ ಕಾರ್ಯಕ್ಷಮತೆ ಸುಧಾರಿಸಿದೆ.

ಶ್ರೇಣೀಕೃತ ಸೀಮಿತ ಸ್ಥಿತಿಯ ಯಂತ್ರ

ಆದಾಗ್ಯೂ, ದೊಡ್ಡ FSM ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದು ಯಾವಾಗಲೂ ಅನುಕೂಲಕರವಾಗಿರುವುದಿಲ್ಲ. ನಾವು ದಾಳಿಯ ಸ್ಥಿತಿಯನ್ನು ಪ್ರತ್ಯೇಕ ಗಲಿಬಿಲಿ ಮತ್ತು ರೇಂಜ್ಡ್ ಅಟಾಕಿಂಗ್‌ಗೆ ವಿಸ್ತರಿಸಲು ಬಯಸಿದರೆ, ದಾಳಿಯ ಸ್ಥಿತಿಗೆ (ಪ್ರಸ್ತುತ ಮತ್ತು ಭವಿಷ್ಯ) ಕಾರಣವಾಗುವ ಎಲ್ಲಾ ಇತರ ರಾಜ್ಯಗಳಿಂದ ನಾವು ಪರಿವರ್ತನೆಗಳನ್ನು ಬದಲಾಯಿಸಬೇಕಾಗುತ್ತದೆ.

ನಮ್ಮ ಉದಾಹರಣೆಯಲ್ಲಿ ಸಾಕಷ್ಟು ನಕಲಿ ಪರಿವರ್ತನೆಗಳಿವೆ ಎಂದು ನೀವು ಬಹುಶಃ ಗಮನಿಸಿದ್ದೀರಿ. ಐಡ್ಲಿಂಗ್ ಸ್ಥಿತಿಯಲ್ಲಿನ ಹೆಚ್ಚಿನ ಪರಿವರ್ತನೆಗಳು ಗಸ್ತು ಸ್ಥಿತಿಯಲ್ಲಿನ ಪರಿವರ್ತನೆಗಳಿಗೆ ಹೋಲುತ್ತವೆ. ನಾವೇ ಪುನರಾವರ್ತಿಸದಿರುವುದು ಒಳ್ಳೆಯದು, ವಿಶೇಷವಾಗಿ ನಾವು ಹೆಚ್ಚಿನ ರೀತಿಯ ರಾಜ್ಯಗಳನ್ನು ಸೇರಿಸಿದರೆ. "ನಾನ್-ಕಾಂಬ್ಯಾಟ್" ಎಂಬ ಸಾಮಾನ್ಯ ಲೇಬಲ್ ಅಡಿಯಲ್ಲಿ ಐಡ್ಲಿಂಗ್ ಮತ್ತು ಪೆಟ್ರೋಲಿಂಗ್ ಅನ್ನು ಗುಂಪು ಮಾಡುವುದು ಸಮಂಜಸವಾಗಿದೆ, ಅಲ್ಲಿ ಯುದ್ಧ ರಾಜ್ಯಗಳಿಗೆ ಒಂದೇ ಒಂದು ಸಾಮಾನ್ಯ ಪರಿವರ್ತನೆಗಳಿವೆ. ನಾವು ಈ ಲೇಬಲ್ ಅನ್ನು ರಾಜ್ಯವೆಂದು ಭಾವಿಸಿದರೆ, ನಂತರ ಇಡ್ಲಿಂಗ್ ಮತ್ತು ಪೆಟ್ರೋಲಿಂಗ್ ಉಪರಾಜ್ಯಗಳಾಗುತ್ತವೆ. ಹೊಸ ಯುದ್ಧ-ಅಲ್ಲದ ಸಬ್‌ಸ್ಟೇಟ್‌ಗಾಗಿ ಪ್ರತ್ಯೇಕ ಪರಿವರ್ತನೆ ಕೋಷ್ಟಕವನ್ನು ಬಳಸುವ ಉದಾಹರಣೆ:

ಮುಖ್ಯ ರಾಜ್ಯಗಳು:
ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಯುದ್ಧದ ಸ್ಥಿತಿಯಿಂದ ಹೊರಗಿದೆ:
ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಮತ್ತು ರೇಖಾಚಿತ್ರದ ರೂಪದಲ್ಲಿ:

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಇದು ಅದೇ ವ್ಯವಸ್ಥೆಯಾಗಿದೆ, ಆದರೆ ಐಡ್ಲಿಂಗ್ ಮತ್ತು ಪೆಟ್ರೋಲಿಂಗ್ ಅನ್ನು ಒಳಗೊಂಡಿರುವ ಹೊಸ ಯುದ್ಧ-ಅಲ್ಲದ ಸ್ಥಿತಿಯೊಂದಿಗೆ. ಸಬ್‌ಸ್ಟೇಟ್‌ಗಳೊಂದಿಗೆ ಎಫ್‌ಎಸ್‌ಎಮ್ ಹೊಂದಿರುವ ಪ್ರತಿ ರಾಜ್ಯದೊಂದಿಗೆ (ಮತ್ತು ಈ ಸಬ್‌ಸ್ಟೇಟ್‌ಗಳು, ತಮ್ಮದೇ ಆದ ಎಫ್‌ಎಸ್‌ಎಂಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ - ಮತ್ತು ನಿಮಗೆ ಅಗತ್ಯವಿರುವಷ್ಟು ಕಾಲ), ನಾವು ಶ್ರೇಣಿಯ ಫಿನೈಟ್ ಸ್ಟೇಟ್ ಮೆಷಿನ್ ಅಥವಾ ಎಚ್‌ಎಫ್‌ಎಸ್‌ಎಮ್ (ಶ್ರೇಣೀಕೃತ ಸೀಮಿತ ಸ್ಥಿತಿಯ ಯಂತ್ರ) ಅನ್ನು ಪಡೆಯುತ್ತೇವೆ. ಯುದ್ಧ-ಅಲ್ಲದ ಸ್ಥಿತಿಯನ್ನು ಗುಂಪು ಮಾಡುವ ಮೂಲಕ, ನಾವು ಅನಗತ್ಯ ಪರಿವರ್ತನೆಗಳ ಗುಂಪನ್ನು ಕತ್ತರಿಸುತ್ತೇವೆ. ಸಾಮಾನ್ಯ ಪರಿವರ್ತನೆಗಳೊಂದಿಗೆ ಯಾವುದೇ ಹೊಸ ರಾಜ್ಯಗಳಿಗೆ ನಾವು ಅದೇ ರೀತಿ ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ, ಭವಿಷ್ಯದಲ್ಲಿ ನಾವು ದಾಳಿಯ ಸ್ಥಿತಿಯನ್ನು ಗಲಿಬಿಲಿ ಮತ್ತು ಕ್ಷಿಪಣಿ ದಾಳಿಯ ರಾಜ್ಯಗಳಿಗೆ ವಿಸ್ತರಿಸಿದರೆ, ಅವು ಶತ್ರುಗಳ ನಡುವಿನ ಅಂತರ ಮತ್ತು ಶಸ್ತ್ರಾಸ್ತ್ರಗಳ ಲಭ್ಯತೆಯ ಆಧಾರದ ಮೇಲೆ ಪರಸ್ಪರ ಪರಿವರ್ತನೆಯಾಗುವ ಉಪರಾಜ್ಯಗಳಾಗಿವೆ. ಪರಿಣಾಮವಾಗಿ, ಸಂಕೀರ್ಣ ನಡವಳಿಕೆಗಳು ಮತ್ತು ಉಪ-ನಡವಳಿಕೆಗಳನ್ನು ಕನಿಷ್ಠ ನಕಲಿ ಪರಿವರ್ತನೆಗಳೊಂದಿಗೆ ಪ್ರತಿನಿಧಿಸಬಹುದು.

ವರ್ತನೆಯ ಮರ

HFSM ನೊಂದಿಗೆ, ನಡವಳಿಕೆಗಳ ಸಂಕೀರ್ಣ ಸಂಯೋಜನೆಗಳನ್ನು ಸರಳ ರೀತಿಯಲ್ಲಿ ರಚಿಸಲಾಗಿದೆ. ಆದಾಗ್ಯೂ, ಪರಿವರ್ತನೆಯ ನಿಯಮಗಳ ರೂಪದಲ್ಲಿ ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳುವುದು ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಗೆ ನಿಕಟವಾಗಿ ಸಂಬಂಧಿಸಿದೆ ಎಂದು ಸ್ವಲ್ಪ ತೊಂದರೆ ಇದೆ. ಮತ್ತು ಅನೇಕ ಆಟಗಳಲ್ಲಿ ಇದು ನಿಖರವಾಗಿ ಅಗತ್ಯವಿದೆ. ಮತ್ತು ರಾಜ್ಯ ಕ್ರಮಾನುಗತವನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಬಳಸುವುದರಿಂದ ಪರಿವರ್ತನೆಯ ಪುನರಾವರ್ತನೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು. ಆದರೆ ಕೆಲವೊಮ್ಮೆ ನೀವು ಯಾವುದೇ ಸ್ಥಿತಿಯಲ್ಲಿದ್ದರೂ ಅಥವಾ ಯಾವುದೇ ರಾಜ್ಯದಲ್ಲಿ ಅನ್ವಯಿಸುವ ನಿಯಮಗಳು ನಿಮಗೆ ಅಗತ್ಯವಿರುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಏಜೆಂಟ್‌ನ ಆರೋಗ್ಯವು 25% ಕ್ಕೆ ಇಳಿದರೆ, ಅವನು ಯುದ್ಧದಲ್ಲಿದ್ದರೂ, ನಿಷ್ಕ್ರಿಯವಾಗಿದ್ದರೂ ಅಥವಾ ಮಾತನಾಡುತ್ತಿದ್ದರೂ ಅವನು ಓಡಿಹೋಗಬೇಕೆಂದು ನೀವು ಬಯಸುತ್ತೀರಿ - ನೀವು ಈ ಸ್ಥಿತಿಯನ್ನು ಪ್ರತಿ ರಾಜ್ಯಕ್ಕೂ ಸೇರಿಸಬೇಕಾಗುತ್ತದೆ. ಮತ್ತು ನಿಮ್ಮ ಡಿಸೈನರ್ ನಂತರ ಕಡಿಮೆ ಆರೋಗ್ಯದ ಮಿತಿಯನ್ನು 25% ರಿಂದ 10% ಗೆ ಬದಲಾಯಿಸಲು ಬಯಸಿದರೆ, ಇದನ್ನು ಮತ್ತೆ ಮಾಡಬೇಕಾಗುತ್ತದೆ.

ತಾತ್ತ್ವಿಕವಾಗಿ, ಈ ಪರಿಸ್ಥಿತಿಯು ಒಂದೇ ಸ್ಥಳದಲ್ಲಿ ಮಾತ್ರ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲು ಮತ್ತು ಪರಿವರ್ತನೆಯ ಪರಿಸ್ಥಿತಿಗಳನ್ನು ಸ್ಪರ್ಶಿಸದಿರಲು "ಯಾವ ಸ್ಥಿತಿಯಲ್ಲಿರಬೇಕು" ಎಂಬುದರ ಕುರಿತು ನಿರ್ಧಾರಗಳು ರಾಜ್ಯಗಳ ಹೊರಗಿರುವ ವ್ಯವಸ್ಥೆಯ ಅಗತ್ಯವಿರುತ್ತದೆ. ವರ್ತನೆಯ ಮರಗಳು ಇಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ.

ಅವುಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಹಲವಾರು ಮಾರ್ಗಗಳಿವೆ, ಆದರೆ ಸಾರವು ಎಲ್ಲರಿಗೂ ಸರಿಸುಮಾರು ಒಂದೇ ಆಗಿರುತ್ತದೆ ಮತ್ತು ನಿರ್ಧಾರ ವೃಕ್ಷಕ್ಕೆ ಹೋಲುತ್ತದೆ: ಅಲ್ಗಾರಿದಮ್ "ರೂಟ್" ನೋಡ್‌ನೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಮರವು ನಿರ್ಧಾರಗಳು ಅಥವಾ ಕ್ರಿಯೆಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುವ ನೋಡ್‌ಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಆದರೂ ಕೆಲವು ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸಗಳಿವೆ:

  • ನೋಡ್‌ಗಳು ಈಗ ಮೂರು ಮೌಲ್ಯಗಳಲ್ಲಿ ಒಂದನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತವೆ: ಯಶಸ್ವಿಯಾಗಿದೆ (ಕೆಲಸ ಪೂರ್ಣಗೊಂಡಿದ್ದರೆ), ವಿಫಲವಾಗಿದೆ (ಅದನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗದಿದ್ದರೆ) ಅಥವಾ ಚಾಲನೆಯಲ್ಲಿದೆ (ಇದು ಇನ್ನೂ ಚಾಲನೆಯಲ್ಲಿದ್ದರೆ ಮತ್ತು ಅಂತಿಮ ಫಲಿತಾಂಶವಿಲ್ಲದಿದ್ದರೆ).
  • ಎರಡು ಪರ್ಯಾಯಗಳ ನಡುವೆ ಆಯ್ಕೆ ಮಾಡಲು ಯಾವುದೇ ನಿರ್ಧಾರದ ನೋಡ್‌ಗಳಿಲ್ಲ. ಬದಲಾಗಿ, ಅವುಗಳು ಡೆಕೋರೇಟರ್ ನೋಡ್ಗಳಾಗಿವೆ, ಅವುಗಳು ಒಂದು ಚೈಲ್ಡ್ ನೋಡ್ ಅನ್ನು ಹೊಂದಿವೆ. ಅವರು ಯಶಸ್ವಿಯಾದರೆ, ಅವರು ತಮ್ಮ ಏಕೈಕ ಚೈಲ್ಡ್ ನೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತಾರೆ.
  • ಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ವಹಿಸುವ ನೋಡ್‌ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವ ಕ್ರಿಯೆಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಲು ರನ್ನಿಂಗ್ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತವೆ.

ದೊಡ್ಡ ಸಂಖ್ಯೆಯ ಸಂಕೀರ್ಣ ನಡವಳಿಕೆಗಳನ್ನು ರಚಿಸಲು ಈ ಸಣ್ಣ ನೋಡ್‌ಗಳನ್ನು ಸಂಯೋಜಿಸಬಹುದು. ಹಿಂದಿನ ಉದಾಹರಣೆಯಿಂದ HFSM ಗಾರ್ಡ್ ಅನ್ನು ವರ್ತನೆಯ ಮರವಾಗಿ ಊಹಿಸೋಣ:

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಈ ರಚನೆಯೊಂದಿಗೆ ಐಡ್ಲಿಂಗ್/ಪೆಟ್ರೋಲಿಂಗ್ ಸ್ಟೇಟ್ಸ್‌ನಿಂದ ಅಟ್ಯಾಕ್ ಅಥವಾ ಯಾವುದೇ ಇತರ ರಾಜ್ಯಗಳಿಗೆ ಸ್ಪಷ್ಟ ಪರಿವರ್ತನೆ ಇರಬಾರದು. ಶತ್ರುವು ಗೋಚರಿಸಿದರೆ ಮತ್ತು ಪಾತ್ರದ ಆರೋಗ್ಯವು ಕಡಿಮೆಯಿದ್ದರೆ, ಅದು ಹಿಂದೆ ಯಾವ ನೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತಿದ್ದರೂ - ಗಸ್ತು ತಿರುಗುವುದು, ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದು, ದಾಳಿ ಮಾಡುವುದು ಅಥವಾ ಯಾವುದೇ ಇತರವುಗಳನ್ನು ಲೆಕ್ಕಿಸದೆಯೇ, ಪಲಾಯನ ನೋಡ್‌ನಲ್ಲಿ ಮರಣದಂಡನೆಯು ನಿಲ್ಲುತ್ತದೆ.

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ವರ್ತನೆಯ ಮರಗಳು ಸಂಕೀರ್ಣವಾಗಿವೆ-ಅವುಗಳನ್ನು ಸಂಯೋಜಿಸಲು ಹಲವು ಮಾರ್ಗಗಳಿವೆ, ಮತ್ತು ಅಲಂಕಾರಕಾರರು ಮತ್ತು ಸಂಯುಕ್ತ ನೋಡ್ಗಳ ಸರಿಯಾದ ಸಂಯೋಜನೆಯನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ಸವಾಲಾಗಿದೆ. ಮರವನ್ನು ಎಷ್ಟು ಬಾರಿ ಪರಿಶೀಲಿಸಬೇಕು ಎಂಬುದರ ಕುರಿತು ಪ್ರಶ್ನೆಗಳಿವೆ - ನಾವು ಅದರ ಪ್ರತಿಯೊಂದು ಭಾಗದ ಮೂಲಕ ಹೋಗಲು ಬಯಸುತ್ತೇವೆಯೇ ಅಥವಾ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಒಂದನ್ನು ಬದಲಾಯಿಸಿದಾಗ ಮಾತ್ರವೇ? ನೋಡ್‌ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಸ್ಥಿತಿಯನ್ನು ನಾವು ಹೇಗೆ ಸಂಗ್ರಹಿಸುತ್ತೇವೆ - ನಾವು 10 ಸೆಕೆಂಡುಗಳ ಕಾಲ ನಿಷ್ಕ್ರಿಯವಾಗಿರುವಾಗ ನಮಗೆ ಹೇಗೆ ತಿಳಿಯುತ್ತದೆ ಅಥವಾ ಕೊನೆಯ ಬಾರಿ ಯಾವ ನೋಡ್‌ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತಿದೆ ಎಂದು ನಮಗೆ ಹೇಗೆ ತಿಳಿಯುತ್ತದೆ ಆದ್ದರಿಂದ ನಾವು ಅನುಕ್ರಮವನ್ನು ಸರಿಯಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು?

ಇದಕ್ಕಾಗಿಯೇ ಅನೇಕ ಅನುಷ್ಠಾನಗಳಿವೆ. ಉದಾಹರಣೆಗೆ, ಕೆಲವು ವ್ಯವಸ್ಥೆಗಳು ಡೆಕೊರೇಟರ್ ನೋಡ್‌ಗಳನ್ನು ಇನ್‌ಲೈನ್ ಡೆಕೋರೇಟರ್‌ಗಳೊಂದಿಗೆ ಬದಲಾಯಿಸಿವೆ. ಡೆಕೋರೇಟರ್ ಪರಿಸ್ಥಿತಿಗಳು ಬದಲಾದಾಗ ಅವರು ಮರವನ್ನು ಮರು-ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತಾರೆ, ನೋಡ್‌ಗಳನ್ನು ಸೇರಲು ಸಹಾಯ ಮಾಡುತ್ತಾರೆ ಮತ್ತು ಆವರ್ತಕ ನವೀಕರಣಗಳನ್ನು ಒದಗಿಸುತ್ತಾರೆ.

ಉಪಯುಕ್ತತೆ ಆಧಾರಿತ ವ್ಯವಸ್ಥೆ

ಕೆಲವು ಆಟಗಳು ಹಲವು ವಿಭಿನ್ನ ಯಂತ್ರಶಾಸ್ತ್ರಗಳನ್ನು ಹೊಂದಿವೆ. ಅವರು ಸರಳ ಮತ್ತು ಸಾಮಾನ್ಯ ಪರಿವರ್ತನಾ ನಿಯಮಗಳ ಎಲ್ಲಾ ಪ್ರಯೋಜನಗಳನ್ನು ಪಡೆಯುವುದು ಅಪೇಕ್ಷಣೀಯವಾಗಿದೆ, ಆದರೆ ನಡವಳಿಕೆಯ ಸಂಪೂರ್ಣ ಮರದ ರೂಪದಲ್ಲಿ ಅಗತ್ಯವಿಲ್ಲ. ಸ್ಪಷ್ಟವಾದ ಆಯ್ಕೆಗಳ ಸೆಟ್ ಅಥವಾ ಸಂಭವನೀಯ ಕ್ರಿಯೆಗಳ ಮರವನ್ನು ಹೊಂದುವ ಬದಲು, ಎಲ್ಲಾ ಕ್ರಿಯೆಗಳನ್ನು ಪರೀಕ್ಷಿಸಲು ಮತ್ತು ಕ್ಷಣದಲ್ಲಿ ಹೆಚ್ಚು ಸೂಕ್ತವಾದದನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಸುಲಭವಾಗಿದೆ.

ಯುಟಿಲಿಟಿ ಆಧಾರಿತ ವ್ಯವಸ್ಥೆಯು ಇದಕ್ಕೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಇದು ಏಜೆಂಟ್ ವಿವಿಧ ಕ್ರಿಯೆಗಳನ್ನು ಹೊಂದಿರುವ ವ್ಯವಸ್ಥೆಯಾಗಿದೆ ಮತ್ತು ಪ್ರತಿಯೊಂದರ ಸಾಪೇಕ್ಷ ಉಪಯುಕ್ತತೆಯ ಆಧಾರದ ಮೇಲೆ ಯಾವುದನ್ನು ನಿರ್ವಹಿಸಬೇಕೆಂದು ಆಯ್ಕೆಮಾಡುತ್ತದೆ. ಅಲ್ಲಿ ಉಪಯುಕ್ತತೆಯು ಏಜೆಂಟ್ ಈ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಎಷ್ಟು ಮುಖ್ಯ ಅಥವಾ ಅಪೇಕ್ಷಣೀಯವಾಗಿದೆ ಎಂಬುದರ ಅನಿಯಂತ್ರಿತ ಅಳತೆಯಾಗಿದೆ.

ಪ್ರಸ್ತುತ ಸ್ಥಿತಿ ಮತ್ತು ಪರಿಸರದ ಆಧಾರದ ಮೇಲೆ ಕ್ರಿಯೆಯ ಲೆಕ್ಕಾಚಾರದ ಉಪಯುಕ್ತತೆ, ಏಜೆಂಟ್ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಹೆಚ್ಚು ಸೂಕ್ತವಾದ ಇತರ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಬಹುದು ಮತ್ತು ಆಯ್ಕೆ ಮಾಡಬಹುದು. ಇದು ಎಫ್‌ಎಸ್‌ಎಮ್‌ನಂತೆಯೇ ಇರುತ್ತದೆ, ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯನ್ನು ಒಳಗೊಂಡಂತೆ ಪ್ರತಿ ಸಂಭಾವ್ಯ ಸ್ಥಿತಿಯ ಅಂದಾಜು ಮೂಲಕ ಪರಿವರ್ತನೆಗಳನ್ನು ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ. ಮುಂದುವರಿಯಲು ನಾವು ಹೆಚ್ಚು ಉಪಯುಕ್ತವಾದ ಕ್ರಿಯೆಯನ್ನು ಆರಿಸಿಕೊಳ್ಳುತ್ತೇವೆ ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ (ಅಥವಾ ನಾವು ಈಗಾಗಲೇ ಅದನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ್ದರೆ ಉಳಿಯಿರಿ). ಹೆಚ್ಚಿನ ವೈವಿಧ್ಯತೆಗಾಗಿ, ಇದು ಸಣ್ಣ ಪಟ್ಟಿಯಿಂದ ಸಮತೋಲಿತ ಆದರೆ ಯಾದೃಚ್ಛಿಕ ಆಯ್ಕೆಯಾಗಿರಬಹುದು.

ಸಿಸ್ಟಮ್ ಯುಟಿಲಿಟಿ ಮೌಲ್ಯಗಳ ಅನಿಯಂತ್ರಿತ ಶ್ರೇಣಿಯನ್ನು ನಿಯೋಜಿಸುತ್ತದೆ-ಉದಾಹರಣೆಗೆ, 0 (ಸಂಪೂರ್ಣವಾಗಿ ಅನಪೇಕ್ಷಿತ) ನಿಂದ 100 (ಸಂಪೂರ್ಣವಾಗಿ ಅಪೇಕ್ಷಣೀಯ) ವರೆಗೆ. ಪ್ರತಿಯೊಂದು ಕ್ರಿಯೆಯು ಈ ಮೌಲ್ಯದ ಲೆಕ್ಕಾಚಾರದ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವ ಹಲವಾರು ನಿಯತಾಂಕಗಳನ್ನು ಹೊಂದಿದೆ. ನಮ್ಮ ರಕ್ಷಕ ಉದಾಹರಣೆಗೆ ಹಿಂತಿರುಗಿ:

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಕ್ರಿಯೆಗಳ ನಡುವಿನ ಪರಿವರ್ತನೆಗಳು ಅಸ್ಪಷ್ಟವಾಗಿರುತ್ತವೆ-ಯಾವುದೇ ರಾಜ್ಯವು ಯಾವುದನ್ನಾದರೂ ಅನುಸರಿಸಬಹುದು. ಹಿಂತಿರುಗಿದ ಉಪಯುಕ್ತತೆಯ ಮೌಲ್ಯಗಳಲ್ಲಿ ಕ್ರಿಯೆಯ ಆದ್ಯತೆಗಳು ಕಂಡುಬರುತ್ತವೆ. ಶತ್ರುವು ಗೋಚರಿಸಿದರೆ ಮತ್ತು ಆ ಶತ್ರು ಬಲಶಾಲಿಯಾಗಿದ್ದರೆ ಮತ್ತು ಪಾತ್ರದ ಆರೋಗ್ಯವು ಕಡಿಮೆಯಿದ್ದರೆ, ನಂತರ ಪಲಾಯನ ಮತ್ತು ಫೈಂಡಿಂಗ್ ಹೆಲ್ಪ್ ಎರಡೂ ಹೆಚ್ಚಿನ ಶೂನ್ಯವಲ್ಲದ ಮೌಲ್ಯಗಳನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, FindingHelp ಯಾವಾಗಲೂ ಹೆಚ್ಚಾಗಿರುತ್ತದೆ. ಅಂತೆಯೇ, ಯುದ್ಧ-ಅಲ್ಲದ ಚಟುವಟಿಕೆಗಳು ಎಂದಿಗೂ 50 ಕ್ಕಿಂತ ಹೆಚ್ಚು ಹಿಂತಿರುಗುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಅವು ಯಾವಾಗಲೂ ಯುದ್ಧಕ್ಕಿಂತ ಕಡಿಮೆಯಿರುತ್ತವೆ. ಕ್ರಿಯೆಗಳನ್ನು ರಚಿಸುವಾಗ ಮತ್ತು ಅವುಗಳ ಉಪಯುಕ್ತತೆಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವಾಗ ನೀವು ಇದನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ.

ನಮ್ಮ ಉದಾಹರಣೆಯಲ್ಲಿ, ಕ್ರಮಗಳು ಸ್ಥಿರ ಸ್ಥಿರ ಮೌಲ್ಯವನ್ನು ಅಥವಾ ಎರಡು ಸ್ಥಿರ ಮೌಲ್ಯಗಳಲ್ಲಿ ಒಂದನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತವೆ. ಹೆಚ್ಚು ವಾಸ್ತವಿಕ ವ್ಯವಸ್ಥೆಯು ಮೌಲ್ಯಗಳ ನಿರಂತರ ಶ್ರೇಣಿಯಿಂದ ಅಂದಾಜು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಏಜೆಂಟ್‌ನ ಆರೋಗ್ಯವು ಕಡಿಮೆಯಿದ್ದರೆ ಪಲಾಯನ ಕ್ರಿಯೆಯು ಹೆಚ್ಚಿನ ಉಪಯುಕ್ತತೆಯ ಮೌಲ್ಯಗಳನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ ಮತ್ತು ಶತ್ರು ತುಂಬಾ ಬಲಶಾಲಿಯಾಗಿದ್ದರೆ ಆಕ್ರಮಣಕಾರಿ ಕ್ರಿಯೆಯು ಕಡಿಮೆ ಉಪಯುಕ್ತತೆಯ ಮೌಲ್ಯಗಳನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಈ ಕಾರಣದಿಂದಾಗಿ, ಶತ್ರುವನ್ನು ಸೋಲಿಸಲು ತನಗೆ ಸಾಕಷ್ಟು ಆರೋಗ್ಯವಿಲ್ಲ ಎಂದು ಏಜೆಂಟ್ ಭಾವಿಸುವ ಯಾವುದೇ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ ದಾಳಿ ಮಾಡುವುದಕ್ಕಿಂತ ಪಲಾಯನ ಕ್ರಿಯೆಯು ಆದ್ಯತೆಯನ್ನು ಪಡೆಯುತ್ತದೆ. ಯಾವುದೇ ಸಂಖ್ಯೆಯ ಮಾನದಂಡಗಳ ಆಧಾರದ ಮೇಲೆ ಕ್ರಮಗಳಿಗೆ ಆದ್ಯತೆ ನೀಡಲು ಇದು ಅನುಮತಿಸುತ್ತದೆ, ಈ ವಿಧಾನವನ್ನು ವರ್ತನೆಯ ಮರ ಅಥವಾ FSM ಗಿಂತ ಹೆಚ್ಚು ಹೊಂದಿಕೊಳ್ಳುವ ಮತ್ತು ವೇರಿಯಬಲ್ ಮಾಡುತ್ತದೆ.

ಪ್ರತಿಯೊಂದು ಕ್ರಿಯೆಯು ಪ್ರೋಗ್ರಾಂ ಲೆಕ್ಕಾಚಾರಕ್ಕೆ ಹಲವು ಷರತ್ತುಗಳನ್ನು ಹೊಂದಿದೆ. ಅವುಗಳನ್ನು ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ ಅಥವಾ ಗಣಿತದ ಸೂತ್ರಗಳ ಸರಣಿಯಾಗಿ ಬರೆಯಬಹುದು. ಪಾತ್ರದ ದೈನಂದಿನ ದಿನಚರಿಯನ್ನು ಅನುಕರಿಸುವ ಸಿಮ್ಸ್, ಹೆಚ್ಚುವರಿ ಲೆಕ್ಕಾಚಾರದ ಪದರವನ್ನು ಸೇರಿಸುತ್ತದೆ - ಏಜೆಂಟ್ ಯುಟಿಲಿಟಿ ರೇಟಿಂಗ್‌ಗಳ ಮೇಲೆ ಪ್ರಭಾವ ಬೀರುವ "ಪ್ರೇರಣೆಗಳ" ಸರಣಿಯನ್ನು ಪಡೆಯುತ್ತದೆ. ಒಂದು ಪಾತ್ರವು ಹಸಿದಿದ್ದರೆ, ಅವರು ಕಾಲಾನಂತರದಲ್ಲಿ ಇನ್ನೂ ಹಸಿದವರಾಗುತ್ತಾರೆ ಮತ್ತು ಪಾತ್ರವು ಅದನ್ನು ನಿರ್ವಹಿಸುವವರೆಗೆ ಈಟ್‌ಫುಡ್ ಕ್ರಿಯೆಯ ಉಪಯುಕ್ತತೆಯ ಮೌಲ್ಯವು ಹೆಚ್ಚಾಗುತ್ತದೆ, ಹಸಿವಿನ ಮಟ್ಟವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಈಟ್‌ಫುಡ್ ಮೌಲ್ಯವನ್ನು ಶೂನ್ಯಕ್ಕೆ ಹಿಂತಿರುಗಿಸುತ್ತದೆ.

ರೇಟಿಂಗ್ ವ್ಯವಸ್ಥೆಯ ಆಧಾರದ ಮೇಲೆ ಕ್ರಿಯೆಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಕಲ್ಪನೆಯು ತುಂಬಾ ಸರಳವಾಗಿದೆ, ಆದ್ದರಿಂದ ಯುಟಿಲಿಟಿ-ಆಧಾರಿತ ವ್ಯವಸ್ಥೆಯನ್ನು AI ನಿರ್ಧಾರ-ಮಾಡುವ ಪ್ರಕ್ರಿಯೆಗಳ ಭಾಗವಾಗಿ ಬಳಸಬಹುದು, ಬದಲಿಗೆ ಅವುಗಳಿಗೆ ಸಂಪೂರ್ಣ ಬದಲಿಯಾಗಿ. ನಿರ್ಧಾರ ವೃಕ್ಷವು ಎರಡು ಚೈಲ್ಡ್ ನೋಡ್‌ಗಳ ಉಪಯುಕ್ತತೆಯ ರೇಟಿಂಗ್ ಅನ್ನು ಕೇಳಬಹುದು ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದು. ಅಂತೆಯೇ, ನಡವಳಿಕೆಯ ಮರವು ಯಾವ ಮಗುವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕೆಂದು ನಿರ್ಧರಿಸಲು ಕ್ರಿಯೆಗಳ ಉಪಯುಕ್ತತೆಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ಸಂಯೋಜಿತ ಯುಟಿಲಿಟಿ ನೋಡ್ ಅನ್ನು ಹೊಂದಬಹುದು.

ಚಲನೆ ಮತ್ತು ನ್ಯಾವಿಗೇಷನ್

ಹಿಂದಿನ ಉದಾಹರಣೆಗಳಲ್ಲಿ, ನಾವು ಎಡಕ್ಕೆ ಅಥವಾ ಬಲಕ್ಕೆ ಚಲಿಸುವ ವೇದಿಕೆಯನ್ನು ಹೊಂದಿದ್ದೇವೆ ಮತ್ತು ಗಸ್ತು ತಿರುಗುವ ಅಥವಾ ದಾಳಿ ಮಾಡುವ ಸಿಬ್ಬಂದಿಯನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಆದರೆ ನಿರ್ದಿಷ್ಟ ಅವಧಿಯಲ್ಲಿ ಏಜೆಂಟ್ ಚಲನೆಯನ್ನು ನಾವು ನಿಖರವಾಗಿ ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತೇವೆ? ನಾವು ವೇಗವನ್ನು ಹೇಗೆ ಹೊಂದಿಸುತ್ತೇವೆ, ನಾವು ಅಡೆತಡೆಗಳನ್ನು ಹೇಗೆ ತಪ್ಪಿಸುತ್ತೇವೆ ಮತ್ತು ಗಮ್ಯಸ್ಥಾನವನ್ನು ತಲುಪುವುದು ಸರಳ ರೇಖೆಯಲ್ಲಿ ಚಲಿಸುವುದಕ್ಕಿಂತ ಹೆಚ್ಚು ಕಷ್ಟಕರವಾದಾಗ ನಾವು ಮಾರ್ಗವನ್ನು ಹೇಗೆ ಯೋಜಿಸುತ್ತೇವೆ? ಇದನ್ನು ನೋಡೋಣ.

ಆಡಳಿತ

ಆರಂಭಿಕ ಹಂತದಲ್ಲಿ, ಪ್ರತಿ ಏಜೆಂಟ್ ವೇಗದ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿದೆ ಎಂದು ನಾವು ಊಹಿಸುತ್ತೇವೆ, ಅದು ಎಷ್ಟು ವೇಗವಾಗಿ ಚಲಿಸುತ್ತದೆ ಮತ್ತು ಯಾವ ದಿಕ್ಕಿನಲ್ಲಿದೆ. ಇದನ್ನು ಸೆಕೆಂಡಿಗೆ ಮೀಟರ್‌ಗಳು, ಗಂಟೆಗೆ ಕಿಲೋಮೀಟರ್‌ಗಳು, ಸೆಕೆಂಡಿಗೆ ಪಿಕ್ಸೆಲ್‌ಗಳು ಇತ್ಯಾದಿಗಳಲ್ಲಿ ಅಳೆಯಬಹುದು. ಸೆನ್ಸ್/ಥಿಂಕ್/ಆಕ್ಟ್ ಲೂಪ್ ಅನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳುವುದರಿಂದ, ಥಿಂಕ್ ಭಾಗವು ವೇಗವನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಆಕ್ಟ್ ಭಾಗವು ಆ ವೇಗವನ್ನು ಏಜೆಂಟ್‌ಗೆ ಅನ್ವಯಿಸುತ್ತದೆ ಎಂದು ನಾವು ಊಹಿಸಬಹುದು. ವಿಶಿಷ್ಟವಾಗಿ ಆಟಗಳು ಭೌತಶಾಸ್ತ್ರ ವ್ಯವಸ್ಥೆಯನ್ನು ಹೊಂದಿದ್ದು ಅದು ನಿಮಗಾಗಿ ಈ ಕಾರ್ಯವನ್ನು ಮಾಡುತ್ತದೆ, ಪ್ರತಿ ವಸ್ತುವಿನ ವೇಗದ ಮೌಲ್ಯವನ್ನು ಕಲಿಯುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಸರಿಹೊಂದಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ, ನೀವು AI ಅನ್ನು ಒಂದು ಕಾರ್ಯದೊಂದಿಗೆ ಬಿಡಬಹುದು - ಏಜೆಂಟ್ ಯಾವ ವೇಗವನ್ನು ಹೊಂದಿರಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು. ಏಜೆಂಟ್ ಎಲ್ಲಿರಬೇಕು ಎಂದು ನಿಮಗೆ ತಿಳಿದಿದ್ದರೆ, ನೀವು ಅದನ್ನು ನಿಗದಿತ ವೇಗದಲ್ಲಿ ಸರಿಯಾದ ದಿಕ್ಕಿನಲ್ಲಿ ಚಲಿಸಬೇಕಾಗುತ್ತದೆ. ಬಹಳ ಕ್ಷುಲ್ಲಕ ಸಮೀಕರಣ:

ಬಯಸಿದ_ಪ್ರಯಾಣ = ಗಮ್ಯಸ್ಥಾನ_ಸ್ಥಾನ - ಏಜೆಂಟ್_ಸ್ಥಾನ

2D ಜಗತ್ತನ್ನು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ. ಏಜೆಂಟ್ ಬಿಂದುವಿನಲ್ಲಿದೆ (-2,-2), ಗಮ್ಯಸ್ಥಾನವು ಈಶಾನ್ಯದಲ್ಲಿ ಎಲ್ಲೋ ಪಾಯಿಂಟ್‌ನಲ್ಲಿದೆ (30, 20), ಮತ್ತು ಏಜೆಂಟ್‌ಗೆ ಅಲ್ಲಿಗೆ ಹೋಗಲು ಅಗತ್ಯವಿರುವ ಮಾರ್ಗವಾಗಿದೆ (32, 22). ಈ ಸ್ಥಾನಗಳನ್ನು ಮೀಟರ್‌ಗಳಲ್ಲಿ ಅಳೆಯಲಾಗುತ್ತದೆ ಎಂದು ಹೇಳೋಣ - ನಾವು ಏಜೆಂಟ್‌ನ ವೇಗವನ್ನು ಸೆಕೆಂಡಿಗೆ 5 ಮೀಟರ್ ಎಂದು ತೆಗೆದುಕೊಂಡರೆ, ನಾವು ನಮ್ಮ ಸ್ಥಳಾಂತರ ವೆಕ್ಟರ್ ಅನ್ನು ಅಳೆಯುತ್ತೇವೆ ಮತ್ತು ಸರಿಸುಮಾರು (4.12, 2.83) ವೇಗವನ್ನು ಪಡೆಯುತ್ತೇವೆ. ಈ ನಿಯತಾಂಕಗಳೊಂದಿಗೆ, ಏಜೆಂಟ್ ಸುಮಾರು 8 ಸೆಕೆಂಡುಗಳಲ್ಲಿ ತನ್ನ ಗಮ್ಯಸ್ಥಾನವನ್ನು ತಲುಪುತ್ತದೆ.

ನೀವು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಮೌಲ್ಯಗಳನ್ನು ಮರು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬಹುದು. ಏಜೆಂಟ್ ಗುರಿಯ ಅರ್ಧದಾರಿಯಾಗಿದ್ದರೆ, ಚಲನೆಯು ಅರ್ಧದಷ್ಟು ಉದ್ದವಾಗಿರುತ್ತದೆ, ಆದರೆ ಏಜೆಂಟ್‌ನ ಗರಿಷ್ಠ ವೇಗವು 5 ಮೀ/ಸೆ ಆಗಿರುವುದರಿಂದ (ನಾವು ಇದನ್ನು ಮೇಲೆ ನಿರ್ಧರಿಸಿದ್ದೇವೆ), ವೇಗವು ಒಂದೇ ಆಗಿರುತ್ತದೆ. ಇದು ಚಲಿಸುವ ಗುರಿಗಳಿಗೆ ಸಹ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಏಜೆಂಟ್ ಚಲಿಸುವಾಗ ಸಣ್ಣ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಆದರೆ ನಾವು ಹೆಚ್ಚಿನ ಬದಲಾವಣೆಯನ್ನು ಬಯಸುತ್ತೇವೆ - ಉದಾಹರಣೆಗೆ, ನಿಂತಿರುವಿಂದ ಚಾಲನೆಯಲ್ಲಿರುವ ಪಾತ್ರವನ್ನು ಅನುಕರಿಸಲು ವೇಗವನ್ನು ನಿಧಾನವಾಗಿ ಹೆಚ್ಚಿಸುವುದು. ನಿಲ್ಲಿಸುವ ಮೊದಲು ಅದೇ ರೀತಿ ಮಾಡಬಹುದು. ಈ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸ್ಟೀರಿಂಗ್ ನಡವಳಿಕೆಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಪ್ರತಿಯೊಂದೂ ನಿರ್ದಿಷ್ಟ ಹೆಸರುಗಳನ್ನು ಹೊಂದಿದೆ: ಸೀಕ್, ಪಲಾಯನ, ಆಗಮನ, ಇತ್ಯಾದಿ. ಏಜೆಂಟ್‌ನ ಸ್ಥಾನ ಮತ್ತು ಪ್ರಸ್ತುತ ವೇಗವನ್ನು ಗಮ್ಯಸ್ಥಾನದೊಂದಿಗೆ ಹೋಲಿಸುವುದರ ಆಧಾರದ ಮೇಲೆ ಏಜೆಂಟ್‌ನ ವೇಗಕ್ಕೆ ವೇಗವರ್ಧಕ ಬಲಗಳನ್ನು ಅನ್ವಯಿಸಬಹುದು. ಗುರಿಯತ್ತ ಚಲಿಸುವ ವಿವಿಧ ವಿಧಾನಗಳನ್ನು ಬಳಸಲು.

ಪ್ರತಿಯೊಂದು ನಡವಳಿಕೆಯು ಸ್ವಲ್ಪ ವಿಭಿನ್ನ ಉದ್ದೇಶವನ್ನು ಹೊಂದಿದೆ. ಹುಡುಕುವುದು ಮತ್ತು ಆಗಮನವು ಏಜೆಂಟ್ ಅನ್ನು ಗಮ್ಯಸ್ಥಾನಕ್ಕೆ ಸ್ಥಳಾಂತರಿಸುವ ಮಾರ್ಗಗಳಾಗಿವೆ. ಅಡಚಣೆ ತಪ್ಪಿಸುವಿಕೆ ಮತ್ತು ಪ್ರತ್ಯೇಕತೆಯು ಗುರಿಯ ಹಾದಿಯಲ್ಲಿನ ಅಡೆತಡೆಗಳನ್ನು ತಪ್ಪಿಸಲು ಏಜೆಂಟ್‌ನ ಚಲನೆಯನ್ನು ಸರಿಹೊಂದಿಸುತ್ತದೆ. ಜೋಡಣೆ ಮತ್ತು ಒಗ್ಗಟ್ಟು ಏಜೆಂಟ್‌ಗಳನ್ನು ಒಟ್ಟಿಗೆ ಚಲಿಸುವಂತೆ ಮಾಡುತ್ತದೆ. ಎಲ್ಲಾ ಅಂಶಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಂಡು ಒಂದೇ ಮಾರ್ಗ ವೆಕ್ಟರ್ ಅನ್ನು ಉತ್ಪಾದಿಸಲು ಯಾವುದೇ ಸಂಖ್ಯೆಯ ವಿಭಿನ್ನ ಸ್ಟೀರಿಂಗ್ ನಡವಳಿಕೆಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸಬಹುದು. ಗೋಡೆಗಳು ಮತ್ತು ಇತರ ಏಜೆಂಟ್‌ಗಳಿಂದ ದೂರವಿರಲು ಆಗಮನ, ಪ್ರತ್ಯೇಕತೆ ಮತ್ತು ಅಡಚಣೆ ತಪ್ಪಿಸುವ ನಡವಳಿಕೆಗಳನ್ನು ಬಳಸುವ ಏಜೆಂಟ್. ಅನಗತ್ಯ ವಿವರಗಳಿಲ್ಲದೆ ತೆರೆದ ಸ್ಥಳಗಳಲ್ಲಿ ಈ ವಿಧಾನವು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ಹೆಚ್ಚು ಕಷ್ಟಕರ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ, ವಿಭಿನ್ನ ನಡವಳಿಕೆಗಳ ಸೇರ್ಪಡೆಯು ಕೆಟ್ಟದಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ - ಉದಾಹರಣೆಗೆ, ಆಗಮನ ಮತ್ತು ಅಡಚಣೆ ತಪ್ಪಿಸುವಿಕೆಯ ನಡುವಿನ ಸಂಘರ್ಷದಿಂದಾಗಿ ಏಜೆಂಟ್ ಗೋಡೆಯಲ್ಲಿ ಸಿಲುಕಿಕೊಳ್ಳಬಹುದು. ಆದ್ದರಿಂದ, ಎಲ್ಲಾ ಮೌಲ್ಯಗಳನ್ನು ಸರಳವಾಗಿ ಸೇರಿಸುವುದಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಆಯ್ಕೆಗಳನ್ನು ನೀವು ಪರಿಗಣಿಸಬೇಕಾಗಿದೆ. ದಾರಿ ಇದು: ಪ್ರತಿ ನಡವಳಿಕೆಯ ಫಲಿತಾಂಶಗಳನ್ನು ಸೇರಿಸುವ ಬದಲು, ನೀವು ವಿಭಿನ್ನ ದಿಕ್ಕುಗಳಲ್ಲಿ ಚಲನೆಯನ್ನು ಪರಿಗಣಿಸಬಹುದು ಮತ್ತು ಉತ್ತಮ ಆಯ್ಕೆಯನ್ನು ಆರಿಸಿಕೊಳ್ಳಬಹುದು.

ಆದಾಗ್ಯೂ, ಜಟಿಲವಾದ ಅಂತ್ಯಗಳು ಮತ್ತು ಯಾವ ದಾರಿಯಲ್ಲಿ ಹೋಗಬೇಕೆಂಬುದರ ಬಗ್ಗೆ ಆಯ್ಕೆಗಳನ್ನು ಹೊಂದಿರುವ ಸಂಕೀರ್ಣ ಪರಿಸರದಲ್ಲಿ, ನಮಗೆ ಇನ್ನೂ ಹೆಚ್ಚು ಸುಧಾರಿತ ಏನಾದರೂ ಅಗತ್ಯವಿದೆ.

ದಾರಿ ಹುಡುಕುವುದು

ತೆರೆದ ಪ್ರದೇಶದಲ್ಲಿ (ಫುಟ್‌ಬಾಲ್ ಮೈದಾನ ಅಥವಾ ಅರೇನಾ) ಸರಳ ಚಲನೆಗೆ ಸ್ಟೀರಿಂಗ್ ನಡವಳಿಕೆಗಳು ಉತ್ತಮವಾಗಿವೆ, ಅಲ್ಲಿ A ನಿಂದ B ಗೆ ಹೋಗುವುದು ಅಡೆತಡೆಗಳ ಸುತ್ತಲೂ ಕೇವಲ ಸಣ್ಣ ಸುತ್ತುಗಳನ್ನು ಹೊಂದಿರುವ ನೇರ ಮಾರ್ಗವಾಗಿದೆ. ಸಂಕೀರ್ಣ ಮಾರ್ಗಗಳಿಗಾಗಿ, ನಮಗೆ ಪಾಥ್‌ಫೈಂಡಿಂಗ್ ಅಗತ್ಯವಿದೆ, ಇದು ಜಗತ್ತನ್ನು ಅನ್ವೇಷಿಸುವ ಮತ್ತು ಅದರ ಮೂಲಕ ಮಾರ್ಗವನ್ನು ನಿರ್ಧರಿಸುವ ಮಾರ್ಗವಾಗಿದೆ.

ಏಜೆಂಟ್‌ನ ಪಕ್ಕದಲ್ಲಿರುವ ಪ್ರತಿ ಚೌಕಕ್ಕೆ ಗ್ರಿಡ್ ಅನ್ನು ಅನ್ವಯಿಸುವುದು ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಯಾವುದನ್ನು ಸರಿಸಲು ಅನುಮತಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುವುದು ಸರಳವಾಗಿದೆ. ಅವುಗಳಲ್ಲಿ ಒಂದು ಗಮ್ಯಸ್ಥಾನವಾಗಿದ್ದರೆ, ನೀವು ಪ್ರಾರಂಭವನ್ನು ತಲುಪುವವರೆಗೆ ಪ್ರತಿ ಚೌಕದಿಂದ ಹಿಂದಿನದಕ್ಕೆ ಮಾರ್ಗವನ್ನು ಅನುಸರಿಸಿ. ಇದು ಮಾರ್ಗವಾಗಿದೆ. ಇಲ್ಲದಿದ್ದರೆ, ನಿಮ್ಮ ಗಮ್ಯಸ್ಥಾನವನ್ನು ನೀವು ಕಂಡುಕೊಳ್ಳುವವರೆಗೆ ಅಥವಾ ನಿಮ್ಮ ಚೌಕಗಳು ಖಾಲಿಯಾಗುವವರೆಗೆ (ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲ ಎಂದರ್ಥ) ಹತ್ತಿರದ ಇತರ ಚೌಕಗಳೊಂದಿಗೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪುನರಾವರ್ತಿಸಿ. ಇದನ್ನು ಔಪಚಾರಿಕವಾಗಿ ಬ್ರೆಡ್ತ್-ಫಸ್ಟ್ ಸರ್ಚ್ ಅಥವಾ ಬಿಎಫ್ಎಸ್ (ಅಗಲ-ಮೊದಲ ಹುಡುಕಾಟ ಅಲ್ಗಾರಿದಮ್) ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಪ್ರತಿ ಹಂತದಲ್ಲೂ ಅವನು ಎಲ್ಲಾ ದಿಕ್ಕುಗಳಲ್ಲಿ ನೋಡುತ್ತಾನೆ (ಆದ್ದರಿಂದ ಅಗಲ, "ಅಗಲ"). ಹುಡುಕಾಟ ಸ್ಥಳವು ಅಪೇಕ್ಷಿತ ಸ್ಥಳವನ್ನು ತಲುಪುವವರೆಗೆ ಚಲಿಸುವ ತರಂಗದ ಮುಂಭಾಗದಂತಿದೆ - ಅಂತ್ಯದ ಬಿಂದುವನ್ನು ಸೇರಿಸುವವರೆಗೆ ಹುಡುಕಾಟ ಸ್ಥಳವು ಪ್ರತಿ ಹಂತದಲ್ಲೂ ವಿಸ್ತರಿಸುತ್ತದೆ, ನಂತರ ಅದನ್ನು ಪ್ರಾರಂಭಕ್ಕೆ ಹಿಂತಿರುಗಿಸಬಹುದು.

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಪರಿಣಾಮವಾಗಿ, ಬಯಸಿದ ಮಾರ್ಗವನ್ನು ಸಂಕಲಿಸಿದ ಚೌಕಗಳ ಪಟ್ಟಿಯನ್ನು ನೀವು ಸ್ವೀಕರಿಸುತ್ತೀರಿ. ಇದು ಮಾರ್ಗವಾಗಿದೆ (ಆದ್ದರಿಂದ, ಮಾರ್ಗಶೋಧನೆ) - ಗಮ್ಯಸ್ಥಾನವನ್ನು ಅನುಸರಿಸುವಾಗ ಏಜೆಂಟ್ ಭೇಟಿ ನೀಡುವ ಸ್ಥಳಗಳ ಪಟ್ಟಿ.

ಪ್ರಪಂಚದ ಪ್ರತಿಯೊಂದು ಚೌಕದ ಸ್ಥಾನವನ್ನು ನಾವು ತಿಳಿದಿರುವ ಕಾರಣ, ನಾವು ಮಾರ್ಗದಲ್ಲಿ ಚಲಿಸಲು ಸ್ಟೀರಿಂಗ್ ನಡವಳಿಕೆಗಳನ್ನು ಬಳಸಬಹುದು - ನೋಡ್ 1 ರಿಂದ ನೋಡ್ 2 ವರೆಗೆ, ನಂತರ ನೋಡ್ 2 ರಿಂದ ನೋಡ್ 3 ವರೆಗೆ, ಇತ್ಯಾದಿ. ಸರಳವಾದ ಆಯ್ಕೆಯು ಮುಂದಿನ ಚೌಕದ ಮಧ್ಯಭಾಗದ ಕಡೆಗೆ ಹೋಗುವುದು, ಆದರೆ ಇನ್ನೂ ಉತ್ತಮ ಆಯ್ಕೆಯೆಂದರೆ ಪ್ರಸ್ತುತ ಚೌಕ ಮತ್ತು ಮುಂದಿನದ ನಡುವಿನ ಅಂಚಿನ ಮಧ್ಯದಲ್ಲಿ ನಿಲ್ಲಿಸುವುದು. ಈ ಕಾರಣದಿಂದಾಗಿ, ಏಜೆಂಟ್ ತೀಕ್ಷ್ಣವಾದ ತಿರುವುಗಳಲ್ಲಿ ಮೂಲೆಗಳನ್ನು ಕತ್ತರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

BFS ಅಲ್ಗಾರಿದಮ್ ಸಹ ಅನಾನುಕೂಲಗಳನ್ನು ಹೊಂದಿದೆ - ಇದು "ಸರಿಯಾದ" ದಿಕ್ಕಿನಲ್ಲಿ "ತಪ್ಪು" ದಿಕ್ಕಿನಲ್ಲಿ ಅನೇಕ ಚೌಕಗಳನ್ನು ಪರಿಶೋಧಿಸುತ್ತದೆ. ಇಲ್ಲಿ A* (A star) ಎಂಬ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಅಲ್ಗಾರಿದಮ್ ಕಾರ್ಯರೂಪಕ್ಕೆ ಬರುತ್ತದೆ. ಇದು ಅದೇ ರೀತಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಆದರೆ ಅಕ್ಕಪಕ್ಕದ ಚೌಕಗಳನ್ನು (ನಂತರ ನೆರೆಹೊರೆಯವರ ನೆರೆಹೊರೆಯವರು, ನಂತರ ನೆರೆಹೊರೆಯವರ ನೆರೆಹೊರೆಯವರ ನೆರೆಹೊರೆಯವರು ಮತ್ತು ಹೀಗೆ) ಕುರುಡಾಗಿ ಪರೀಕ್ಷಿಸುವ ಬದಲು, ಇದು ನೋಡ್‌ಗಳನ್ನು ಪಟ್ಟಿಗೆ ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ವಿಂಗಡಿಸುತ್ತದೆ ಆದ್ದರಿಂದ ಪರೀಕ್ಷಿಸಿದ ಮುಂದಿನ ನೋಡ್ ಯಾವಾಗಲೂ ಒಂದು ಚಿಕ್ಕ ಮಾರ್ಗಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ. ನೋಡ್‌ಗಳನ್ನು ಹ್ಯೂರಿಸ್ಟಿಕ್‌ನ ಆಧಾರದ ಮೇಲೆ ವಿಂಗಡಿಸಲಾಗುತ್ತದೆ, ಅದು ಎರಡು ವಿಷಯಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ-ಅಪೇಕ್ಷಿತ ಚೌಕಕ್ಕೆ (ಯಾವುದೇ ಪ್ರಯಾಣದ ವೆಚ್ಚಗಳನ್ನು ಒಳಗೊಂಡಂತೆ) ಒಂದು ಕಾಲ್ಪನಿಕ ಮಾರ್ಗದ “ವೆಚ್ಚ” ಮತ್ತು ಆ ಚೌಕವು ಗಮ್ಯಸ್ಥಾನದಿಂದ ಎಷ್ಟು ದೂರದಲ್ಲಿದೆ (ಹುಡುಕಾಟದಲ್ಲಿ ಪಕ್ಷಪಾತಿ) ಸರಿಯಾದ ದಿಕ್ಕು).

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಏಜೆಂಟ್ ಒಂದು ಸಮಯದಲ್ಲಿ ಒಂದು ಚೌಕವನ್ನು ಅನ್ವೇಷಿಸುತ್ತಾನೆ ಎಂದು ಈ ಉದಾಹರಣೆಯು ತೋರಿಸುತ್ತದೆ, ಪ್ರತಿ ಬಾರಿಯೂ ಹೆಚ್ಚು ಭರವಸೆಯಿರುವ ಪಕ್ಕದ ಒಂದನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತದೆ. ಫಲಿತಾಂಶದ ಮಾರ್ಗವು BFS ನಂತೆಯೇ ಇರುತ್ತದೆ, ಆದರೆ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಕಡಿಮೆ ಚೌಕಗಳನ್ನು ಪರಿಗಣಿಸಲಾಗಿದೆ - ಇದು ಆಟದ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ದೊಡ್ಡ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ.

ಗ್ರಿಡ್ ಇಲ್ಲದೆ ಚಲನೆ

ಆದರೆ ಹೆಚ್ಚಿನ ಆಟಗಳನ್ನು ಗ್ರಿಡ್‌ನಲ್ಲಿ ಇರಿಸಲಾಗಿಲ್ಲ ಮತ್ತು ವಾಸ್ತವಿಕತೆಯನ್ನು ತ್ಯಾಗ ಮಾಡದೆಯೇ ಹಾಗೆ ಮಾಡುವುದು ಅಸಾಧ್ಯ. ಹೊಂದಾಣಿಕೆಗಳು ಬೇಕು. ಚೌಕಗಳು ಯಾವ ಗಾತ್ರದಲ್ಲಿರಬೇಕು? ತುಂಬಾ ದೊಡ್ಡದಾಗಿದೆ ಮತ್ತು ಸಣ್ಣ ಕಾರಿಡಾರ್‌ಗಳು ಅಥವಾ ತಿರುವುಗಳನ್ನು ಸರಿಯಾಗಿ ಪ್ರತಿನಿಧಿಸಲು ಅವರಿಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ, ತುಂಬಾ ಚಿಕ್ಕದಾಗಿದೆ ಮತ್ತು ಹುಡುಕಲು ಹಲವಾರು ಚೌಕಗಳು ಇರುತ್ತವೆ, ಇದು ಅಂತಿಮವಾಗಿ ಸಾಕಷ್ಟು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.

ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕಾದ ಮೊದಲ ವಿಷಯವೆಂದರೆ ಜಾಲರಿಯು ನಮಗೆ ಸಂಪರ್ಕಿತ ನೋಡ್‌ಗಳ ಗ್ರಾಫ್ ಅನ್ನು ನೀಡುತ್ತದೆ. A* ಮತ್ತು BFS ಅಲ್ಗಾರಿದಮ್‌ಗಳು ವಾಸ್ತವವಾಗಿ ಗ್ರಾಫ್‌ಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತವೆ ಮತ್ತು ನಮ್ಮ ಮೆಶ್ ಬಗ್ಗೆ ಕಾಳಜಿ ವಹಿಸುವುದಿಲ್ಲ. ನಾವು ಆಟದ ಜಗತ್ತಿನಲ್ಲಿ ಎಲ್ಲಿಯಾದರೂ ನೋಡ್‌ಗಳನ್ನು ಹಾಕಬಹುದು: ಯಾವುದೇ ಎರಡು ಸಂಪರ್ಕಿತ ನೋಡ್‌ಗಳ ನಡುವೆ, ಹಾಗೆಯೇ ಪ್ರಾರಂಭ ಮತ್ತು ಅಂತಿಮ ಬಿಂದುಗಳ ನಡುವೆ ಮತ್ತು ಕನಿಷ್ಠ ಒಂದು ನೋಡ್‌ಗಳ ನಡುವೆ ಸಂಪರ್ಕವಿರುವವರೆಗೆ, ಅಲ್ಗಾರಿದಮ್ ಮೊದಲಿನಂತೆಯೇ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ವೇಪಾಯಿಂಟ್ ಸಿಸ್ಟಮ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ಪ್ರತಿ ನೋಡ್ ಯಾವುದೇ ಸಂಖ್ಯೆಯ ಕಾಲ್ಪನಿಕ ಮಾರ್ಗಗಳ ಭಾಗವಾಗಿರಬಹುದಾದ ವಿಶ್ವದ ಮಹತ್ವದ ಸ್ಥಾನವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ.

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ
ಉದಾಹರಣೆ 1: ಪ್ರತಿ ಚೌಕದಲ್ಲಿ ಒಂದು ಗಂಟು. ಹುಡುಕಾಟವು ಏಜೆಂಟ್ ಇರುವ ನೋಡ್‌ನಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಬಯಸಿದ ಚೌಕದ ನೋಡ್‌ನಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ.

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ
ಉದಾಹರಣೆ 2: ನೋಡ್‌ಗಳ ಚಿಕ್ಕ ಸೆಟ್ (ವೇ ಪಾಯಿಂಟ್‌ಗಳು). ಹುಡುಕಾಟವು ಏಜೆಂಟ್‌ನ ಚೌಕದಲ್ಲಿ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ, ಅಗತ್ಯವಿರುವ ಸಂಖ್ಯೆಯ ನೋಡ್‌ಗಳ ಮೂಲಕ ಹೋಗುತ್ತದೆ ಮತ್ತು ನಂತರ ಗಮ್ಯಸ್ಥಾನಕ್ಕೆ ಮುಂದುವರಿಯುತ್ತದೆ.

ಇದು ಸಂಪೂರ್ಣವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುವ ಮತ್ತು ಶಕ್ತಿಯುತವಾದ ವ್ಯವಸ್ಥೆಯಾಗಿದೆ. ಆದರೆ ವೇಪಾಯಿಂಟ್ ಅನ್ನು ಎಲ್ಲಿ ಮತ್ತು ಹೇಗೆ ಇರಿಸಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುವಲ್ಲಿ ಸ್ವಲ್ಪ ಕಾಳಜಿಯ ಅಗತ್ಯವಿದೆ, ಇಲ್ಲದಿದ್ದರೆ ಏಜೆಂಟರು ಹತ್ತಿರದ ಬಿಂದುವನ್ನು ನೋಡುವುದಿಲ್ಲ ಮತ್ತು ಮಾರ್ಗವನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಪ್ರಪಂಚದ ರೇಖಾಗಣಿತದ ಆಧಾರದ ಮೇಲೆ ನಾವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ವೇ ಪಾಯಿಂಟ್‌ಗಳನ್ನು ಇರಿಸಬಹುದಾದರೆ ಅದು ಸುಲಭವಾಗುತ್ತದೆ.

ಇಲ್ಲಿ ನ್ಯಾವಿಗೇಷನ್ ಮೆಶ್ ಅಥವಾ ನವಮೆಶ್ (ನ್ಯಾವಿಗೇಷನ್ ಮೆಶ್) ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಇದು ಸಾಮಾನ್ಯವಾಗಿ ತ್ರಿಕೋನಗಳ 2D ಜಾಲರಿಯಾಗಿದ್ದು ಅದು ಪ್ರಪಂಚದ ರೇಖಾಗಣಿತದ ಮೇಲೆ ಆವರಿಸಿರುತ್ತದೆ - ಏಜೆಂಟ್ ನಡೆಯಲು ಅನುಮತಿಸುವಲ್ಲೆಲ್ಲಾ. ಜಾಲರಿಯಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ತ್ರಿಕೋನಗಳು ಗ್ರಾಫ್‌ನಲ್ಲಿ ನೋಡ್ ಆಗುತ್ತದೆ ಮತ್ತು ಗ್ರಾಫ್‌ನಲ್ಲಿ ಪಕ್ಕದ ನೋಡ್‌ಗಳಾಗುವ ಮೂರು ಪಕ್ಕದ ತ್ರಿಕೋನಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ.

ಈ ಚಿತ್ರವು ಯೂನಿಟಿ ಎಂಜಿನ್‌ನಿಂದ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ - ಇದು ಜಗತ್ತಿನಲ್ಲಿ ಜ್ಯಾಮಿತಿಯನ್ನು ವಿಶ್ಲೇಷಿಸಿದೆ ಮತ್ತು ನವಮೆಶ್ ಅನ್ನು ರಚಿಸಿದೆ (ತಿಳಿ ನೀಲಿ ಬಣ್ಣದ ಸ್ಕ್ರೀನ್‌ಶಾಟ್‌ನಲ್ಲಿ). ನವಮೆಶ್‌ನಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಬಹುಭುಜಾಕೃತಿಯು ಏಜೆಂಟ್ ನಿಲ್ಲುವ ಅಥವಾ ಒಂದು ಬಹುಭುಜಾಕೃತಿಯಿಂದ ಮತ್ತೊಂದು ಬಹುಭುಜಾಕೃತಿಗೆ ಚಲಿಸುವ ಪ್ರದೇಶವಾಗಿದೆ. ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, ಬಹುಭುಜಾಕೃತಿಗಳು ಅವು ನೆಲೆಗೊಂಡಿರುವ ಮಹಡಿಗಳಿಗಿಂತ ಚಿಕ್ಕದಾಗಿದೆ - ಏಜೆಂಟ್ನ ಗಾತ್ರವನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವ ಸಲುವಾಗಿ ಇದನ್ನು ಮಾಡಲಾಗುತ್ತದೆ, ಅದು ಅದರ ನಾಮಮಾತ್ರದ ಸ್ಥಾನವನ್ನು ಮೀರಿ ವಿಸ್ತರಿಸುತ್ತದೆ.

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

A* ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನಾವು ಈ ಮೆಶ್ ಮೂಲಕ ಮಾರ್ಗವನ್ನು ಹುಡುಕಬಹುದು. ಇದು ಪ್ರಪಂಚದಲ್ಲಿ ನಮಗೆ ಬಹುತೇಕ ಪರಿಪೂರ್ಣ ಮಾರ್ಗವನ್ನು ನೀಡುತ್ತದೆ, ಇದು ಎಲ್ಲಾ ಜ್ಯಾಮಿತಿಯನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಅನಗತ್ಯ ನೋಡ್‌ಗಳು ಮತ್ತು ವೇ ಪಾಯಿಂಟ್‌ಗಳ ರಚನೆಯ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.

ಮಾರ್ಗಶೋಧನೆಯು ತುಂಬಾ ವಿಶಾಲವಾದ ವಿಷಯವಾಗಿದೆ, ಇದಕ್ಕಾಗಿ ಲೇಖನದ ಒಂದು ವಿಭಾಗವು ಸಾಕಾಗುವುದಿಲ್ಲ. ನೀವು ಅದನ್ನು ಹೆಚ್ಚು ವಿವರವಾಗಿ ಅಧ್ಯಯನ ಮಾಡಲು ಬಯಸಿದರೆ, ಇದು ಸಹಾಯ ಮಾಡುತ್ತದೆ ಅಮಿತ್ ಪಟೇಲ್ ವೆಬ್‌ಸೈಟ್.

ಯೋಜನೆ

ನಾವು ಮಾರ್ಗಶೋಧನೆಯೊಂದಿಗೆ ಕಲಿತಿದ್ದೇವೆ - ಕೆಲವೊಮ್ಮೆ ದಿಕ್ಕನ್ನು ಆರಿಸಿ ಮತ್ತು ಚಲಿಸಲು ಸಾಕಾಗುವುದಿಲ್ಲ - ನಾವು ಬಯಸಿದ ಗಮ್ಯಸ್ಥಾನವನ್ನು ತಲುಪಲು ನಾವು ಮಾರ್ಗವನ್ನು ಆರಿಸಿಕೊಳ್ಳಬೇಕು ಮತ್ತು ಕೆಲವು ತಿರುವುಗಳನ್ನು ಮಾಡಬೇಕು. ನಾವು ಈ ಕಲ್ಪನೆಯನ್ನು ಸಾಮಾನ್ಯೀಕರಿಸಬಹುದು: ಗುರಿಯನ್ನು ಸಾಧಿಸುವುದು ಕೇವಲ ಮುಂದಿನ ಹಂತವಲ್ಲ, ಆದರೆ ಮೊದಲನೆಯದು ಏನಾಗಿರಬೇಕು ಎಂಬುದನ್ನು ಕಂಡುಹಿಡಿಯಲು ನೀವು ಕೆಲವೊಮ್ಮೆ ಹಲವಾರು ಹಂತಗಳನ್ನು ಮುಂದೆ ನೋಡಬೇಕಾದ ಸಂಪೂರ್ಣ ಅನುಕ್ರಮವಾಗಿದೆ. ಇದನ್ನು ಯೋಜನೆ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಮಾರ್ಗಶೋಧನೆಯು ಯೋಜನೆಗೆ ಹಲವಾರು ವಿಸ್ತರಣೆಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ ಎಂದು ಭಾವಿಸಬಹುದು. ನಮ್ಮ ಸೆನ್ಸ್/ಥಿಂಕ್/ಆಕ್ಟ್ ಚಕ್ರದ ಪರಿಭಾಷೆಯಲ್ಲಿ, ಥಿಂಕ್ ಭಾಗವು ಭವಿಷ್ಯಕ್ಕಾಗಿ ಬಹು ಆಕ್ಟ್ ಭಾಗಗಳನ್ನು ಯೋಜಿಸುತ್ತದೆ.

ಬೋರ್ಡ್ ಆಟದ ಮ್ಯಾಜಿಕ್: ದಿ ಗ್ಯಾದರಿಂಗ್‌ನ ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ. ನಮ್ಮ ಕೈಯಲ್ಲಿ ಈ ಕೆಳಗಿನ ಕಾರ್ಡ್‌ಗಳೊಂದಿಗೆ ನಾವು ಮೊದಲು ಹೋಗುತ್ತೇವೆ:

  • ಸ್ವಾಂಪ್ - 1 ಕಪ್ಪು ಮನ (ಲ್ಯಾಂಡ್ ಕಾರ್ಡ್) ನೀಡುತ್ತದೆ.
  • ಅರಣ್ಯ - 1 ಹಸಿರು ಮನ (ಲ್ಯಾಂಡ್ ಕಾರ್ಡ್) ನೀಡುತ್ತದೆ.
  • ಪ್ಯುಗಿಟಿವ್ ವಿಝಾರ್ಡ್ - ಕರೆ ಮಾಡಲು 1 ನೀಲಿ ಮನ ಅಗತ್ಯವಿದೆ.
  • ಎಲ್ವಿಶ್ ಮಿಸ್ಟಿಕ್ - ಕರೆ ಮಾಡಲು 1 ಹಸಿರು ಮನ ಅಗತ್ಯವಿದೆ.

ಅದನ್ನು ಸುಲಭಗೊಳಿಸಲು ನಾವು ಉಳಿದ ಮೂರು ಕಾರ್ಡ್‌ಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತೇವೆ. ನಿಯಮಗಳ ಪ್ರಕಾರ, ಆಟಗಾರನು ಪ್ರತಿ ತಿರುವಿನಲ್ಲಿ 1 ಲ್ಯಾಂಡ್ ಕಾರ್ಡ್ ಅನ್ನು ಆಡಲು ಅನುಮತಿಸಲಾಗಿದೆ, ಅವನು ಈ ಕಾರ್ಡ್‌ನಿಂದ ಮನವನ್ನು ಹೊರತೆಗೆಯಲು "ಟ್ಯಾಪ್" ಮಾಡಬಹುದು ಮತ್ತು ನಂತರ ಮನದ ಪ್ರಮಾಣಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಮಂತ್ರಗಳನ್ನು (ಜೀವಿಯನ್ನು ಕರೆಸುವುದು ಸೇರಿದಂತೆ) ಬಿತ್ತರಿಸಬಹುದು. ಈ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ, ಮಾನವ ಆಟಗಾರನಿಗೆ ಫಾರೆಸ್ಟ್ ಆಡಲು ತಿಳಿದಿದೆ, 1 ಹಸಿರು ಮನವನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ ಮತ್ತು ನಂತರ ಎಲ್ವಿಶ್ ಮಿಸ್ಟಿಕ್ ಅನ್ನು ಕರೆಯುತ್ತಾನೆ. ಆದರೆ ಆಟದ AI ಇದನ್ನು ಹೇಗೆ ಕಂಡುಹಿಡಿಯಬಹುದು?

ಸುಲಭ ಯೋಜನೆ

ಕ್ಷುಲ್ಲಕ ವಿಧಾನವೆಂದರೆ ಯಾವುದೇ ಸೂಕ್ತವಾದವುಗಳು ಉಳಿಯದವರೆಗೆ ಪ್ರತಿ ಕ್ರಿಯೆಯನ್ನು ಪ್ರತಿಯಾಗಿ ಪ್ರಯತ್ನಿಸುವುದು. ಕಾರ್ಡ್‌ಗಳನ್ನು ನೋಡುವ ಮೂಲಕ, ಸ್ವಾಂಪ್ ಏನನ್ನು ಆಡಬಹುದು ಎಂಬುದನ್ನು AI ನೋಡುತ್ತದೆ. ಮತ್ತು ಅವನು ಅದನ್ನು ಆಡುತ್ತಾನೆ. ಈ ಸರದಿಯಲ್ಲಿ ಬೇರೆ ಯಾವುದೇ ಕ್ರಮಗಳು ಉಳಿದಿವೆಯೇ? ಇದು ಎಲ್ವಿಶ್ ಮಿಸ್ಟಿಕ್ ಅಥವಾ ಫ್ಯುಗಿಟಿವ್ ಮಾಂತ್ರಿಕರನ್ನು ಕರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ, ಏಕೆಂದರೆ ಅವರನ್ನು ಕರೆಸಲು ಕ್ರಮವಾಗಿ ಹಸಿರು ಮತ್ತು ನೀಲಿ ಮನದ ಅಗತ್ಯವಿರುತ್ತದೆ, ಆದರೆ ಸ್ವಾಂಪ್ ಕಪ್ಪು ಮನವನ್ನು ಮಾತ್ರ ನೀಡುತ್ತದೆ. ಮತ್ತು ಅವರು ಇನ್ನು ಮುಂದೆ ಅರಣ್ಯವನ್ನು ಆಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಅವರು ಈಗಾಗಲೇ ಸ್ವಾಂಪ್ ಅನ್ನು ಆಡಿದ್ದಾರೆ. ಹೀಗಾಗಿ, ಆಟದ AI ನಿಯಮಗಳನ್ನು ಅನುಸರಿಸಿತು, ಆದರೆ ಅದನ್ನು ಕಳಪೆಯಾಗಿ ಮಾಡಿತು. ಸುಧಾರಿಸಬಹುದು.

ಯೋಜನೆಯು ಆಟವನ್ನು ಬಯಸಿದ ಸ್ಥಿತಿಗೆ ತರುವ ಕ್ರಿಯೆಗಳ ಪಟ್ಟಿಯನ್ನು ಕಾಣಬಹುದು. ಹಾದಿಯಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಚೌಕವು ನೆರೆಹೊರೆಯವರಿದ್ದಂತೆ (ಮಾರ್ಗಶೋಧನೆಯಲ್ಲಿ), ಯೋಜನೆಯಲ್ಲಿನ ಪ್ರತಿಯೊಂದು ಕ್ರಿಯೆಯು ಸಹ ನೆರೆಯವರು ಅಥವಾ ಉತ್ತರಾಧಿಕಾರಿಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ. ನಾವು ಬಯಸಿದ ಸ್ಥಿತಿಯನ್ನು ತಲುಪುವವರೆಗೆ ನಾವು ಈ ಕ್ರಿಯೆಗಳು ಮತ್ತು ನಂತರದ ಕ್ರಿಯೆಗಳನ್ನು ಹುಡುಕಬಹುದು.

ನಮ್ಮ ಉದಾಹರಣೆಯಲ್ಲಿ, ಅಪೇಕ್ಷಿತ ಫಲಿತಾಂಶವೆಂದರೆ "ಸಾಧ್ಯವಾದರೆ ಜೀವಿಯನ್ನು ಕರೆಸಿ." ತಿರುವಿನ ಆರಂಭದಲ್ಲಿ, ಆಟದ ನಿಯಮಗಳಿಂದ ಅನುಮತಿಸಲಾದ ಎರಡು ಸಂಭವನೀಯ ಕ್ರಿಯೆಗಳನ್ನು ಮಾತ್ರ ನಾವು ನೋಡುತ್ತೇವೆ:

1. ಸ್ವಾಂಪ್ ಪ್ಲೇ ಮಾಡಿ (ಫಲಿತಾಂಶ: ಆಟದಲ್ಲಿ ಸ್ವಾಂಪ್)
2. ಪ್ಲೇ ಫಾರೆಸ್ಟ್ (ಫಲಿತಾಂಶ: ಆಟದಲ್ಲಿ ಅರಣ್ಯ)

ತೆಗೆದುಕೊಂಡ ಪ್ರತಿಯೊಂದು ಕ್ರಿಯೆಯು ಮುಂದಿನ ಕ್ರಮಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು ಮತ್ತು ಇತರರನ್ನು ಮುಚ್ಚಬಹುದು, ಮತ್ತೆ ಆಟದ ನಿಯಮಗಳನ್ನು ಅವಲಂಬಿಸಿ. ನಾವು ಸ್ವಾಂಪ್ ಆಡಿದ್ದೇವೆ ಎಂದು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ - ಇದು ಮುಂದಿನ ಹಂತವಾಗಿ ಸ್ವಾಂಪ್ ಅನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ (ನಾವು ಈಗಾಗಲೇ ಅದನ್ನು ಆಡಿದ್ದೇವೆ), ಮತ್ತು ಇದು ಅರಣ್ಯವನ್ನು ಸಹ ತೆಗೆದುಹಾಕುತ್ತದೆ (ಏಕೆಂದರೆ ನಿಯಮಗಳ ಪ್ರಕಾರ ನೀವು ಪ್ರತಿ ತಿರುವಿನಲ್ಲಿ ಒಂದು ಲ್ಯಾಂಡ್ ಕಾರ್ಡ್ ಅನ್ನು ಪ್ಲೇ ಮಾಡಬಹುದು). ಇದರ ನಂತರ, AI ಮುಂದಿನ ಹಂತವಾಗಿ 1 ಕಪ್ಪು ಮನವನ್ನು ಪಡೆಯುವುದನ್ನು ಸೇರಿಸುತ್ತದೆ ಏಕೆಂದರೆ ಬೇರೆ ಆಯ್ಕೆಗಳಿಲ್ಲ. ಅವನು ಮುಂದೆ ಹೋಗಿ ಸ್ವಾಂಪ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿದರೆ, ಅವನು 1 ಯುನಿಟ್ ಕಪ್ಪು ಮನವನ್ನು ಸ್ವೀಕರಿಸುತ್ತಾನೆ ಮತ್ತು ಅದರಿಂದ ಏನನ್ನೂ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.

1. ಸ್ವಾಂಪ್ ಪ್ಲೇ ಮಾಡಿ (ಫಲಿತಾಂಶ: ಆಟದಲ್ಲಿ ಸ್ವಾಂಪ್)
1.1 "ಟ್ಯಾಪ್" ಸ್ವಾಂಪ್ (ಫಲಿತಾಂಶ: ಸ್ವಾಂಪ್ "ಟ್ಯಾಪ್ಡ್", ಕಪ್ಪು ಮನದ +1 ಘಟಕ)
ಯಾವುದೇ ಕ್ರಿಯೆಗಳು ಲಭ್ಯವಿಲ್ಲ - END
2. ಪ್ಲೇ ಫಾರೆಸ್ಟ್ (ಫಲಿತಾಂಶ: ಆಟದಲ್ಲಿ ಅರಣ್ಯ)

ಕ್ರಿಯೆಗಳ ಪಟ್ಟಿ ಚಿಕ್ಕದಾಗಿದೆ, ನಾವು ಅಂತ್ಯವನ್ನು ತಲುಪಿದ್ದೇವೆ. ಮುಂದಿನ ಹಂತಕ್ಕಾಗಿ ನಾವು ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪುನರಾವರ್ತಿಸುತ್ತೇವೆ. ನಾವು ಫಾರೆಸ್ಟ್ ಅನ್ನು ಆಡುತ್ತೇವೆ, "1 ಗ್ರೀನ್ ಮನವನ್ನು ಪಡೆಯಿರಿ" ಎಂಬ ಕ್ರಿಯೆಯನ್ನು ತೆರೆಯಿರಿ, ಅದು ಮೂರನೇ ಕ್ರಿಯೆಯನ್ನು ತೆರೆಯುತ್ತದೆ - ಎಲ್ವಿಶ್ ಮಿಸ್ಟಿಕ್ ಅನ್ನು ಕರೆಸಿ.

1. ಸ್ವಾಂಪ್ ಪ್ಲೇ ಮಾಡಿ (ಫಲಿತಾಂಶ: ಆಟದಲ್ಲಿ ಸ್ವಾಂಪ್)
1.1 "ಟ್ಯಾಪ್" ಸ್ವಾಂಪ್ (ಫಲಿತಾಂಶ: ಸ್ವಾಂಪ್ "ಟ್ಯಾಪ್ಡ್", ಕಪ್ಪು ಮನದ +1 ಘಟಕ)
ಯಾವುದೇ ಕ್ರಿಯೆಗಳು ಲಭ್ಯವಿಲ್ಲ - END
2. ಪ್ಲೇ ಫಾರೆಸ್ಟ್ (ಫಲಿತಾಂಶ: ಆಟದಲ್ಲಿ ಅರಣ್ಯ)
2.1 “ಟ್ಯಾಪ್” ಫಾರೆಸ್ಟ್ (ಫಲಿತಾಂಶ: ಅರಣ್ಯವನ್ನು “ಟ್ಯಾಪ್ ಮಾಡಲಾಗಿದೆ”, ಹಸಿರು ಮನದ +1 ಘಟಕ)
2.1.1 ಎಲ್ವಿಶ್ ಮಿಸ್ಟಿಕ್ ಅನ್ನು ಕರೆಸಿ (ಫಲಿತಾಂಶ: ಆಟದಲ್ಲಿ ಎಲ್ವಿಶ್ ಮಿಸ್ಟಿಕ್, -1 ಹಸಿರು ಮನ)
ಯಾವುದೇ ಕ್ರಿಯೆಗಳು ಲಭ್ಯವಿಲ್ಲ - END

ಅಂತಿಮವಾಗಿ, ನಾವು ಎಲ್ಲಾ ಸಂಭಾವ್ಯ ಕ್ರಿಯೆಗಳನ್ನು ಅನ್ವೇಷಿಸಿದ್ದೇವೆ ಮತ್ತು ಜೀವಿಯೊಂದನ್ನು ಕರೆಸಿಕೊಳ್ಳುವ ಯೋಜನೆಯನ್ನು ಕಂಡುಕೊಂಡಿದ್ದೇವೆ.

ಇದು ತುಂಬಾ ಸರಳೀಕೃತ ಉದಾಹರಣೆಯಾಗಿದೆ. ಕೆಲವು ಮಾನದಂಡಗಳನ್ನು ಪೂರೈಸುವ ಯಾವುದೇ ಯೋಜನೆಯನ್ನು ಹೊರತುಪಡಿಸಿ, ಸಾಧ್ಯವಾದಷ್ಟು ಉತ್ತಮವಾದ ಯೋಜನೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಸಲಹೆ ನೀಡಲಾಗುತ್ತದೆ. ಅವುಗಳ ಅನುಷ್ಠಾನದ ಫಲಿತಾಂಶ ಅಥವಾ ಒಟ್ಟಾರೆ ಲಾಭದ ಆಧಾರದ ಮೇಲೆ ಸಂಭಾವ್ಯ ಯೋಜನೆಗಳನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ಸಾಮಾನ್ಯವಾಗಿ ಸಾಧ್ಯವಿದೆ. ಲ್ಯಾಂಡ್ ಕಾರ್ಡ್ ಆಡಲು 1 ಪಾಯಿಂಟ್ ಮತ್ತು ಜೀವಿಯನ್ನು ಕರೆಸಲು 3 ಅಂಕಗಳನ್ನು ನೀವೇ ಸ್ಕೋರ್ ಮಾಡಬಹುದು. ಸ್ವಾಂಪ್ ಅನ್ನು ಆಡುವುದು 1 ಪಾಯಿಂಟ್ ಯೋಜನೆಯಾಗಿದೆ. ಮತ್ತು ಫಾರೆಸ್ಟ್ → ಟ್ಯಾಪ್ ದಿ ಫಾರೆಸ್ಟ್ → ಸಮ್ಮನ್ ಎಲ್ವಿಶ್ ಮಿಸ್ಟಿಕ್ ಅನ್ನು ಆಡುವುದರಿಂದ ತಕ್ಷಣವೇ 4 ಅಂಕಗಳನ್ನು ನೀಡುತ್ತದೆ.

ಮ್ಯಾಜಿಕ್: ದಿ ಗ್ಯಾದರಿಂಗ್‌ನಲ್ಲಿ ಯೋಜನೆಯು ಈ ರೀತಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಆದರೆ ಅದೇ ತರ್ಕವು ಇತರ ಸಂದರ್ಭಗಳಲ್ಲಿ ಅನ್ವಯಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಬಿಷಪ್‌ಗೆ ಚದುರಂಗದಲ್ಲಿ ಚಲಿಸಲು ಸ್ಥಳಾವಕಾಶ ಕಲ್ಪಿಸಲು ಪ್ಯಾದೆಯನ್ನು ಚಲಿಸುವುದು. ಅಥವಾ ಈ ರೀತಿಯ 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 ಗಳಾಗಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. ಹಿಂದೆ, ಏಜೆಂಟ್ ಇದ್ದ ವರ್ತನೆಯ ಸ್ಥಿತಿಯನ್ನು ಪ್ರತಿನಿಧಿಸಲು ನಾವು FSM ಅನ್ನು ಬಳಸಿದ್ದೇವೆ, ಆದರೆ ಈ ಪರಿಕಲ್ಪನೆಯು ಏಜೆಂಟ್‌ನೊಂದಿಗೆ ಸಂಬಂಧ ಹೊಂದಿರಲಿ ಅಥವಾ ಇಲ್ಲದಿರಲಿ ಯಾವುದೇ ಸ್ಥಿತಿಗೆ ವಿಸ್ತರಿಸುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಏಜೆಂಟ್ ಆಕ್ರಮಿಸಿಕೊಂಡಿರುವ ಕೋಣೆಯನ್ನು ರಾಜ್ಯಗಳು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ:

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಇದು ರಾಜ್ಯದ ಬದಲಾವಣೆಗಳ ಸಾಪೇಕ್ಷ ಸಾಧ್ಯತೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಸರಳ ಮಾರ್ಗವಾಗಿದೆ, ಮುಂದಿನ ಸ್ಥಿತಿಯನ್ನು ಊಹಿಸಲು AI ಗೆ ಕೆಲವು ಸಾಮರ್ಥ್ಯವನ್ನು ನೀಡುತ್ತದೆ. ನೀವು ಮುಂದೆ ಹಲವಾರು ಹಂತಗಳನ್ನು ನಿರೀಕ್ಷಿಸಬಹುದು.

ಆಟಗಾರನು ಹಸಿರು ಕೋಣೆಯಲ್ಲಿದ್ದರೆ, ಮುಂದಿನ ಬಾರಿ ಗಮನಿಸಿದಾಗ ಅವನು ಅಲ್ಲಿಯೇ ಉಳಿಯುವ ಸಾಧ್ಯತೆ 50% ಇರುತ್ತದೆ. ಆದರೆ ನಂತರವೂ ಅವನು ಇರುವ ಸಾಧ್ಯತೆಗಳು ಯಾವುವು? ಎರಡು ಅವಲೋಕನಗಳ ನಂತರ ಆಟಗಾರನು ಗ್ರೀನ್ ರೂಂನಲ್ಲಿ ಉಳಿಯುವ ಅವಕಾಶವಿದೆ, ಆದರೆ ಅವನು ಬಿಟ್ಟು ಹಿಂದಿರುಗುವ ಅವಕಾಶವೂ ಇದೆ. ಹೊಸ ಡೇಟಾವನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವ ಹೊಸ ಟೇಬಲ್ ಇಲ್ಲಿದೆ:

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ

ಎರಡು ಅವಲೋಕನಗಳ ನಂತರ ಹಸಿರು ಕೋಣೆಯಲ್ಲಿ ಆಟಗಾರನನ್ನು ನೋಡುವ ಅವಕಾಶವು 51% - 21% ಕ್ಕೆ ಸಮನಾಗಿರುತ್ತದೆ ಎಂದು ತೋರಿಸುತ್ತದೆ - 5% ಅವರು ಕೆಂಪು ಕೋಣೆಯಿಂದ ಬಂದವರು, 25% ಆಟಗಾರರು ತಮ್ಮ ನಡುವಿನ ನೀಲಿ ಕೋಣೆಗೆ ಭೇಟಿ ನೀಡುತ್ತಾರೆ ಮತ್ತು XNUMX% ಆಟಗಾರನು ಹಸಿರು ಕೋಣೆಯನ್ನು ಬಿಡುವುದಿಲ್ಲ.

ಟೇಬಲ್ ಸರಳವಾಗಿ ಒಂದು ದೃಶ್ಯ ಸಾಧನವಾಗಿದೆ - ಕಾರ್ಯವಿಧಾನವು ಪ್ರತಿ ಹಂತದಲ್ಲೂ ಸಂಭವನೀಯತೆಯನ್ನು ಗುಣಿಸುವ ಅಗತ್ಯವಿದೆ. ಇದರರ್ಥ ನೀವು ಒಂದು ಎಚ್ಚರಿಕೆಯೊಂದಿಗೆ ಭವಿಷ್ಯವನ್ನು ನೋಡಬಹುದು: ಕೋಣೆಗೆ ಪ್ರವೇಶಿಸುವ ಅವಕಾಶವು ಪ್ರಸ್ತುತ ಕೋಣೆಯ ಮೇಲೆ ಸಂಪೂರ್ಣವಾಗಿ ಅವಲಂಬಿತವಾಗಿದೆ ಎಂದು ನಾವು ಭಾವಿಸುತ್ತೇವೆ. ಇದನ್ನು ಮಾರ್ಕೊವ್ ಆಸ್ತಿ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ - ಭವಿಷ್ಯದ ಸ್ಥಿತಿಯು ಪ್ರಸ್ತುತವನ್ನು ಮಾತ್ರ ಅವಲಂಬಿಸಿರುತ್ತದೆ. ಆದರೆ ಇದು ನೂರಕ್ಕೆ ನೂರು ನಿಖರವಾಗಿಲ್ಲ. ಆಟಗಾರರು ಇತರ ಅಂಶಗಳನ್ನು ಅವಲಂಬಿಸಿ ನಿರ್ಧಾರಗಳನ್ನು ಬದಲಾಯಿಸಬಹುದು: ಆರೋಗ್ಯ ಮಟ್ಟ ಅಥವಾ ಮದ್ದುಗುಂಡುಗಳ ಪ್ರಮಾಣ. ನಾವು ಈ ಮೌಲ್ಯಗಳನ್ನು ದಾಖಲಿಸದ ಕಾರಣ, ನಮ್ಮ ಮುನ್ಸೂಚನೆಗಳು ಕಡಿಮೆ ನಿಖರವಾಗಿರುತ್ತವೆ.

ಎನ್-ಗ್ರಾಂಗಳು

ಹೋರಾಟದ ಆಟದ ಉದಾಹರಣೆಯ ಬಗ್ಗೆ ಮತ್ತು ಆಟಗಾರನ ಕಾಂಬೊ ಚಲನೆಗಳನ್ನು ಊಹಿಸುವ ಬಗ್ಗೆ ಏನು? ಅದೇ! ಆದರೆ ಒಂದು ರಾಜ್ಯ ಅಥವಾ ಈವೆಂಟ್‌ಗೆ ಬದಲಾಗಿ, ಕಾಂಬೊ ಸ್ಟ್ರೈಕ್ ಅನ್ನು ರೂಪಿಸುವ ಸಂಪೂರ್ಣ ಅನುಕ್ರಮಗಳನ್ನು ನಾವು ಪರಿಶೀಲಿಸುತ್ತೇವೆ.

ಇದನ್ನು ಮಾಡಲು ಒಂದು ಮಾರ್ಗವೆಂದರೆ ಪ್ರತಿ ಇನ್‌ಪುಟ್ ಅನ್ನು (ಕಿಕ್, ಪಂಚ್ ಅಥವಾ ಬ್ಲಾಕ್‌ನಂತಹ) ಬಫರ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸುವುದು ಮತ್ತು ಸಂಪೂರ್ಣ ಬಫರ್ ಅನ್ನು ಈವೆಂಟ್‌ನಂತೆ ಬರೆಯುವುದು. ಆದ್ದರಿಂದ ಆಟಗಾರನು ಸೂಪರ್‌ಡೆತ್‌ಫಿಸ್ಟ್ ದಾಳಿಯನ್ನು ಬಳಸಲು ಕಿಕ್, ಕಿಕ್, ಪಂಚ್ ಅನ್ನು ಪದೇ ಪದೇ ಒತ್ತುತ್ತಾನೆ, AI ಸಿಸ್ಟಮ್ ಎಲ್ಲಾ ಇನ್‌ಪುಟ್‌ಗಳನ್ನು ಬಫರ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಹಂತದಲ್ಲಿ ಬಳಸಿದ ಕೊನೆಯ ಮೂರನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳುತ್ತದೆ.

ಗೇಮಿಂಗ್ AI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು: ಆರಂಭಿಕರಿಗಾಗಿ ಮಾರ್ಗದರ್ಶಿ
(ಆಟಗಾರನು SuperDeathFist ದಾಳಿಯನ್ನು ಪ್ರಾರಂಭಿಸಿದಾಗ ದಪ್ಪವಾಗಿರುವ ಸಾಲುಗಳು.)

ಆಟಗಾರನು ಕಿಕ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದಾಗ AI ಎಲ್ಲಾ ಆಯ್ಕೆಗಳನ್ನು ನೋಡುತ್ತದೆ, ನಂತರ ಮತ್ತೊಂದು ಕಿಕ್ ಅನ್ನು ಅನುಸರಿಸುತ್ತದೆ ಮತ್ತು ನಂತರ ಮುಂದಿನ ಇನ್‌ಪುಟ್ ಯಾವಾಗಲೂ ಪಂಚ್ ಆಗಿರುವುದನ್ನು ಗಮನಿಸಿ. ಇದು ಏಜೆಂಟ್‌ಗೆ SuperDeathFist ನ ಕಾಂಬೊ ಚಲನೆಯನ್ನು ಊಹಿಸಲು ಮತ್ತು ಸಾಧ್ಯವಾದರೆ ಅದನ್ನು ನಿರ್ಬಂಧಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.

ಘಟನೆಗಳ ಈ ಅನುಕ್ರಮಗಳನ್ನು N-ಗ್ರಾಂಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಇಲ್ಲಿ N ಸಂಗ್ರಹವಾಗಿರುವ ಅಂಶಗಳ ಸಂಖ್ಯೆ. ಹಿಂದಿನ ಉದಾಹರಣೆಯಲ್ಲಿ ಇದು 3-ಗ್ರಾಂ (ಟ್ರಿಗ್ರಾಮ್), ಅಂದರೆ: ಮೊದಲ ಎರಡು ನಮೂದುಗಳನ್ನು ಮೂರನೆಯದನ್ನು ಊಹಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಅಂತೆಯೇ, 5-ಗ್ರಾಂನಲ್ಲಿ, ಮೊದಲ ನಾಲ್ಕು ನಮೂದುಗಳು ಐದನೇ ಮತ್ತು ಮುಂತಾದವುಗಳನ್ನು ಊಹಿಸುತ್ತವೆ.

ವಿನ್ಯಾಸಕಾರನು ಎನ್-ಗ್ರಾಂಗಳ ಗಾತ್ರವನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಆರಿಸಬೇಕಾಗುತ್ತದೆ. ಚಿಕ್ಕದಾದ N ಗೆ ಕಡಿಮೆ ಮೆಮೊರಿ ಅಗತ್ಯವಿರುತ್ತದೆ ಆದರೆ ಕಡಿಮೆ ಇತಿಹಾಸವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, 2-ಗ್ರಾಂ (ಬಿಗ್ರಾಮ್) ಕಿಕ್, ಕಿಕ್ ಅಥವಾ ಕಿಕ್, ಪಂಚ್ ಅನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡುತ್ತದೆ, ಆದರೆ ಕಿಕ್, ಕಿಕ್, ಪಂಚ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ AI ಸೂಪರ್‌ಡೆತ್‌ಫಿಸ್ಟ್ ಕಾಂಬೊಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುವುದಿಲ್ಲ.

ಮತ್ತೊಂದೆಡೆ, ದೊಡ್ಡ ಸಂಖ್ಯೆಗಳಿಗೆ ಹೆಚ್ಚಿನ ಮೆಮೊರಿ ಅಗತ್ಯವಿರುತ್ತದೆ ಮತ್ತು AI ಗೆ ತರಬೇತಿ ನೀಡಲು ಹೆಚ್ಚು ಕಷ್ಟಕರವಾಗಿರುತ್ತದೆ ಏಕೆಂದರೆ ಇನ್ನೂ ಹಲವು ಸಂಭವನೀಯ ಆಯ್ಕೆಗಳಿವೆ. ನೀವು ಕಿಕ್, ಪಂಚ್ ಅಥವಾ ಬ್ಲಾಕ್‌ನ ಮೂರು ಸಂಭವನೀಯ ಇನ್‌ಪುಟ್‌ಗಳನ್ನು ಹೊಂದಿದ್ದರೆ ಮತ್ತು ನಾವು 10-ಗ್ರಾಂ ಅನ್ನು ಬಳಸಿದರೆ, ಅದು ಸುಮಾರು 60 ಸಾವಿರ ವಿಭಿನ್ನ ಆಯ್ಕೆಗಳಾಗಿರುತ್ತದೆ.

ಬಿಗ್ರಾಮ್ ಮಾದರಿಯು ಸರಳವಾದ ಮಾರ್ಕೊವ್ ಸರಪಳಿಯಾಗಿದೆ - ಪ್ರತಿ ಹಿಂದಿನ ಸ್ಥಿತಿ/ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯ ಜೋಡಿಯು ಬಿಗ್ರಾಮ್ ಆಗಿದೆ, ಮತ್ತು ನೀವು ಮೊದಲನೆಯದನ್ನು ಆಧರಿಸಿ ಎರಡನೇ ಸ್ಥಿತಿಯನ್ನು ಊಹಿಸಬಹುದು. 3-ಗ್ರಾಂ ಮತ್ತು ದೊಡ್ಡದಾದ ಎನ್-ಗ್ರಾಂಗಳನ್ನು ಮಾರ್ಕೊವ್ ಸರಪಳಿಗಳೆಂದು ಪರಿಗಣಿಸಬಹುದು, ಅಲ್ಲಿ ಎಲ್ಲಾ ಅಂಶಗಳು (ಎನ್-ಗ್ರಾಮ್‌ನಲ್ಲಿ ಕೊನೆಯದನ್ನು ಹೊರತುಪಡಿಸಿ) ಒಟ್ಟಾಗಿ ಮೊದಲ ಸ್ಥಿತಿಯನ್ನು ಮತ್ತು ಕೊನೆಯ ಅಂಶವು ಎರಡನೆಯದನ್ನು ರೂಪಿಸುತ್ತವೆ. ಹೋರಾಟದ ಆಟದ ಉದಾಹರಣೆಯು ಕಿಕ್ ಮತ್ತು ಕಿಕ್ ಸ್ಥಿತಿಯಿಂದ ಕಿಕ್ ಮತ್ತು ಪಂಚ್ ಸ್ಥಿತಿಗೆ ಪರಿವರ್ತನೆಯ ಅವಕಾಶವನ್ನು ತೋರಿಸುತ್ತದೆ. ಬಹು ಇನ್‌ಪುಟ್ ಇತಿಹಾಸ ನಮೂದುಗಳನ್ನು ಒಂದೇ ಘಟಕವಾಗಿ ಪರಿಗಣಿಸುವ ಮೂಲಕ, ನಾವು ಮೂಲಭೂತವಾಗಿ ಇನ್‌ಪುಟ್ ಅನುಕ್ರಮವನ್ನು ಇಡೀ ರಾಜ್ಯದ ಭಾಗವಾಗಿ ಪರಿವರ್ತಿಸುತ್ತಿದ್ದೇವೆ. ಇದು ನಮಗೆ ಮಾರ್ಕೊವ್ ಆಸ್ತಿಯನ್ನು ನೀಡುತ್ತದೆ, ಇದು ಮುಂದಿನ ಇನ್‌ಪುಟ್ ಅನ್ನು ಊಹಿಸಲು ಮಾರ್ಕೊವ್ ಸರಪಳಿಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು ಮುಂದೆ ಏನಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಊಹಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.

ತೀರ್ಮಾನಕ್ಕೆ

ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ನಾವು ಸಾಮಾನ್ಯ ಸಾಧನಗಳು ಮತ್ತು ವಿಧಾನಗಳ ಬಗ್ಗೆ ಮಾತನಾಡಿದ್ದೇವೆ. ಅವುಗಳನ್ನು ಯಾವ ಸಂದರ್ಭಗಳಲ್ಲಿ ಬಳಸಬೇಕು ಮತ್ತು ಅವು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿವೆ ಎಂಬುದನ್ನು ನಾವು ನೋಡಿದ್ದೇವೆ.

ಆಟದ AI ನ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಇದು ಸಾಕಷ್ಟು ಇರಬೇಕು. ಆದರೆ, ಸಹಜವಾಗಿ, ಇವುಗಳು ಎಲ್ಲಾ ವಿಧಾನಗಳಲ್ಲ. ಕಡಿಮೆ ಜನಪ್ರಿಯ, ಆದರೆ ಕಡಿಮೆ ಪರಿಣಾಮಕಾರಿಯಲ್ಲ:

  • ಹಿಲ್ ಕ್ಲೈಂಬಿಂಗ್, ಗ್ರೇಡಿಯಂಟ್ ಡಿಸೆಂಟ್ ಮತ್ತು ಜೆನೆಟಿಕ್ ಅಲ್ಗಾರಿದಮ್‌ಗಳು ಸೇರಿದಂತೆ ಆಪ್ಟಿಮೈಸೇಶನ್ ಅಲ್ಗಾರಿದಮ್‌ಗಳು
  • ವಿರೋಧಿ ಹುಡುಕಾಟ/ಶೆಡ್ಯೂಲಿಂಗ್ ಅಲ್ಗಾರಿದಮ್‌ಗಳು (ಮಿನಿಮ್ಯಾಕ್ಸ್ ಮತ್ತು ಆಲ್ಫಾ-ಬೀಟಾ ಸಮರುವಿಕೆ)
  • ವರ್ಗೀಕರಣ ವಿಧಾನಗಳು (ಪರ್ಸೆಪ್ಟ್ರಾನ್ಗಳು, ನರ ಜಾಲಗಳು ಮತ್ತು ಬೆಂಬಲ ವೆಕ್ಟರ್ ಯಂತ್ರಗಳು)
  • ಸಂಸ್ಕರಣಾ ಏಜೆಂಟ್‌ಗಳ ಗ್ರಹಿಕೆ ಮತ್ತು ಸ್ಮರಣೆಗಾಗಿ ವ್ಯವಸ್ಥೆಗಳು
  • AI ಗೆ ವಾಸ್ತುಶಿಲ್ಪದ ವಿಧಾನಗಳು (ಹೈಬ್ರಿಡ್ ಸಿಸ್ಟಮ್‌ಗಳು, ಉಪವಿಭಾಗದ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳು ಮತ್ತು AI ಸಿಸ್ಟಮ್‌ಗಳನ್ನು ಅತಿಕ್ರಮಿಸುವ ಇತರ ವಿಧಾನಗಳು)
  • ಅನಿಮೇಷನ್ ಉಪಕರಣಗಳು (ಯೋಜನೆ ಮತ್ತು ಚಲನೆಯ ಸಮನ್ವಯ)
  • ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಂಶಗಳು (ವಿವರಗಳ ಮಟ್ಟ, ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಮತ್ತು ಟೈಮ್‌ಲೈಸಿಂಗ್ ಅಲ್ಗಾರಿದಮ್‌ಗಳು)

ವಿಷಯದ ಕುರಿತು ಆನ್‌ಲೈನ್ ಸಂಪನ್ಮೂಲಗಳು:

1. GameDev.net ಹೊಂದಿದೆ AI ಕುರಿತು ಲೇಖನಗಳು ಮತ್ತು ಟ್ಯುಟೋರಿಯಲ್‌ಗಳೊಂದಿಗೆ ವಿಭಾಗಮತ್ತು ವೇದಿಕೆ.
2. AiGameDev.com ಆಟದ AI ಅಭಿವೃದ್ಧಿಗೆ ಸಂಬಂಧಿಸಿದ ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ವಿಷಯಗಳ ಕುರಿತು ಅನೇಕ ಪ್ರಸ್ತುತಿಗಳು ಮತ್ತು ಲೇಖನಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
3. GDC ವಾಲ್ಟ್ GDC AI ಶೃಂಗಸಭೆಯ ವಿಷಯಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಅವುಗಳಲ್ಲಿ ಹಲವು ಉಚಿತವಾಗಿ ಲಭ್ಯವಿದೆ.
4. ವೆಬ್‌ಸೈಟ್‌ನಲ್ಲಿ ಉಪಯುಕ್ತ ವಸ್ತುಗಳನ್ನು ಸಹ ಕಾಣಬಹುದು AI ಗೇಮ್ ಪ್ರೋಗ್ರಾಮರ್ಸ್ ಗಿಲ್ಡ್.
5. ಟಾಮಿ ಥಾಂಪ್ಸನ್, AI ಸಂಶೋಧಕ ಮತ್ತು ಗೇಮ್ ಡೆವಲಪರ್, YouTube ನಲ್ಲಿ ವೀಡಿಯೊಗಳನ್ನು ಮಾಡುತ್ತಾರೆ AI ಮತ್ತು ಆಟಗಳು ವಾಣಿಜ್ಯ ಆಟಗಳಲ್ಲಿ AI ಯ ವಿವರಣೆ ಮತ್ತು ಅಧ್ಯಯನದೊಂದಿಗೆ.

ವಿಷಯದ ಕುರಿತು ಪುಸ್ತಕಗಳು:

1. ಗೇಮ್ AI ಪ್ರೊ ಸರಣಿಯ ಪುಸ್ತಕಗಳು ನಿರ್ದಿಷ್ಟ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಅಥವಾ ನಿರ್ದಿಷ್ಟ ಸಮಸ್ಯೆಗಳನ್ನು ಹೇಗೆ ಪರಿಹರಿಸುವುದು ಎಂಬುದನ್ನು ವಿವರಿಸುವ ಸಣ್ಣ ಲೇಖನಗಳ ಸಂಗ್ರಹಗಳಾಗಿವೆ.

ಗೇಮ್ ಎಐ ಪ್ರೊ: ಕಲೆಕ್ಟೆಡ್ ವಿಸ್ಡಮ್ ಆಫ್ ಗೇಮ್ ಎಐ ಪ್ರೊಫೆಷನಲ್ಸ್
ಗೇಮ್ ಎಐ ಪ್ರೊ 2: ಕಲೆಕ್ಟೆಡ್ ವಿಸ್ಡಮ್ ಆಫ್ ಗೇಮ್ ಎಐ ಪ್ರೊಫೆಷನಲ್ಸ್
ಗೇಮ್ ಎಐ ಪ್ರೊ 3: ಕಲೆಕ್ಟೆಡ್ ವಿಸ್ಡಮ್ ಆಫ್ ಗೇಮ್ ಎಐ ಪ್ರೊಫೆಷನಲ್ಸ್

2. AI ಗೇಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ವಿಸ್ಡಮ್ ಸರಣಿಯು ಗೇಮ್ AI ಪ್ರೊ ಸರಣಿಯ ಪೂರ್ವವರ್ತಿಯಾಗಿದೆ. ಇದು ಹಳೆಯ ವಿಧಾನಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಆದರೆ ಬಹುತೇಕ ಎಲ್ಲಾ ಇಂದಿಗೂ ಪ್ರಸ್ತುತವಾಗಿದೆ.

AI ಗೇಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ವಿಸ್ಡಮ್ 1
AI ಗೇಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ವಿಸ್ಡಮ್ 2
AI ಗೇಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ವಿಸ್ಡಮ್ 3
AI ಗೇಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ವಿಸ್ಡಮ್ 4

3. ಆರ್ಟಿಫಿಶಿಯಲ್ ಇಂಟೆಲಿಜೆನ್ಸ್: ಎ ಮಾಡರ್ನ್ ಅಪ್ರೋಚ್ ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯ ಸಾಮಾನ್ಯ ಕ್ಷೇತ್ರವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಬಯಸುವ ಪ್ರತಿಯೊಬ್ಬರಿಗೂ ಮೂಲಭೂತ ಪಠ್ಯಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಇದು ಆಟದ ಅಭಿವೃದ್ಧಿಯ ಕುರಿತಾದ ಪುಸ್ತಕವಲ್ಲ - ಇದು AI ಯ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಕಲಿಸುತ್ತದೆ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ