Чет мне взбрело в голову накатать свой крутой двиган-убийцу этого, кто он там... Юнити, я уже нахерачил полмегабайта классов на С++ и теперь в состоянии вывести на экран пиксель, теперь, чтобы написать все остальное мне в двигле нужен скриптовый язык. Ничтоже сумняшеся я начал было как обычно ковырять свой собственный парсер с объектами и коллбэками, но что-то меня остановило, и я подумал, что плодить свои диалекты недоязыков это too mainstream и не подходит к моей клетчатой рубашке и бумажному стаканчику от латтэ из старбакса который я бережно храню, так как в моих пердях оный является лютым дефицитом. Посему я решил впендюрить в свой шедевр инженерной мысли LUA, так как это олдскульно, восьмибитно и пиксельно. Мануал на сайте я читаю, но он в основном написан про сам язык, без отсылки в best practices или хоть каким-нибудь пошаговым туториалам типа "пишем свой клиент к world of warkraft за 15 простых уроков". Это стремно. Посему вопрос - где можно почитать про использование этого поделия в других поделиях, а то там в мануале в первых двух страницах нет подзаголовка "если вы пишете прогу на объектах с использованием SDL2 и хотите использовать наш парсер для всего кроме вывода на экран пикселей, то вам сюда" (и что-то мне подсказывает, что его вообще нет), а дальше я не читал, так как меня выгнали из антикафе, а какой я нахрен инди-разработчик, если я не в антикафе сижу?
>>13038 >LUA >олдскульно, восьмибитно и пиксельно. шта Есть официальная Programming in Lua (PiL). Мне, правда, абсолютно не понравилась, да и ничего нового не узнал.
>>13039 >шта Луа довольно говно мамонта. >Есть официальная Programming in Lua (PiL) Там про сам язык. Причем слишком подробно, камудто кто-то собирается на луе писать драйвера. А нужен туториал\руководство о том как делать "правильно" в конкретной задаче. Case-studies, так сказать. Типа вот хотите вы замутить гуи к своему прожекту, давайте создадим программу на Це, подключим такие и такие либы так то сканпилем и прочее. Завместо этого полотра абзаца про то, что мол можно забиндеть функцию и она будет вызываться из вашего скрипта при помощи нашего интерпритатора. Как будто, блядь, я сам не могу составить таблицу биндингов и парсить аргументы. Я был весьма удивлен, когда не нашел на сайте библиотечки примеров того как я могу ее использовать в своей программе, зато вместо этого какие-то невнятные описания операторов, мутные загоны про то, какой луа крутой язык и как на нем можно написать свою ось. Это вызывает некий когнитивный диссонанс.
https://www.google.com/search?q=embedding+lua Не благодари.
Я короч поковырял ЛУУ и увидел следующую тему - С++ интегрируется с ЛУА очень хуево, так как обратный биндинг (т.е. возможность вызвать из LUA скрипта метод объекта) отсутствует. Все "обертки" какие я нашел по большому счету неюзабельны. Ну, всмысле того, что С++ превращается с помощью этих "биндингов" в С. Вся "объектность" идет по пизде.
>так как обратный биндинг (т.е. возможность вызвать из LUA скрипта метод объекта) отсутствует Почему?
>>13740 Для биндинга "из луа" требуется чтобы функция имела статический адрес, для метода объекта такая фича не работает (ну, как не работает - при ее использовании он превращается из метода в статическую функцию, с потерей всех "объектных" плюшек, в частности указатель this в ней становится недоступен, так как функция по факту выпихивается из объекта в глобальное адресное пространство исполняемого файла). Я сделал кривой воркэраунд данной проблемы путем создания специальной функции-обертки, внутри которой вызвается метод объекта (сам объект тоже пришлось вынести в глобальную область видимости).
>>13741 А мог бы просто протащить свой this через луа код. Но вообще говоря, объектодети должны страдать.
>>13742 >протащить свой this через луа код Пиздец извращение. Проще всего было бы все на С писать изначально. Но это не труъ.
>>13744 >Пиздец извращение. Ну да. Стандартное ООП извращение.
>с потерей всех "объектных" плюшек Я не понял, что хочет оп. Какие вообще объектные си++ плюшки могут быть после конпеляции? Ну вот даже если сам луа в расчёт не брать. Как я понимаю, интерпретатор же просто берёт и вызывает функцию, имплементированную в бинарнике, без всяких излишеств? Все данные, которые нужно уже представить в виде объектов в скриптовом файле, ты уже делаешь непосредственно в скриптовом языке, ведь так? А все плюшки ооп в си++ используются только при непосредственном написании кода на си++, нэ? Ведь так логично? *непрограммаст мимо пробегал*
>>13748 Я тебе больше скажу - первые поделия Страуструпа вообще транслировали код этого языка в код на чистом Си, который затем отлаживался и компилировался.
>>13836 >Страус-трупа
- wahaba + wakaba 3.0.9 + futaba + futallaby -