very slowly and deliberately adding messaging and signals to objects using SDL's event queue. Basically tiles can send custom events with their unique id and a pointer to their animation class that gets caught by an event loop in the tilemap, which adds and removes them from a table. I just have to iterate that table and update all animations at once. Should be fine.

For some reason the tilemap is rendering random tiles though.

Should be fine.

#gamedev #luajit #sdl3

Я сделал скоростной аналог скретча(12289+ скриптов)! История разработки новичка

Я только начинаю писать код, он у меня не аккуратный и странный, я его нигде не публиковал никогда, проект писать на luaJIT love 2d, а заголовок правдивый, оно смогло запустить на одном ядре слабого ноутбука 12300 потоков в которых были блоки IF, ROTATE и WHILE TRUE и стабильные 30 fps. https://t.me/Turbo_Scratch/63 Топик в моём тгк с видео демонстрациями, там же если хотите можете протестировать мой проект, но в нём очень много багов особенно связанных с типами данных, lua не типизированный язык, в будущем эти баги я исправлю добавив разные проверки, и проект я выложил чтобы получить мнение общества. Движок я выбрал не случайно, мне понравился синтаксис lua, этот язык и библиотеку love 2d подсказала ии, на этой же библиотеке написан Pocket Up(аналог pocket code, тоже визуальное программирование), также этот язык использует байт-код и jit компиляцию что по словам ии должно сильно увеличивать скорость. Также love 2d собирается под многие платформы Windows, macos, вроде даже linux, android, ios. Читал офф сайт и нашёл упоминание игры Balatro, я эту игру до этого только раз слышал, но про что она не знаю. Писал я всё в VS Code, это очень удобный редактор кода, я на нём и другие свои проекты писал. С lua я уже был знаком, так как я уже делал игру на roblox studio, и не так давно, осенью 25 года. Я сразу хотел писать свой редактор так чтобы он работал на Windows, и собирал проекты в EXE(уже реализовано), apk и html. И чтобы отделить в будущем редактор и интерпретатор игры я разделил проект на части Main.lua - редактор, Micropaint.lua - редактор спрайтов, ну и по мелочи GameLoader.lua - загрузчик игр, BlockList.lua - список доступных блоков, не хотел его лепить в main.lua тк там 518 строк, + я туда ещё добавил функцию отрисовки блоков и удобнее когда функционал разделён на отдельные файлы.

https://habr.com/ru/articles/1018684/

#скрипты #scratch #lua #luajit #luaскриптинг #love2d #история_it #геймдев #история_создания

TurboScratch ALPHA

Альфа тестирование моего проекта! TurboScratch!

Telegram

Forza Tarantool: разработка на C для встроенного сервера приложений

Tarantool – это in-memory СУБД с открытым исходным кодом, разрабатываемая VK Cloud . Существует два способа разработки приложений для Tarantool. Как и к большинству СУБД, к Tarantool можно подключаться из внешнего приложения по TCP/IP. С этой целью для многих популярных языков программирования (включая Go, Python, C#, С++, Java и др.) разработаны соответствующие коннекторы . Это – первый способ. Кроме этого, Tarantool обладает замечательной особенностью: он позволяет запускать бизнес-логику на встроенном сервере приложений. В этом случае пользовательский код исполняется в одном адресном пространстве с данными, что обеспечивает высокое быстродействие. Это – второй способ. Если мы ведем разработку для встроенного сервера приложений Tarantool, то выбор языков программирования более ограничен. Основным языком программирования, в этом случае, является Lua. Также, часть логики может быть реализована на C/C++. Но набор доступных языков расширяется. Например, с некоторого времени, поддерживается Rust . Помимо этого, Tarantool может выполнять Wasm-приложения. Скоро код библиотеки для разработки на Wasm будет открыт. Tarantool – высокопроизводительная СУБД, часто используемая для построения highload-систем. Какой из вариантов разработки позволяет достичь максимального быстродействия (которое в таких системах будет не лишним)? В настоящей статье я хотел бы рассмотреть возможные способы вызова C-кода из Lua/LuaJIT/Tarantool (в режиме сервера приложений) и то, как это может ускорить и без того быструю СУБД.

https://habr.com/ru/companies/vktech/articles/1003846/

#tarantool #c_la #luajit #lua #highload #vk_tech #vk_data_platform #коннекторы

Forza Tarantool: разработка на C для встроенного сервера приложений

Tarantool – это in-memory СУБД с открытым исходным кодом, разрабатываемая VK Cloud . Существует два способа разработки приложений для Tarantool. Как и к большинству СУБД, к Tarantool можно...

Хабр
#dnsjit v1.5.1 released!
Fixes to DNS label handling:
- Use RFC 3597 format for unknown CLASS/TYPE
- Return root label instead of empty string
- `Label.torfc1035()` non-printable as per RFC 1035 sec. 5.1
#DNS #Toolkit #Scripting #Lua #LuaJIT #OpenSource
https://codeberg.org/DNS-OARC/dnsjit/releases/tag/v1.5.1
Release 1.5.1 - DNS-OARC/dnsjit

This patch release fixes a couple of things related to DNS labels and testing on big endian systems. tarball: https://www.dns-oarc.net/files/dnsjit/dnsjit-1.5.1.tar.gz sha256: b8cd7a4ca4133262d0dd27f26dbad840237f59a4e6c76effab4d8da7b66c2bd0 Packages are available at: https://dev.dns-oarc.net...

Codeberg.org
Deconstructing the LuaJIT Pseudo Memory Leak - OpenResty Official Blog

Defining Pseudo Memory Leak Beyond Crashes, Architectural Unpredictability Why Code Optimization Is No Longer Effective? From Passive Retention to Proactive Reclamation Enabling Memory to Breathe

Soooo, about that thing I described you all about how LuaJIT's very good at handling pure Lua code and FFI, well, I've been working on a pretty weird little experiment

I call it Gati (rename pending), it's my own attempt at building "batteries" for Lua, a Pure-FFI approach where I wrap over several of the usual C library functions and create an API for them that feels comfortable to use in a high level language.

Below are examples of a super simple HTTP server made using Gati, with a "scheduler" which allows for optional cooperative multitasking, and an example of my own filesystem API, showcasing both the usual operations and some cool sugar I thought was necessary for ergonomics

#luajit #lua #ffi #std

I like my #riscV #MilkV Jupiter board, but it's far from ready for daily #programming business.

Standard tools are missing or not working:
#VSCodium cannot be compiled, because #NodeJS dependencies have no RISC-V support.
#neovim cannot be compiled with #luajit (no RISC-V support too) so #AstroNvim and other plugins fail.
And common linux distro games fail to start due to opengl.

But #gcc, #codelite and #codeblocks are delivered by #debian and work fine.

Minimum requirements are fulfilled 👍

first time ever I use #luajit's #ffi library and I honestly don't know why did I do it with this

#lua #love2d

Фаззинг как основа эффективной разработки на примере LuaJIT

Представьте, что в основе вашего коммерческого продукта используется компонент с исходным кодом, который написан на смеси языка С и самописного ассемблера. Из-за слабой детерминированности поиск репродьюсеров сложен, а без репродьюсера мейнтейнер проекта заявляет: «Сделайте так, чтобы я про вас больше не слышал». Я расскажу, как мы построили процесс активной поддержки LuaJIT в СУБД Tarantool, сократили количество инцидентов в продакшене, сократили затраты на бэкпорт патчей из основного проекта и какую роль во всем этом сыграл фаззинг и его специфика. Команда разработки продукта полностью отвечает за весь код этого продукта, в том числе за компоненты с открытым исходным кодом от третьих лиц. К сожалению, не все мейнтейнеры проектов с открытым исходным кодом готовы сотрудничать с разработчиками или их сотрудничество ограничивается жесткими рамками, что усложняет использование этих компонентов в коммерческих продуктах. В СУБД Tarantool используется LuaJIT в качестве языкового рантайма, но в Tarantool используется не оригинальный проект, а его форк. Я расскажу, как мы прошли путь от пассивного использования кода LuaJIT к процессу поддержки форка, с которым количество инцидентов на продакшене установилось около нуля, сократились усилия по бэкпортингу патчей из основного проекта, а основной проект получил активных контрибьюторов. Я рассмотрю специфику работы с проектом исходного кода на примере LuaJIT, расскажу, как устроено тестирование в нашем форке и какую роль там играет фаззинг. Расскажу о специфике фаззинга LuaJIT и о том, каких результатов мы в этом достигли за последние два года.

https://habr.com/ru/companies/vk/articles/935100/

#tarantool #архитектура #отказоустойчивость #lua #luajit #фаззинг #vk_tech #базы_данных

Фаззинг как основа эффективной разработки на примере LuaJIT

Представьте, что в основе вашего коммерческого продукта используется компонент с исходным кодом, который написан на смеси языка С и самописного ассемблера. Из-за слабой детерминированности поиск...

Хабр