ПрограммированиеФорумГрафика

Игровой движок. Создание с нуля. (5 стр)

Страницы: 14 5 6 710 Следующая »
#60
23:50, 26 окт 2009

и в догонку ещё вопрос:

а что есть RespawnPoint, AiPath ?  это тоже энтити?  они относятся к одному подвиду сущности?

являются ли они одним из:
1. Entity
    1a  LifeForm
          1aa Human, Animal, Mutant...
    1b  StaticForm
          1ba тут любай статичная гометрия уровня - стены,  пол, забор и т.д.
    1c  Vechicle
        1ca Car, Plane, Boat....

или нужно создать новый подвид?

я так думаю нужно чтото типа  LogicalEntity .  Или нет?

#61
5:18, 27 окт 2009

 L 
> и да, у кого больше опыта в кодинге под луа... вообще реально создать норм ИИ
> на нём? Я имею ввиду какие-нибудь ограничения языка (предположим что на C#/C++
> я сделаю, смогу ли я сделать на LUA его средствами)
к примеру игры от CryTek начиная с FarCry используют AI на LUA

#62
5:20, 27 окт 2009

 L 
> у ЛУА есть такой метод: DoFile() через него выполняются скрипты в луа... ок.
> Например я хочу создать систему ИИ полностью на LUA

сперва необходимо прикрутить препроцессор, натравить его на макросы(#define) и директивы #include, прогоняешь через него, затем затаскиваешь результирующий файл в lua-машину

#63
5:24, 27 окт 2009

 L 
> а что есть RespawnPoint, AiPath
создаешь многфункциональный нативный класс Sensor или Trigger, вообщем некий объем, он аггрегируется в Entity - Respawn Point, для него пишется логика и задается пачка настроек.

#64
5:27, 27 окт 2009

 L 
> AiPath

обычно навигационные пути и навигационные области экпортируются из редактора целиком, смысла делать из них Entity я не вижу

#65
5:29, 27 окт 2009

 L 
> 1. Entity
> 1a LifeForm
> 1aa Human, Animal, Mutant...
> 1b StaticForm
> 1ba тут любай статичная гометрия уровня - стены, пол, забор и т.д.
> 1c Vechicle
> 1ca Car, Plane, Boat....

посмотрите сорцы HL2, не выдумывайте ничего из головы

#66
5:35, 27 окт 2009

 L 
> После того, как он ВЫПОЛНИТСЯ (выполнится инициализация AI) - я смогу этим
> классом пользоваться? Он остаётся в памяти или после выполнения скрипта
> выгружается? (я думаю остаётся, но всёже перепроверю)

т.к. LUA это интерпретатор, то выполнится весь код который лежит в глобальной области видимости и останется в памяти пока вы не удалите машину.

function foo1()
  print("mama")
end

function foo2()
  print("papa")
end

foo2()

~~
результат работы:
~~
papa


p.s.
http://www.lua.org/cgi-bin/demo

#67
10:07, 27 окт 2009

 L 
> и да, у кого больше опыта в кодинге под луа... вообще реально создать норм ИИ
> на нём? Я имею ввиду какие-нибудь ограничения языка (предположим что на C#/C++
> я сделаю, смогу ли я сделать на LUA его средствами)
Пример Сталкера и CryTeck'а. У C# нет будушего...

#68
10:56, 27 окт 2009

Алмаз
> У 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
ну тогда *ушёл писать ИИ*

#69
13:41, 27 окт 2009

 L 
> нуууу, у меня каждое поведение будет описано в готовых LUA скриптах. Для
> каждого "типа" человека будет своё поведение.
> тогда зачем препроцессор? я чёт не вкурил : (

во первых это #include, во вторых с помошью препроцессора можно повысить удобочитаемость как минимум, спрятав частоиспользуемые конструкции под макросы, а в третьх над lua можно надстроить свой макро-язык

#70
14:13, 27 окт 2009

 L 
> холивар детектед!
))))

#71
15:18, 27 окт 2009

 L 
> Я не удивлюсь если в скором будущем C# проги будут компилиться в native код.
Скорее идёт обратный процесс:в ядре ОС сделают виртуальную машину и все программы будут работать на ней.  А такой язык, как ты сказал уже есть - Component Pascal.

#72
15:30, 27 окт 2009

 L 
> и да, у кого больше опыта в кодинге под луа... вообще реально создать норм ИИ
> на нём?
GSC сделала. Работает, и работает быстро. Особенно с JIT компилятором. При желании на Lua можно даже делать наследников от С++ классов (с правильно-работающими виртуальными функциями).

 L 
> Он остаётся в памяти или после выполнения скрипта выгружается?
Скрипт меняет текущее состояние виртуальной машины. Так что он (а точнее его нелокальные переменные (а функция в луа это таки переменная) сохранятся в таблице до принудительной выгрузки. Или уничтожения виртуальной машины

LowPolyMan
> А как сделать чтото вроде нэймспейса?
Создать модуль (ладно, ладно таблицу) и функции загружать в него. L 

 L 
> у ЛУА есть такой метод: DoFile()
У С интерфейса самой Lua такого "метода" нет. Он является частью AUX библиотеки. 

UPD Надо чаще жать F5. А то на все отвечают а об этом и не знаешь))

#73
17:21, 27 окт 2009

 L 
Слушай, а скрины выложить можешь своего двига? Интересно стало, что утебя там...

#74
18:12, 27 окт 2009

Алмаз
> Слушай, а скрины выложить можешь своего двига? Интересно стало, что утебя
> там...
хахах : )  неа  коммерческая тайна.  *Ждите... и вы всё узнаете. Осталось совсем не много... доктор кашпировский Сергей вам всё покажет.*
единственный скрин где я ещё в армии мутил - это у мну на сайтеге

Страницы: 14 5 6 710 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.