আমার স্ক্র্যাচ থেকে একটি রিয়েল-টাইম কৌশল গেম করার প্রকল্প রয়েছে। আমি এখনও প্রাথমিক পরিকল্পনার পর্যায়ে আছি, তবে আমি প্রকৌশলগুলি দেখতে কিছুটা প্রোগ্রামিং করছি।
আমি জানি কিভাবে প্রোগ্রাম করতে হয়। কম্পিউটার প্লেয়ারের জন্য আমি কীভাবে গেম ক্লাস এবং রুল-বেসড (স্টেট-মেশিন) এআই গঠন করব তা সম্পর্কে আমার একটি ভাল ধারণা রয়েছে।
আমি মতবাদগুলি বিকাশ করতে চাই, যা একটি নির্দিষ্ট ইউনিটকে নির্দিষ্ট আচরণ দেয় (তবে একই সাথে অনেক ইউনিটে ব্যবহার করা যেতে পারে) যেমন স্কাউট, মিশন রুট অনুসরণ করুন, অবস্থান ধরে রাখুন (যে কোনও আসন্ন শত্রুকে আক্রমণ করুন বা অভিভূত হলে পশ্চাদপসরণ) , ইত্যাদি ...
মতবাদগুলি কেবলমাত্র ইউনিটগুলিতে প্রযোজ্য, সুতরাং এটির একটি ইউনিট দৃষ্টিভঙ্গি থাকবে এবং পুরো মানচিত্রের স্যাট্যাট্যাচুয়েশন সম্পর্কে সচেতন হবে না।
কম্পিউটার এআই পুরো দৃশ্যমান মানচিত্রটি বিশ্লেষণ করবে এবং নিয়মের অন্য সেটের উপর নির্ভর করে কোন ইউনিটকে প্রতিটি ইউনিট বরাদ্দ করবে সে বিষয়ে সিদ্ধান্ত নেবে।
আমি ওপেনজিএল দিয়ে সি # তে এটি করছি।
আপাতত, আমার মূল ধারণাটি শুরু করার আগে পরীক্ষার মধ্যে আমার কাছে খুব বেশি কিছু নেই। আমার একটি গেম লুপ রয়েছে যেখানে সমস্ত গেমস প্রসেসিং (যেখানে আমি আপডেট মউভমেন্ট, লড়াই, রেন্ডারিং, ইত্যাদি কল করব) একের পর এক হবে, এটি অ্যাপ্লিকেশন.আইডল ইভেন্ট হলে খুব প্রায়ই ডাকা হয়।
এখন, আমি ভাবছিলাম। যেহেতু গেমলুপে প্রচুর পরিমাণে প্রক্রিয়া করার জন্য থাকবে, কম্পিউটার এআই এবং ইউনিটগুলি কী সেই লুপটিতে তাদের ক্রিয়াকলাপ নির্বাচন করবে বা এটি খুব ধীর হবে?
আমি যদি সমস্ত জিনিস একযোগে করতে চাই, আমি কম্পিউটার এআই এর জন্য আলাদা থ্রেড তৈরি করব? বা এমনকি প্রতিটি ইউনিটের জন্য পৃথক থ্রেড?
মাল্টি-থ্রেডিংয়ের সাথে আমার খুব বেশি অভিজ্ঞতা নেই। এর জন্য সর্বোত্তম পন্থাটি কী হবে?