Сижу и думаю, как сделать выолнение скрипта ИИ, для нескольких персонажей игры, параллельно, причем так, чтобы при написании бесконечного цикла, игра продолжала свою нормальную работу...
Какие идеи?
У персонажа есть ряд действий которые он способен выполнять. Например, рассмотрим бота, вид сверху У него есть простой набор действий:
1) Поворачиваться на N градусов
2) Пройти N метров
3) Вести огонь
Скрипт - это заранее заданный набор из таких действий. На самом деле, если мы не видим, что он выполняет эти действия, это совсем не значит, что он их не выполняет...
Если даже этот бот просто стоит на месте, то он на самом деле совершает постоянно поворот на 0 градусов, проходит 0 метров, и пытается выстрелить - просто флажок стрелять-прекратить у него выключен Иными словами, в основном цикле он постоянно выполняет эти действия, и постоянно должны существовать переменные, которые являются параметрами выполняемых действий, и если он просто стоит, то они все равны нулю. А если например тебе надо чтобы он развернулся на 180 градусов, прошел 10 метров и начал стрелять, ты вызываешь процедуру(скрипт), в которой на самом деле не действия описаны, а присваиваются новые параметры этим действиям - 180 углу, 10 расстоянию, и флажок стрельбы включается.
Все конечно сложнее реализовать. Может криво объяснил, конечно...
Нет, это есесно и ежу понятно... Я же говорю именно про скрипт... Алгоритмичный, подобный с++/pascal/java
с циклами и т.п.
к примеру JavaScript
исходники p-robots ковырял ?
А почему нет? Есть, конечно...
http://www.yandex.ru/yandsearch?text=p-robots&serverurl=pascal.sources.ru&server_name=Pascal.Sources.Ru&referrer1=http%3A%2F%2Fpascal.sources.ru%2F&referrer2=Pascal.Sources.Ru
Насколько я помню Вольво как то предлагал для рещения какой то задачи метод квантования по времени -небольшие куски псевдопаралельных процессов выполняются последовательно, и при размере этого кусочка ->0, процесс получается все более приближенном к паралельному.
Gothic_Snake, а ты привязан к 16 битам ?
Почему бы не использовать тот же FPC и не юзать потоки для паралельности ?