एक बहुत ही सरल शूट-इम-अप की कल्पना करें, जो हम सभी जानते हैं:
आप खिलाड़ी (हरे) हैं। आपका आंदोलन X
अक्ष पर सीमित है । हमारा दुश्मन (या दुश्मन) स्क्रीन के शीर्ष पर है, उनका आंदोलन भी X
धुरी तक ही सीमित है । खिलाड़ी दुश्मन पर गोलियां (पीला) फायर करता है।
मैं दुश्मन के लिए एक एआई लागू करना चाहता हूं जो खिलाड़ियों की गोलियों से बचने के लिए वास्तव में अच्छा होना चाहिए। मेरा पहला विचार स्क्रीन को असतत वर्गों में विभाजित करना और उन्हें भार प्रदान करना था:
दो वज़न हैं: "बुलेट-वेट" (ग्रे) एक बुलेट द्वारा लगाया गया खतरा है। शत्रु के करीब गोली जितनी अधिक होती है, उतना ही "बुलेट-वेट" ( 0..1
, जहाँ 1 सबसे अधिक खतरा होता है)। एक गोली के बिना लैंस का वजन 0. है दूसरा वजन "दूरी-वजन" (चूना-हरा) है। हर लेन के लिए मैं 0.2
मूवमेंट कॉस्ट जोड़ता हूं (यह मूल्य अब मनमाना है और इसे ट्वीक किया जा सकता है)।
फिर मैं केवल वज़न (सफ़ेद) जोड़ता हूं और सबसे कम वजन (लाल) के साथ लेन पर जाता हूं। लेकिन इस दृष्टिकोण, एक स्पष्ट दोष है क्योंकि यह इष्टतम जगह जाने के लिए बस के रूप में हो सकता है आसानी से याद आती है स्थानीय न्यूनतम कर सकते हैं के बीच दो भेजे गोलियों (के रूप में सफेद तीर के साथ चिह्नित)।
तो मैं यहाँ देख रहा हूँ:
- बुलेट-तूफान के माध्यम से एक रास्ता खोजना चाहिए, यहां तक कि जब कोई जगह नहीं होती है जो बुलेट के खतरे को लागू नहीं करता है।
- दुश्मन मज़बूती से (या लगभग इष्टतम) समाधान उठाकर गोलियों को चकमा दे सकता है।
- एल्गोरिथ्म बुलेट आंदोलन की गति में कारक के रूप में सक्षम होना चाहिए (क्योंकि वे विभिन्न वेगों के साथ आगे बढ़ सकते हैं)।
- एल्गोरिथ्म को ट्विक करने के तरीके ताकि कठिनाई के विभिन्न स्तरों को लागू किया जा सके (सुपर-बुद्धिमान दुश्मनों को गूंगा)।
- एल्गोरिदम को अलग-अलग लक्ष्यों की अनुमति देनी चाहिए, क्योंकि दुश्मन न केवल गोलियों से बचना चाहता है, उसे खिलाड़ी को गोली मारने में भी सक्षम होना चाहिए। इसका मतलब यह है कि गोलियां चलाते समय दुश्मन पर फायर करने वाले पोजिशन को प्राथमिकता दी जानी चाहिए।
तो आप इससे कैसे निपटेंगे? इस शैली के अन्य खेलों के विपरीत, मैं केवल कुछ, लेकिन बहुत "कुशल" दुश्मनों के बजाय गूंगा दुश्मनों का सामना करना चाहता हूं।