PDA

Просмотр полной версии : LUA - новые возможности в настройке и управлении ЛО



chp
18.03.2004, 22:27
"Lua scripts are open parts of the program code. Advanced users may change these scripts to adapt program behaviour for their special needs without program rebuilding. We are moving to the open architecture step by step. Lock On uses Lua scripts for views and for data export just now but this is the beginning only." by Valery

Столько раз упомянутый в изменениях патча 1.02.. Неужели сей сюрприз никого не заинтересовал?

`Пока` только манипуляции с (расширенными) переменными обзора и `полетными` данными..
Что уже возможно? Что планируется / хотелось бы иметь в будущем? Обсудим?

http://www.lua.org

Strannic
18.03.2004, 23:05
Ты б эта,перевёл бы,а то непонятно что обсуждать.
ЗЫ Неужто позволят нормально обзор настраивать,я уже тему хотел создавать с предложениями=)

voice from .ua
19.03.2004, 00:09
chp, мой тебе совет, ты объясни человеческим языком, чего при помощи этой штуки можно будет добиться и как ее пользовать, чтобы у народа стимул появился во всем этом разбираться. А то ссылочки на какой-то англоязычный сайт с какй-то технологией программирования маловато для активного обсуждения. Не все ж такие спецы в программировании, как вы с Валерием :D.

Dmut
19.03.2004, 00:24
LUA - вспомогательный язык программирования, созданный в 1994 и используемый совместно с другими языками высокого уровня, чаще всего С/С++. В целом язык относится к скриптовым языкам класса Perl, Tcl, Ruby, Forth, Python, но имеет ряд принципиальных отличий - расширяемость, в том числе собственных структур языка, относительная простота синтаксиса, высокая (в большинстве тестов - самая высокая) скорость исполнения в своём классе (скриптовых языков), широкая портируемость на большинство известных платформ, ОС и средств разработки, при этом изменения кода минимальны.

Код LUA выглядит примерно так: ( пример функции расчета факториала для введенного с консоли числа )
function factorial (n)
if n == 0 then return 1
else return n*factorial(n-1) end
end
print "enter a number:"
a = read("*number")
print(factorial(a))
Зарезервированных идентификаторов языка всего 19:

and break do else elseif
end for function if in
local nil not or repeat
return then until while
ещё одна интересная особенность языка - таблицы со свободными типами данных и их ключей:

a = {}
k = "x"
a[k] = 10 -- new field, with key="x" and value=10
a[20] = "great" -- new field, with key=20 and value="great"
print(a["x"]) --> 10
k = 20
print(a[k]) --> "great"
a["x"] = a["x"]+1 -- increments field "x"
print(a["x"]) --> 11
Текст создан при использовании книги Roberto Ierusalimschy - Programming in Lua, примеры взяты оттуда.

Теперь по использованию LUA при экпорте данных из LO (по материалам форума и переписки с ED. Валерий Блажнов, поправьте меня если ошибаюсь):

ED сoздаёт программу-сервер, которая по закрытому протоколу принимает данные из самой игры. Сама программа-сервер будет допускать стандартное сетевое подключение со стороны, для выдачи этих данных программе-клиенту пользователя. При этом настраивать формат выдачи и состав данных можно будет скриптами LUA, которые будет принимать программа-сервер.

Остаётся дождаться более детального описания всего этого механизма и примеров использования.

voice from .ua
19.03.2004, 01:25
Т.е. таким образом можно будет получать данные из игры? И каким образом я потом могу использовать эти данные? В чисто ознакомительных целях, что ли?

Dmut
19.03.2004, 08:45
всмысле ознакомительных? :confused:
получил и используй как тебе вздумается, хочешь - логируй, хочешь - на внешний индикатор отсылай.

Death_pilot
19.03.2004, 10:11
Ну вы того хотя понимаю весна

K0r0l =RAF=
19.03.2004, 11:36
Originally posted by Dmut
[B]LUA - вспомогательный язык программирования, созданный в 1994 и используемый совместно с другими языками высокого уровня, чаще всего С/С++.
В обще-то Си++ язык среднего уровня...



В целом язык относится к скриптовым языкам класса Perl, Tcl, Ruby, Forth, Python, но имеет ряд принципиальных отличий - расширяемость, в том числе собственных структур языка, относительная простота синтаксиса, высокая (в большинстве тестов - самая высокая) скорость исполнения в своём классе (скриптовых языков),

откуда появилась скорость то? если это всего лишь скриптовый язык



широкая портируемость на большинство известных платформ, ОС и средств разработки, при этом изменения кода минимальны.

c этой портируемостью таких багов в свое время наделали.. будем надеятся, что тут их избежали.. :-\\




ещё одна интересная особенность языка - таблицы со свободными типами данных и их ключей:

a = {}
k = "x"
a[k] = 10 -- new field, with key="x" and value=10
a[20] = "great" -- new field, with key=20 and value="great"
print(a["x"]) --> 10
k = 20
print(a[k]) --> "great"
a["x"] = a["x"]+1 -- increments field "x"
print(a["x"]) --> 11

достаточно медленная конструкция..



Надеюсь ЕД доведет такую схему работы до ума.. а то багов будем ловить все оставшееся время...

Dmut
19.03.2004, 12:06
В обще-то Си++ язык среднего уровня... хм, это что за новые веяния? ;) академически всегда считалось, что С++ - язык высокого уровня, что и указано в огромном кол-ве литературы, а где сказано что он "среднего" уровня?


откуда появилась скорость то? если это всего лишь скриптовый язык как я написал - высокая скорость в своём классе скриптовых языков.


достаточно медленная конструкция..
согласен, но во первых - пример расчета факториала - это своего рода классика, что-то вроде advanced "Hello World", во вторых пример не мой, из книжки, сам бы я через рекурсию тоже не писал, банальный цикл гораздо эффективнее.

Valery
19.03.2004, 12:25
Совсем недавно меня здесь спрашивали об отношении к скриптам, и я ответил, что мы будем их внедрять. Вот, процесс и пошел потихоньку :)

Ничего нового собственно в применении Lua нет. В Far Cry большая часть прикладной логики вынесена в скрипты Lua, и мы намереваемся пойти тем же путем. Сама реализация Lua выполнена очень квалифицированно, проверена мировым сообществом программистов на практике и за десять лет эксплуатации зарекомендовала себя с самой лучшей стороны.

В настоящее время мы внедряем Lua в экспериментальном порядке и намереваемся совместно с тестировщиками и продвинутыми пользователями выработать приемлемые формы открытой архитектуры симулятора. Разумеется, оптимальный баланс между кодом C++ и кодом Lua - это непростое дело. Однако, практические выгоды от такого баланса столь значительны, что с лихвой покрывают неизбежные затраты на поддержку двуязычной программной реализации.

K0r0l =RAF=
19.03.2004, 12:31
Извин за оффтоп, но, Дмут! Шилдта знаешь? Вот он пишет, что язык Си среднего уровня, вместе с Явой, Forthb и C#
... если надо, могу цитату привести...

Dmut
19.03.2004, 13:40
K0r0l =RAF=, а вот Страуструп (и абсолютное большинство других известных технических писателей таких как Knut, David Kruglinsky) всегда относил С++ к языкам высокого ровня, и уж точно не ставил в один ряд с "Явой, Forth, и C#" ;), Так что Шилдт хоть и авторитет, но находится в явном в меньшинстве.

Валерий, а как присоединиться к сообществу тестеров и продвинутых пользователей для помощи во "внедрении"?

K0r0l =RAF=
19.03.2004, 14:45
Точно! Забыл Спросить! Валерий! Я тоже хотел бы помогать вам во внедрении LUA в Локон! Как это можно сделать?


ЗЫ Дмут! Можно много всего говорить на эту тему, но тогда нас забанят за оффтоп :-))
так что пусть каждый останется при своем мнении....

Valery
19.03.2004, 16:43
Originally posted by Dmut
Валерий, а как присоединиться к сообществу тестеров и продвинутых пользователей для помощи во "внедрении"?
К продвинутым пользователям нельзя присоединиться, нужно просто ими быть :) Всем будут доступны скрипты в открытом виде - развлекайтесь на здоровье. Только не советую обольщаться по поводу тех скриптов, которые появятся в патчах к ЛокОну, - это пока еще очень маленькое поле для деятельности. Разумеется, обо всех новшествах по данному направлению мы будем ставить пользователей в известность.

Mishel
19.03.2004, 17:32
Это приятный сюрприз, безусловно. За это - отдельное спасибо разработчикам.

А для обсуждения, наверное, почва появится после "ощупывания" этих возможностей. :)

Pilgrim
20.03.2004, 08:54
Если есть движение в сторону скриптов, то может ли это означать, что - ДИНАМИЧЕСКИЕ КОМПАНИИ ещё не забыты?

Какой объём, и главное какого типа будет информация? Только о пилотируемом самолёте, или о всех (а может и не только самолётах) ..... мечтаю я.

Dmut
20.03.2004, 12:44
если ED пойдут по стопам Crytek, разработчиков FarCry (а зарубежный издатель у них общий ;) ) и вынесут значительную часть функций в скрипты, то можно ожидать не только динамические кампании, но и возможность улучшения AI.