Сижу и думаю, как сделать выолнение скрипта ИИ, для нескольких персонажей игры, параллельно, причем так, чтобы при написании бесконечного цикла, игра продолжала свою нормальную работу...
Какие идеи?
Выполнение скрипта ИИ |
Выполнение скрипта ИИ |
Gothic_Snake |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 45 Пол: Мужской Реальное имя: Алексей Репутация: 0 |
Сижу и думаю, как сделать выолнение скрипта ИИ, для нескольких персонажей игры, параллельно, причем так, чтобы при написании бесконечного цикла, игра продолжала свою нормальную работу...
Какие идеи? |
Shura |
Сообщение
#2
|
Пионер Группа: Пользователи Сообщений: 136 Пол: Мужской Реальное имя: Александр Репутация: -2 |
У персонажа есть ряд действий которые он способен выполнять. Например, рассмотрим бота, вид сверху У него есть простой набор действий:
1) Поворачиваться на N градусов 2) Пройти N метров 3) Вести огонь Скрипт - это заранее заданный набор из таких действий. На самом деле, если мы не видим, что он выполняет эти действия, это совсем не значит, что он их не выполняет... Если даже этот бот просто стоит на месте, то он на самом деле совершает постоянно поворот на 0 градусов, проходит 0 метров, и пытается выстрелить - просто флажок стрелять-прекратить у него выключен Иными словами, в основном цикле он постоянно выполняет эти действия, и постоянно должны существовать переменные, которые являются параметрами выполняемых действий, и если он просто стоит, то они все равны нулю. А если например тебе надо чтобы он развернулся на 180 градусов, прошел 10 метров и начал стрелять, ты вызываешь процедуру(скрипт), в которой на самом деле не действия описаны, а присваиваются новые параметры этим действиям - 180 углу, 10 расстоянию, и флажок стрельбы включается. Все конечно сложнее реализовать. Может криво объяснил, конечно... -------------------- Старайтесь восполнять пробелы в области незнания! ;-D
|
Gothic_Snake |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 45 Пол: Мужской Реальное имя: Алексей Репутация: 0 |
Нет, это есесно и ежу понятно... Я же говорю именно про скрипт... Алгоритмичный, подобный с++/pascal/java
с циклами и т.п. к примеру JavaScript |
GoodWind |
Сообщение
#4
|
Автооответчик Группа: Пользователи Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
исходники p-robots ковырял ?
-------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Gothic_Snake |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 45 Пол: Мужской Реальное имя: Алексей Репутация: 0 |
|
volvo |
Сообщение
#6
|
Гость |
А почему нет? Есть, конечно...
P-Robots |
Gothic_Snake |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 45 Пол: Мужской Реальное имя: Алексей Репутация: 0 |
Извиняйте, не обратил внимание на архив. Вообщем там немного не то, что требуется. Представьте: в игре от 0 до n ботов, у каждого из которых будет свой исполняемый скрипт. Так как можно сделать, чтобы скрипт исполнялся параллельно для каждого из ботов. Как вариант, пришедший мне в голову: Выполнять для каждого бота, скажем по 8 строк кода за 1 такт (1 кадр)... Мож у кого есть предложение по лучше? |
Altair |
Сообщение
#8
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Насколько я помню Вольво как то предлагал для рещения какой то задачи метод квантования по времени -небольшие куски псевдопаралельных процессов выполняются последовательно, и при размере этого кусочка ->0, процесс получается все более приближенном к паралельному.
Gothic_Snake, а ты привязан к 16 битам ? Почему бы не использовать тот же FPC и не юзать потоки для паралельности ? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Gothic_Snake |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 45 Пол: Мужской Реальное имя: Алексей Репутация: 0 |
Насколько я помню Вольво как то предлагал для рещения какой то задачи метод квантования по времени -небольшие куски псевдопаралельных процессов выполняются последовательно, и при размере этого кусочка ->0, процесс получается все более приближенном к паралельному. Gothic_Snake, а ты привязан к 16 битам ? Почему бы не использовать тот же FPC и не юзать потоки для паралельности ? На счет параллельности, значит моя идея верна?? Ребят, вы серьезно думаете, что писать игры в наше время под 16 бит актуально??? =) Будет писаться на с++, частями некоторые модули dll можно будет и на другом языке писать. Но точно 32 бита. Графика будет псевдо 3D под DirectX, 16 бит 5-5-5 потоки использоваться наверное не будем... хотя... Посмотрим. Надо для начала интерпритатор для языка написать.. Сообщение отредактировано: Gothic_Snake - |
Текстовая версия | 10.05.2024 4:30 |