У мене є проект, щоб зробити стратегічну гру в реальному часі з нуля. Я ще на стадії раннього планування, але я трохи програмував, щоб побачити механіку.
Я знаю, як програмувати. Я також добре уявляю, як буду структурувати ігрові класи та AI на основі правил для комп'ютерного гравця.
Я хочу розробити доктрини, які даватимуть конкретній поведінці певному підрозділу (але можуть використовуватися в багатьох підрозділах одночасно), таких як «Розвідник», «Дотримуйтесь маршруту місії», «Утримуйте позицію» (атакуйте будь-якого наближеного противника або відступайте, якщо переможете) тощо.
Доктрини застосовуватимуться лише до одиниць, тож вони матимуть одиничну перспективу та не будуть усвідомлюватись у цілому на карті.
Комп'ютерний ШІ проаналізує всю видиму карту і вирішить, яку доктрину призначити кожному блоку залежно від іншого набору правил.
Я роблю це в C # з OpenGL.
На даний момент у мене не так багато, лише кілька речей у тестах, перш ніж розпочати основне уявлення. У мене є ігровий цикл, в якому вся обробка ігор (де я називаю поштовх оновлення, боротьба, візуалізація тощо, одна за одною) відбуватиметься, вона викликається дуже часто, якщо подія Application.Idle.
Тепер мені було цікаво. Оскільки в ігровому циклі буде багато що обробити, чи повинен AI Computer і Units вибрати свої дії в цьому циклі чи це буде занадто повільно?
Якщо я хочу, щоб усі речі були одночасними, чи слід створити окрему нитку для комп'ютерного інтелекту? Або навіть окрема нитка для кожної одиниці?
Я не маю великого досвіду роботи з багатопотоковою нарізкою. Який був би найкращий підхід для цього?