B
Aydar
CryEngine уже брали, не пошло
Короче я к тому что умысла в выкладывании в опенсорс нет, то что движок сомнительного качества это уже иной вопрос, если сообщество захочет то допилит, не захочет не допилит. Данный проект им просто уже не нужен вот и выложили.
И даже кстати тот факт что ни одной нормальной игры не вышло не говорит о том что весь код движка автоматически плохой и ничего полезного не принесет.
B
Pavel
CryEngine уже брали, не пошло
Поправьте. но разве Lumberyard - это не допиленый CryEngine какой-то версии?
я к тому что на CryEngine так-то не мало игр выходило...
B
Aydar
2 вроде как
Ну вот тем более, чтобы такой клозедсорс перевести в разряд открытых надо кучу юридических вопросов сначала решить.
Я где-то читал про Unreal Engine 1 (!) игроки просили его открыть, но всё застопорилось, потому что там целая куча мелких компонентов написана разными конторами и перевод этого добра в опенсорс требует разрешения множества людей и этим некому заняться.
Andrey
Всем привет, коллеги, подскажите есть ли ресурсы где достаточно много разных примеров использования debug.sethook и достаточно разжеванно. В книжке Иерусалимски только одна страничка.
Snusmumriken
Andrey
Джифорсович
Ввожу команду luarocks config variables.LUA_LIBDIR /usr/lib64/lua/5.1
выхлоп:
Wrote
variables.LUA_LIBDIR = "/usr/lib64/lua/5.1"
to
/home/h3x/.luarocks/config-5.1.lua
затем:
Configuration:
Lua:
Version : 5.1
Interpreter: /usr/bin/lua5.1 (ok)
LUA_DIR : /usr (ok)
LUA_BINDIR : /usr/bin (ok)
LUA_INCDIR : /usr/include/lua5.1 (ok)
LUA_LIBDIR : /usr/lib64/lua/5.1 (not found)
****************************************
Use the command
luarocks config variables.LUA_LIBDIR <dir>
to fix the location
****************************************
Джифорсович
почему не меняется конфиг
Aydar
Джифорсович
Джифорсович
дира то создана
Джифорсович
ls /usr/lib64/lua/5.1/
bit.so* lpeg.so* mpack.so*
Джифорсович
а, лол, я понял, можно было luarocks init сделать
Джифорсович
видимо мне это должно помочь
Джифорсович
окей, спасибо за помощь
Wsevolod
Есть пояснение, почему, например, ("_"):rep(10) работает, а
local t = {}
t:insert(42) — нет?
Leon174
Строковая библиотека экспортирует свои функции в виде модуля с именем string . Начиная с Lua 5.1, она также экспортирует свои функции как методы, принадлежащие типу string (при помощи метатаблицы данного типа). Поэтому, например, перевод строки в заглавные буквы можно записать либо как string.upper(s) , либо как s:upper().
Leon174
Для табличной библиотеки этого нет.
local inspect = require "inspect"
local t = {}
print(getmetatable(t))
local s = ""
print(getmetatable(s))
print(inspect(getmetatable(s)))
Tverd
Всем привет! Кто-нить чо-нить находил для луа типа макропарсера? например видит он в тексте table.insert(tbl, 88) и тут же меняет на tbl[#tbl+1] = 88, видит for i,v in ipairs(tbl) меняет на for i=1, #tbl и тд
Leon174
Всем привет, но никого нет, вымерли.
Я такого не встречал. Если только самому написать. Lua2Lua transpiler, забавно, наверное.
Tverd
ну есть варианты luamacro, думал можно обойтись готовыми вещами )
Tverd
а так да, lua2lua что-то должно быть... туда бы еще отключение и включение ассертов
Leon174
Может metalua?
Leon174
Блин, столько интересного тогда было, такой движ был и как отрезало. Привет Иерусалимски и его папско-каталической бурсе.
mendisobal
Всем привет, есть ли какой-нибудь адекватный способ узнать количество элементов в не индексированном массиве. Также интересно понимать как находить последний элемент такого массива.
pairs() ведь как-то понимает, что нужно остановится.
Буду весьма признателен за ссылку на почитать или за разъяснения
mendisobal
mendisobal
А длинну видимо только счётчиком, перебрав все элементы (
Snusmumriken
Ничего страшного, всё нормально.
function table.hlen(tbl)
local i. k = 0, next(tbl)
while k do
i = i + 1
k = next(tbl, k)
end
return i
end
A
Здравствуйте, коллеги!
Начинаю изучать применение lua в различных железках ))
Прошу помощи в правильной организации telnet-соединения!!
Суть в чём, две железки должны общаться передавая короткие команды раз в 10..15 минут. Помимо сообщений о текущем состоянии необходимо изредка (40..60 сек) отправлять дополнительные запросы.
Напрашивается простая схема типа:
local socket = require("socket")
local host = hostIP
local port = 23
local tcp = assert(socket.tcp())
tcp:connect(host, port)
---
while tcp do
local res, err = tcp:receive()
dosomething(res, err)
local command = GetComm()
tcp:send(command..'\r\n')
end
И вот тут возникает засада ((
Пока сообщения идут с маленьким перерывам, всё ок. А как только перерыв между сообщениями увеличивается до нескольких минут, всё, ждём пока что-либо не будет принято...
Подскажите, плз, какие есть способы преодолеть это?
🐅🤦♂️
Здравствуйте, коллеги!
Начинаю изучать применение lua в различных железках ))
Прошу помощи в правильной организации telnet-соединения!!
Суть в чём, две железки должны общаться передавая короткие команды раз в 10..15 минут. Помимо сообщений о текущем состоянии необходимо изредка (40..60 сек) отправлять дополнительные запросы.
Напрашивается простая схема типа:
local socket = require("socket")
local host = hostIP
local port = 23
local tcp = assert(socket.tcp())
tcp:connect(host, port)
---
while tcp do
local res, err = tcp:receive()
dosomething(res, err)
local command = GetComm()
tcp:send(command..'\r\n')
end
И вот тут возникает засада ((
Пока сообщения идут с маленьким перерывам, всё ок. А как только перерыв между сообщениями увеличивается до нескольких минут, всё, ждём пока что-либо не будет принято...
Подскажите, плз, какие есть способы преодолеть это?
Вам для начала нужно выставлять тайм-аут сокета при получении данных. Начните с документации luasocket на settimeout. А потом менять цикл обработки.
A
Snusmumriken
Здравствуйте, коллеги!
Начинаю изучать применение lua в различных железках ))
Прошу помощи в правильной организации telnet-соединения!!
Суть в чём, две железки должны общаться передавая короткие команды раз в 10..15 минут. Помимо сообщений о текущем состоянии необходимо изредка (40..60 сек) отправлять дополнительные запросы.
Напрашивается простая схема типа:
local socket = require("socket")
local host = hostIP
local port = 23
local tcp = assert(socket.tcp())
tcp:connect(host, port)
---
while tcp do
local res, err = tcp:receive()
dosomething(res, err)
local command = GetComm()
tcp:send(command..'\r\n')
end
И вот тут возникает засада ((
Пока сообщения идут с маленьким перерывам, всё ок. А как только перерыв между сообщениями увеличивается до нескольких минут, всё, ждём пока что-либо не будет принято...
Подскажите, плз, какие есть способы преодолеть это?
Сокет работает в двух режимах: с бесконечной блокировкой и с таймаутом.
С блокировкой - сокет блокирует соединение пока не примет что-нибудь, и tcp:receive() без аргументов ждёт разрыва соединения. Чтобы принять строку с разделителем \r\n — используй tcp:receive("*l").
Второй вариант — сокеты с таймаутом, там если ничего не пришло по таймеру — соединение отпускает, и может идти дальше, например проверять другие соединения.
Snusmumriken
А статус соединения лежит как раз в err при receive, если оно прекращено — напишет не timeout а closed.
A
Спасибо!!
Сейчас попробую ))
Snusmumriken
Пробовал так:
...
tcp:connect(host, port)
tcp:settimeout(5)
...
После этого соединение рвётся.
local socket = require("socket")
local host = hostIP
local port = 23
local tcp = assert(socket.tcp())
tcp:settimeout(0)
local status = tcp:connect(host, port)
---
while status ~= 'closed' do
-- команды telnet однострочные,
-- поэтому "*l", т.е. line
local data
data, status = tcp:receive("*l")
if data then
dosomething(data, status)
end
local command = GetComm()
if command then
tcp:send(command..'\r\n')
end
socket.sleep(0.03)
end
Snusmumriken
Собственно
https://w3.impa.br/~diego/software/luasocket/tcp.html#receive
A
🙏
Snusmumriken
Ну вот теперь оно не блокирует и в цикле сначала спрашивает: "А пришла команда снаружи? Нет? Ну я другим займусь", а ещё спрашивает себя "а надо ли команду отправить?" и если да — отправляет. Ну и вот.
Snusmumriken
И примерно то же самое должно быть на сервере, только там крайне желательно менеджерить сразу много соединений параллельно подобным же образом. Сервер вполне себе тянет несколько (десятков) тысяч одновременно подключённых клиентов.
A
LISP
Alxius
О, так это ты её делал!
так давно уже. ) теперь только патчи и обновления и графика добавляются ) . Кстати ищу человека который может в блендере пару монстров или героя нарисовать лучше чем то что имеется. примерно на 1000 рублей рассчитываю нужно иметь ввиду что в игре из рендерера хотя я его сохраню получится только спрайт 64х64 или в лучшем случае если обновлю движок 128х128
LISP
Alxius
изначально пиксельные хуже тем что в будущем я могу из три-д модели сделать любые.
Alxius
плюс в будущем вдруг я захочу реально 3д-ные модели использовать
Alxius
в таком случае файлы в формате блендера в багажнике пригодятся. хотя не факт что так будет но это возможно
Alxius
просто если у тебя етсь модель можно как 8 кадров сделать так и 24 по 64х64. каждый кадр
Alxius
и анимация будет плавнее
LISP
Alxius
а если нарисовано по пикселю - не будет никаких промежуточных кадров
Alxius
да. потому в игру рендерятся спрайты
Alxius
насколько я знаю в Лове кое-какие 3д фичи уже имеются.
Luсky
LISP
А я вот своей игре даже стилистику не придумал(
Alxius
цена за модель или за комплект?
Цена за модель и все нужные сделанные скриншоты с нужных ракурсов ). И.к блендер у меня файлы не открывает с новой версии потому что в убунту считают что блендер должен быть старый
Alxius
Я думаю нажатие принт скрин никогда сложным не было )
Luсky
я переслал моделлеру
Luсky
мой гонорар за посредничество 7% от суммы сделки. С каждого.
Alxius
спасибо =)) посмотрим, в прошлый раз мне 2 спрайта за 100 рублей сделали , на анимацию так и не договорились
Alxius
выяснилось что девушка не умеет рисовать технику. только людей и арты - зато отлично
Lurk
Всем доброго утра! А в Lua брэйкать из циклов только можно?)
Snusmumriken
ㅤ
Snusmumriken
Осуждаю
Lurk
ㅤ
Осуждаю
та за шо, перегоришь же ж без брейков
ㅤ
ㅤ
ну не знаю)опыт только 1 год
ㅤ
ну я и не в луа)
ㅤ
луа так частично использую
Vladislav