Помощь - Поиск - Пользователи - Календарь
Полная версия: Выполнение скрипта ИИ
Форум «Всё о Паскале» > Pascal, Object Pascal > Написание игр
Gothic_Snake
Сижу и думаю, как сделать выолнение скрипта ИИ, для нескольких персонажей игры, параллельно, причем так, чтобы при написании бесконечного цикла, игра продолжала свою нормальную работу...
Какие идеи?
Shura
У персонажа есть ряд действий которые он способен выполнять. Например, рассмотрим бота, вид сверху smile.gif У него есть простой набор действий:
1) Поворачиваться на N градусов
2) Пройти N метров
3) Вести огонь

Скрипт - это заранее заданный набор из таких действий. На самом деле, если мы не видим, что он выполняет эти действия, это совсем не значит, что он их не выполняет... smile.gif
Если даже этот бот просто стоит на месте, то он на самом деле совершает постоянно поворот на 0 градусов, проходит 0 метров, и пытается выстрелить - просто флажок стрелять-прекратить у него выключен smile.gif Иными словами, в основном цикле он постоянно выполняет эти действия, и постоянно должны существовать переменные, которые являются параметрами выполняемых действий, и если он просто стоит, то они все равны нулю. А если например тебе надо чтобы он развернулся на 180 градусов, прошел 10 метров и начал стрелять, ты вызываешь процедуру(скрипт), в которой на самом деле не действия описаны, а присваиваются новые параметры этим действиям - 180 углу, 10 расстоянию, и флажок стрельбы включается.

Все конечно сложнее реализовать. Может криво объяснил, конечно... smile.gif
Gothic_Snake
Нет, это есесно и ежу понятно... Я же говорю именно про скрипт... Алгоритмичный, подобный с++/pascal/java
с циклами и т.п.
к примеру JavaScript
GoodWind
исходники p-robots ковырял ?
Gothic_Snake
Цитата(GoodWind @ 26.12.2005 9:48) *

исходники p-robots ковырял ?

А они есть?
volvo
А почему нет? Есть, конечно...
P-Robots
Gothic_Snake
Цитата(volvo @ 26.12.2005 22:52) *

А почему нет? Есть, конечно...
P-Robots

Извиняйте, не обратил внимание на архив.
Вообщем там немного не то, что требуется. Представьте: в игре от 0 до n ботов, у каждого из которых будет свой исполняемый скрипт. Так как можно сделать, чтобы скрипт исполнялся параллельно для каждого из ботов. Как вариант, пришедший мне в голову: Выполнять для каждого бота, скажем по 8 строк кода за 1 такт (1 кадр)... Мож у кого есть предложение по лучше?
Altair
Насколько я помню Вольво как то предлагал для рещения какой то задачи метод квантования по времени -небольшие куски псевдопаралельных процессов выполняются последовательно, и при размере этого кусочка ->0, процесс получается все более приближенном к паралельному.

Gothic_Snake, а ты привязан к 16 битам ?
Почему бы не использовать тот же FPC и не юзать потоки для паралельности ?
Gothic_Snake
Цитата(Altair @ 27.12.2005 23:20) *

Насколько я помню Вольво как то предлагал для рещения какой то задачи метод квантования по времени -небольшие куски псевдопаралельных процессов выполняются последовательно, и при размере этого кусочка ->0, процесс получается все более приближенном к паралельному.

Gothic_Snake, а ты привязан к 16 битам ?
Почему бы не использовать тот же FPC и не юзать потоки для паралельности ?

На счет параллельности, значит моя идея верна??
Ребят, вы серьезно думаете, что писать игры в наше время под 16 бит актуально??? =)
Будет писаться на с++, частями некоторые модули dll можно будет и на другом языке писать. Но точно 32 бита. Графика будет псевдо 3D под DirectX, 16 бит 5-5-5

потоки использоваться наверное не будем... хотя... Посмотрим. Надо для начала интерпритатор для языка написать..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.