и в догонку ещё вопрос:
а что есть RespawnPoint, AiPath ? это тоже энтити? они относятся к одному подвиду сущности?
являются ли они одним из:
1. Entity
1a LifeForm
1aa Human, Animal, Mutant...
1b StaticForm
1ba тут любай статичная гометрия уровня - стены, пол, забор и т.д.
1c Vechicle
1ca Car, Plane, Boat....
или нужно создать новый подвид?
я так думаю нужно чтото типа LogicalEntity . Или нет?
L
> и да, у кого больше опыта в кодинге под луа... вообще реально создать норм ИИ
> на нём? Я имею ввиду какие-нибудь ограничения языка (предположим что на C#/C++
> я сделаю, смогу ли я сделать на LUA его средствами)
к примеру игры от CryTek начиная с FarCry используют AI на LUA
L
> у ЛУА есть такой метод: DoFile() через него выполняются скрипты в луа... ок.
> Например я хочу создать систему ИИ полностью на LUA
сперва необходимо прикрутить препроцессор, натравить его на макросы(#define) и директивы #include, прогоняешь через него, затем затаскиваешь результирующий файл в lua-машину
L
> а что есть RespawnPoint, AiPath
создаешь многфункциональный нативный класс Sensor или Trigger, вообщем некий объем, он аггрегируется в Entity - Respawn Point, для него пишется логика и задается пачка настроек.
L
> AiPath
обычно навигационные пути и навигационные области экпортируются из редактора целиком, смысла делать из них Entity я не вижу
L
> 1. Entity
> 1a LifeForm
> 1aa Human, Animal, Mutant...
> 1b StaticForm
> 1ba тут любай статичная гометрия уровня - стены, пол, забор и т.д.
> 1c Vechicle
> 1ca Car, Plane, Boat....
посмотрите сорцы HL2, не выдумывайте ничего из головы
L
> После того, как он ВЫПОЛНИТСЯ (выполнится инициализация AI) - я смогу этим
> классом пользоваться? Он остаётся в памяти или после выполнения скрипта
> выгружается? (я думаю остаётся, но всёже перепроверю)
т.к. LUA это интерпретатор, то выполнится весь код который лежит в глобальной области видимости и останется в памяти пока вы не удалите машину.
function foo1()
print("mama")
end
function foo2()
print("papa")
end
foo2()
~~
результат работы:
~~
papa
L
> и да, у кого больше опыта в кодинге под луа... вообще реально создать норм ИИ
> на нём? Я имею ввиду какие-нибудь ограничения языка (предположим что на C#/C++
> я сделаю, смогу ли я сделать на LUA его средствами)
Пример Сталкера и CryTeck'а. У C# нет будушего...
Алмаз
> У C# нет будушего...
холивар детектед! Это всеголишь твоё личное мнение, оно ИМХО не отражает действительности.
Посмотри на развите C# и C++. C# постоянно развивается в отличае от С++ который топчется на месте. Я не удивлюсь если в скором будущем C# проги будут компилиться в native код. (не так, как сейчас, а как С++)
xDimka
> посмотрите сорцы HL2, не выдумывайте ничего из головы
гы, а почему бы не придумать?
xDimka
> т.к. LUA это интерпретатор, то выполнится весь код который лежит в глобальной
> области видимости и останется в памяти пока вы не удалите машину.
нувот, как я и предполагал. Знач можно приступатьк написанию : )
xDimka
> function foo1()
> print("mama")
> end
>
> function foo2()
> print("papa")
> end
>
> foo2()
>
> ~~
> результат работы:
> ~~
> papa
>
>
> p.s.
> http://www.lua.org/cgi-bin/demo
дада я фкурил : )
какбэ уже вроде разобрался, как создавать подобие классов
----------------------------Life AI system-------------------------------
AI = {}
AI.__index = AI
function AI.create()
local ii = {}
setmetatable(ii, AI)
ii.aiPipesCount = 0
ii.aiPipes={}
return ii
end
function AI:Init()
--self.aiPipesCount = 2
end
---------------------------- AI pipe-------------------------------
--AiPipe = {}
--AiPipe.__index = AiPipe
AI:Init()
luanet.load_assembly ("LifeGameEngine");
Message = luanet.import_type("LifeGameEngine.Message");
mymessage = Message();
mymessage.message= AI.aiPipesCount;
ShowMessage(mymessage)
удобный язык : ) можно добавить поле "классу" в любой момент выполнения О_О
xDimka
> сперва необходимо прикрутить препроцессор, натравить его на макросы(#define) и
> директивы #include, прогоняешь через него, затем затаскиваешь результирующий
> файл в lua-машину
нуууу, у меня каждое поведение будет описано в готовых LUA скриптах. Для каждого "типа" человека будет своё поведение.
тогда зачем препроцессор? я чёт не вкурил : (
xDimka
> к примеру игры от CryTek начиная с FarCry используют AI на LUA
ну тогда *ушёл писать ИИ*
L
> нуууу, у меня каждое поведение будет описано в готовых LUA скриптах. Для
> каждого "типа" человека будет своё поведение.
> тогда зачем препроцессор? я чёт не вкурил : (
во первых это #include, во вторых с помошью препроцессора можно повысить удобочитаемость как минимум, спрятав частоиспользуемые конструкции под макросы, а в третьх над lua можно надстроить свой макро-язык
L
> холивар детектед!
))))
L
> Я не удивлюсь если в скором будущем C# проги будут компилиться в native код.
Скорее идёт обратный процесс:в ядре ОС сделают виртуальную машину и все программы будут работать на ней. А такой язык, как ты сказал уже есть - Component Pascal.
L
> и да, у кого больше опыта в кодинге под луа... вообще реально создать норм ИИ
> на нём?
GSC сделала. Работает, и работает быстро. Особенно с JIT компилятором. При желании на Lua можно даже делать наследников от С++ классов (с правильно-работающими виртуальными функциями).
L
> Он остаётся в памяти или после выполнения скрипта выгружается?
Скрипт меняет текущее состояние виртуальной машины. Так что он (а точнее его нелокальные переменные (а функция в луа это таки переменная) сохранятся в таблице до принудительной выгрузки. Или уничтожения виртуальной машины
LowPolyMan
> А как сделать чтото вроде нэймспейса?
Создать модуль (ладно, ладно таблицу) и функции загружать в него. L
L
> у ЛУА есть такой метод: DoFile()
У С интерфейса самой Lua такого "метода" нет. Он является частью AUX библиотеки.
UPD Надо чаще жать F5. А то на все отвечают а об этом и не знаешь))
L
Слушай, а скрины выложить можешь своего двига? Интересно стало, что утебя там...
Алмаз
> Слушай, а скрины выложить можешь своего двига? Интересно стало, что утебя
> там...
хахах : ) неа коммерческая тайна. *Ждите... и вы всё узнаете. Осталось совсем не много... доктор кашпировский Сергей вам всё покажет.*
единственный скрин где я ещё в армии мутил - это у мну на сайтеге
Тема в архиве.