কাস্টম-আকৃতির স্পেসশিপগুলি স্থানান্তর করতে এআই (চলাচলের আচরণকে প্রভাবিত করে এমন আকার)


15

আমি একটি নেটওয়ার্ক টার্ন ভিত্তিক 3 ডি -6 ডিএফ স্পেস ফ্লিট যুদ্ধের কৌশল গেমটি ডিজাইন করছি যা শিপ কাস্টমাইজেশনের উপর খুব বেশি নির্ভর করে। আমাকে গেমটি কিছুটা ব্যাখ্যা করতে দিন, যেহেতু প্রশ্নটি সেট করার জন্য আপনার এটি সম্পর্কে কিছুটা জানা দরকার।

আমি যা লক্ষ্য করি তা হ'ল কাস্টম শেপ এবং সংযুক্ত মডিউলগুলি (প্রোপেলার, ট্র্যাক্টর বিম ...) দিয়ে আপনার নিজস্ব জাহাজের বহর তৈরি করার ক্ষমতা যা প্রতিটি জাহাজের জন্য সুবিধাগুলি এবং অসুবিধা দেয়, তাই আপনার প্রচুর বহর বিতরণ রয়েছে। উদাহরণস্বরূপ, পাশের দুটি চালক সহ দীর্ঘ জাহাজটি জাহাজটিকে সহজেই সেই বিমানের চারদিকে ঘুরতে দেয়, বড় জাহাজগুলি ধীরে ধীরে চলত যদি আপনি পিছনে প্রচুর প্রপেলার না রাখেন (সুতরাং চলার সময় আরও "নির্মাণ" পয়েন্ট এবং শক্তি ব্যয় করে, এবং এটি হবে) কেবলমাত্র সেই দিকে এগিয়ে যান move) আমি এই বৈশিষ্ট্যটির চারপাশে সমস্ত গেমের ভারসাম্য বজায় রাখার পরিকল্পনা করছি।

গেমটি দুটি ধাপের চারদিকে ঘোরে: আদেশ এবং যুদ্ধের পর্ব। অর্ডার পর্বের সময়, আপনি বিভিন্ন জাহাজের কমান্ড দিন। সমস্ত খেলোয়াড় যখন অর্ডার পর্ব শেষ করে, যুদ্ধের পর্ব শুরু হয় এবং শিপ অর্ডারগুলি কিছু সময়ের জন্য রিয়েল-টাইমে সমাধান হয়ে যায়, তারপরে অ্যাকশনটি বিরতি দেয় এবং সেখানে নতুন অর্ডার পর্ব থাকে।

আমি যখন প্লেয়ার ইনপুট সম্পর্কে চিন্তা করি তখন সমস্যাটি আসে। কোনও জাহাজ সরানোর জন্য, আপনি চালিত করতে, এগিয়ে ভ্রমণ করতে, ব্রেক করতে, জায়গায় ঘুরতে চাইলে আপনাকে বিভিন্ন প্রোপেলারগুলি চালু বা বন্ধ করতে হবে ... এই প্রোপেলারগুলিকে তাদের পুরো শক্তি নিয়ে কাজ করতে হবে না, যাতে আপনি আরও চলাচল করতে পারেন কম প্রোপেলারগুলির সাথে সংমিশ্রণগুলি।

আমি মনে করি এই পদ্ধতিটি কিছুটা বিরক্তিকর। প্লেয়ার মোটর বা কোনও কিছুর সাথে ঝাঁকুনি দিতে চায় না, আপনি কেবল মুভি এবং মেরে ফেলতে চান। এই জাহাজগুলিকে অর্ডার দেওয়ার জন্য আমি প্লেয়ারটিকে যেভাবে ইচ্ছা করি তা হ'ল এক গন্তব্য এবং একটি ঘূর্ণন এবং তারপরে এআই সেই আন্দোলন এবং ঘূর্ণনটি অর্জন করার জন্য সঠিক প্রপেলার শক্তি গণনা করবে। প্রোপালশনটি পুরো টার্নের গণনার সাথে একই রকম হয় না (অর্ডার দেওয়ার পরে) তাই জাহাজগুলি যখন তাদের চলার সময় প্রতিক্রিয়া দেখায়, তবে তাদের প্রয়োজনীয়তার জন্য প্রপেলারগুলির শক্তি গতিশীলভাবে সামঞ্জস্য করা যদি দুর্দান্ত হয় তবে এটি হতে পারে বাস্তবায়ন করা খুব কঠিন এবং গেমটি কাজ করার পক্ষে এটি সত্যই দরকার নেই।

উভয় ক্ষেত্রেই, এআই কীভাবে সিদ্ধান্ত নেবে যে কোন প্রোপেলারগুলি সেরা (বা কমপক্ষে সবচেয়ে খারাপ নয়) ট্র্যাকজেক্টরি অর্জন করতে হবে?

যদিও আমি কিছু পদ্ধতির সম্পর্কে:

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

আমি সত্যিই এখানে আটকে আছি। কোন ধারনা?


আপনি স্টিয়ারিং আচরণগুলি সন্ধান করেছেন?
স্টোনমেটাল

1
@ স্টোনমেটাল নিশ্চিত এখানে সমস্যাটি হ'ল স্টিয়ারিং আচরণগুলি সাধারণত অবজেক্টের অবস্থান এবং আবর্তনের পুরো নিয়ন্ত্রণ এবং কিছু বাধা (বা কমপক্ষে এটি ওয়েবে খুঁজে পেয়েছি।) সম্পূর্ণ নিয়ন্ত্রণ ধরে ধরে মডেল করা হয় here এখানে এআই এর সত্ত্বার উপর সম্পূর্ণ নিয়ন্ত্রণ নেই AI , কিন্তু কেবলমাত্র জিনিস (চালক) এর উপর যা সত্তাকে সরিয়ে দেয়। স্পেসশিপের আসল লোকোমোশনের সাথে এই স্টিয়ারিং আচরণগুলি সংযুক্ত করতে আমার সমস্যা হয়।
কওড

স্টিয়ারিং আচরণগুলি রেসের গাড়িগুলিতে খুব বেশি কাজ করে না। স্টিয়ারিং আচরণগুলি দুর্দান্ত তবে তারা সব কিছুর সর্বজনীন সমাধান নয়।
tenpn

@ এমএইচডি আমি ভূস্টনলাইন কী জবাব দিয়েছিল সেদিকেই কিছু ভাবছিলাম। তাদের যেকোন সময় তৈরি করতে দিন, তারপরে এটিকে স্টিয়ারিং আচরণের জন্য সীমাবদ্ধতায় অনুবাদ করুন। যদিও আপনার প্রতিক্রিয়া থেকে এটি মনে হচ্ছে স্টিয়ারিং আচরণগুলি সম্ভবত যথেষ্ট নমনীয় নয়।
স্ট্যান্ডমেটাল

1
আমি জানি এটি অত্যন্ত পুরানো, তবে আপনি যা খুঁজছেন তাকে কিনডায়েনামিক মোশন প্ল্যানিং
mklingen

উত্তর:


4

দুঃখিত, চেষ্টা-পরীক্ষিত সমাধানটি পেলেন না, তবে কী এটি গাণিতিকভাবে সমাধান করা যায় না?

ভর কেন্দ্র থেকে যে কোনও প্রোপেলার এবং এটির অফসেট দেওয়া, আপনি কোন বিমানটি ঘোরাতে পারবেন তা গণনা করতে পারেন।

যে কোনও আন্দোলনের জন্য, আপনি 1 বা আরও বেশি চালক ব্যবহার করতে পারেন। প্রতিটি প্রোপেলারকে লক্ষ্য করা যেতে পারে যে এর বিমানটি লক্ষ্য অভিযোজনে অবদান রাখতে পারে, প্রপেলার থেকে অবদান রাখতে কতটা প্রচেষ্টা লাগবে (সিওএম থেকে দূরে থাকা প্রোপেলাররা আরও মোড় উত্পন্ন করতে কম শক্তি ব্যবহার করতে পারে), এবং এটি কতটা কাছে আসবে আপনি লক্ষ্য অরিয়েন্টেশন। তারপরে আপনি স্বল্প ব্যয়ের সাথে একটি সমাধান নিয়ে না আসা পর্যন্ত আপনি সেই অনুসন্ধানের স্থান জুড়ে একটি *, যা সর্বনিম্ন মোট ব্যবহৃত শক্তি বা দ্রুততম চলন হতে পারে।

লক্ষ্যটি পৌঁছানোর সাথে সাথে আপনি টার্নটি এবং মধ্যপন্থী শক্তিটি সম্পূর্ণ করার সাথে সাথে কোনও পিআইডি নিয়ামক দিয়ে পুনরায় মূল্যায়ন করতে থাকুন।

ফরোয়ার্ড চলাচলের জন্য, একটি সহজ সমাধান আপনাকে সর্বদা এগিয়ে নিয়ে যায়, আপনি লক্ষ্যটির কাছে যাওয়ার সাথে সাথে আপনার টার্গেটের গতি হ্রাস করে। আপনি খেলতে 3 ডি স্পেস পেয়েছেন বলে জটিল 3-পয়েন্ট টার্ন রুটিনগুলি এড়াতে পারবেন। কোনও প্রারম্ভিক অবস্থা হিসাবে আপনার বাঁক গণনার জন্য সোজা-রেখার গতির জন্য বেছে নেওয়া প্রোপেলারগুলি থেকে আউটপুটকে ফ্যাক্ট করতে হবে।

এটি খামের খুব পিছনের অংশ তবে আমি কোনও বড় ত্রুটি দেখতে পাচ্ছি না। মাত্র প্রচুর পরিশ্রম এবং নম্বর টুইট। :)


এই যে আমি খুঁজছিলাম, একটি গাণিতিক সমাধান ... ধন্যবাদ! আমি আশা করি এটি যেমন শোনাচ্ছে ততই সহজ হয়ে উঠবে।
KaoD

7

যেহেতু আপনি একটি এআই ব্যবহার করে প্লেযোগ্যতার জন্য কিছুটা প্লেয়ার নিয়ন্ত্রণ ছেড়ে দিতে চান, তাই আপনি কম্পিউটারের অ্যালগরিদমের জন্য প্রোপেলারদের উপর নজর রাখা এবং জাহাজের মাত্রা কম, আরও সহজে পরিচালিতযোগ্য প্যারামিটারগুলিতে পরিবর্তন করার বিষয়টিও বিবেচনা করতে চাইতে পারেন। প্লেয়ারটিকে জাহাজের যে কোনও অংশে প্রোপেলার যোগ করার অনুমতি রয়েছে তবে এটি শেষ হয়ে গেলে এটি প্যারামিটারগুলিতে 'সংকুচিত' হয়।

প্রতিটি প্রোপেলারটি জাহাজের টার্নের হারকে প্রভাবিত করে বা সমান্তরালভাবে স্থাপন করা প্রোপেলারের সাথে একত্রিত করে একটি নির্দিষ্ট মাত্রায় ভ্রমণের হারকে প্রভাবিত করে। প্রতিটি প্রোপেলারটির জন্য এই প্যারামিটারগুলি একত্রিত করুন এবং আপনি একটি জাহাজের সর্বাধিক টার্ন রেট এবং গতি পাবেন। প্রতিটি প্রপেলার এবং প্রোপেলারের জন্য এই দুটি প্যারামিটার একত্রিত করে সামগ্রিকভাবে জাহাজের সর্বাধিক টার্ন এবং গতির হারে সেট করে সমস্ত উপলব্ধ মাত্রা (উপরে, নীচে, বাম, ডান, সামনে, পিছিয়ে)।

প্রতিটি মাত্রার জন্য টার্ন রেট এবং বেগ ব্যবহার করে আপনার কাছে জাহাজটিকে কোনও গন্তব্যে যাওয়ার অনুমতি দেওয়ার জন্য পর্যাপ্ত তথ্য রয়েছে। প্লেয়ারটি তার প্রোপেলার কনফিগারেশনের প্রভাব দেখতে পাবে, তবে হুডের নীচে তার ইনপুটটি ব্যাপকভাবে সরল করা হয়েছে। আপনি জাহাজটি যে দূরত্বে যেতে হবে তার দূরত্বের ভিত্তিতে একাধিক উড়ানের কৌশল নিয়ে আসতে পারেন, বিমানটিকে আরও প্রাকৃতিক দেখায় এবং খেলোয়াড়ের বুদ্ধি বাড়ানোর জন্য যে তিনি জাহাজ চলাচলে নিয়ন্ত্রণ রেখেছেন। তবে শেষ পর্যন্ত, যেমন আপনি বলেছিলেন, জাহাজটি কীভাবে গন্তব্যে পৌঁছে যায় এবং এর রুটটি সর্বোত্তম কিনা তা বিবেচনা করে না, কেবল সেখানে উপস্থিত হওয়া দরকার এবং এর আগমনের সময়টি প্রোপেলার কনফিগারেশন দ্বারা প্রভাবিত হয়।

জাহাজের মাত্রাগুলির জন্য, আপনি একবারে কোনও সংক্ষিপ্ত প্রভাবের জন্য সঙ্কুচিত বেগের মানগুলি তৈরি করতে বা আরও সুনির্দিষ্ট প্রভাবের জন্য গণনার সময় এগুলি ব্যবহার করতে পারেন। সুনির্দিষ্ট পদ্ধতিটি চেষ্টা করার উপযুক্ত কিনা আপনি সম্ভবত পরীক্ষা করতে চান, কারণ পার্থক্যটি খেলোয়াড়ের নিয়ন্ত্রণের বোধকে প্রভাবিত করতে পারে না।


আমি যা খুঁজছিলাম ঠিক তা নয়, তবে আমার যদি সত্যিই প্রয়োজন হয় তবে কৌশলটি করতে পারে। ধারণাটির জন্য উত্সাহিত করুন :)
KaoD

0

মহাকাশে, আকার চলাচলে প্রভাব ফেলে না। টেনে আনার জন্য বাতাস নেই।

এটি শিপ প্লাস অ্যাড-অনস মোট ভর যা গুরুত্বপূর্ণ। এটি একটি সাধারণ ভর খোঁচা মহাকর্ষ সমস্যা। সুতরাং আপনি এই গণনাগুলি করতে পারেন বা যেহেতু এটি একটি টার্ন বেস গেম, ট্র্যাভেলারের মতো আরপিজির মতো একটি চলন ব্যবস্থা বিকাশ করুন।


জিডি.এসই তে স্বাগতম! এই প্রশ্নের ইতিমধ্যে একটি স্বীকৃত উত্তর রয়েছে এবং ২ বছর আগে জিজ্ঞাসা করা হয়েছিল - সম্ভবত আপনি সাইটে নতুন কিছু প্রশ্নের উত্তর দিতে পারেন।
পোলার

হ্যাঁ, সমস্ত সত্য, তবে আমি সবসময় ধরে নিই যে অন্যগুলি পরে এগুলি হোঁচট খেয়ে যাবে (যেমনটি করেছি) এবং এটির কিছু ব্যবহার খুঁজে পাব। হেই, আমি এখানে প্রশ্নের উত্তর দিতে আসিনি ... বেশিরভাগ মত, আমার নিজের সমস্যার সমাধানের জন্য প্রায় খনন করা।
gnoll110

@ পোলার প্রশ্ন পোস্টার এখানে। আমি তার উত্তর পেয়েছি খুব আকর্ষণীয়! আমি আনন্দিত যে সে জবাব দিতে ফিরে এসেছিল এবং আমি মনে করি বছর পরে মান যুক্ত করা এসও এর অন্যতম মূল্যবান অংশ।
কাওড

@ gnoll110 আমার এখানে ভুল হতে পারে। কোনও টান নেই, ঠিক আছে, তবে ভর কেন্দ্রে গঠিত কোণটি থ্রাস্ট ভেক্টরটি জাহাজটিকে কীভাবে অনুবাদ করে বা ঘোরায় তা প্রভাবিত করে ... ঠিক? উদাহরণস্বরূপ: ভর কেন্দ্রে একটি ইঞ্জিনের ইনলাইনটি ভর কেন্দ্রে সরে যাওয়ার সময় জাহাজটিতে একটি ঘোরানো উপাদান যুক্ত করবে।
কাওড

@ কেওডি দুঃখিত যদি এটি কিছুটা কঠোর দেখা দেয় - অবশ্যই পরে প্রচুর পরিমাণে এসও মান যোগ করছে। আমি কেবল পরামর্শ দিচ্ছিলাম যে সে আরও নতুন প্রশ্নের উত্তর দিতে পারে - আরও প্রশ্নের উত্তর দেওয়া ভাল, আরও ভাল!
পোলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.