Как стать автором
Обновить
14.1

Lua *

Скриптовый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Что такое Lua: почему стоит его попробовать и как встроить в программу на Go

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров5.4K

Lua — это лёгкий, быстрый и гибкий скриптовый язык, который появился в 1993 году. Он написан на C и чаще всего используется не как самостоятельный язык, а как встраиваемый инструмент для других приложений.

Если вы играли в World of Warcraft и устанавливали аддоны, вы уже сталкивались с Lua. Redis исполняет Lua-скрипты внутри себя. Lua используется в Nginx через модуль ngx_http_lua_module, который позволяет писать обработчики HTTP-запросов. В NeoVim плагины тоже можно писать на Lua. Короче говоря — язык не из популярных топов, но крайне полезен и встраиваем во многие инфраструктурные решения.

Я опишу главные особенности языка и приведу небольшой пример использования из Go.

Читать далее

Новости

Пишем игру на LUA для часов Xiaomi Redmi Watch 4.Часть 1. Знакомство с экосистемой Xiaomi

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.5K

Всем привет, меня зовут Алексей Ляховский, я на протяжение последних 10 лет занимаюсь изучением, разработкой и развитием экосистемы часов Xiaomi для глобального сообщества.

Я разобрал формат циферблатов Xiaomi последних поколений, сделал распаковщик циферблатов, и компилятор их для оригинального старого редактора циферблатов Xiaomi, сделал мод MiFitness, где активные пользователи сообщества создают и публикуют кастом циферблаты для часов, собрал из китайского IDE отдельный автономный эмулятор часов, для проверки циферблатов и приложений, модифицирую и дорабатываю оригинальные прошивки часов, а так же создаю приложения для данных моделей на JerryScript и LUA, о чем мы познакомимся подробнее чуть позже на примере данной игры.

Читать далее

Недопонятый язык Lua

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров35K

Lua — один из моих любимых языков программирования. Я использовал его для создания CMS на своём старом учебном сайте, для создания крутых IoT-устройств, для разработки мини-игр и экспериментов с децентрализацией сети. Однако экспертом по этому языку я нисколько себя не считаю. Разве что просто разбирающимся в нём пользователем. Я имею в виду, что работал с ним в различных контекстах и на протяжении многих лет, но не вникал глубоко в его реализацию или экосистему.

Так что меня немного расстраивает, когда я читаю о нём статьи и посты, в которых сквозит абсолютным непониманием сути и контекста применения этого языка. Чаще всего такие статьи выглядят как набор неких требований. Из последних могу вспомнить пост на LWN, где автор жаловался на «недокомплект» Lua, и обсуждение этого поста на Hacker News, которое побудило меня написать встречную статью, чтобы ответить на некоторые прозвучавшие в нём комментарии.
Читать дальше →

Lua в Nginx: динамическая маршрутизация запросов

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.5K

Привет, Хабр!

Сегодня рассмотрим, как использовать Lua в Nginx: динамическую маршрутизацию, балансировку трафика, подмену заголовков и трансформацию тела запроса в реальном времени. OpenResty и lua-nginx-module позволяют перенести часть логики на уровень веб-сервера, сокращая задержки и повышая гибкость.

Читать далее

Истории

Lua-скриптинг в mpv-плеере

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.1K

Недавно у меня возникла необходимость непременно вырезать фрагмент из видео без перекодирования, и, разочаровавшись в очередной раз в LosslessCut, я отправился искать альтернативы.

На Reddit-е я наткнулся на пост, где утверждалось, что для этого можно использовать скрипт mpv-cut, который работает без внешнего графического интерфейса и дополнительных программ.

При ближайшем рассмотрении mpv-cut оказался скриптом на lua, который позволял вырезать кусок из видео прямо в процессе просмотра в плеере mpv. Я как-то не предполагал, что mpv-плеер при всей своей минималистичности поддерживает скрипты, которые позволяют расширять его функциональность. И решил это дело тщательно разъяснить.

Читать далее

Я попробовал написать Dota 2 и Plants Vs Zombies в качестве мода для GTA San Andreas на Lua и вот что из этого вышло

Уровень сложностиПростой
Время на прочтение25 мин
Количество просмотров9.8K

Привет, меня зовут Дима, у меня есть совсем немного опыта разработки на Go, JavaScript и TypeScript, весь этот опыт был получен в очень маленьких личных проектах, однако у меня есть опыт разработки скриптов для GTA San Andreas и я решил попробовать написать свои пародии на популярные игры Dota 2 и Plants Vs Zombies в качестве мода для GTA:SA на языке Lua. Для разработки я использовал MoonLoader API и mimgui ("порт" Dear ImGui на Lua).

Читать далее

Создание прототипов игр на LÖVE

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4.1K

Одна из моих целей на 2025 год — создание завершённой игры. Завершённой, то есть её можно будет купить в Steam или App Store за $2,99 или около того. Я уже делал маленькие игры, но завершение и выпуск игры, вероятно, будет самым крупным моим проектом (если не считать блога).

В зимние каникулы я какое-то время писал прототипы игр на LÖVE — фреймворке для создания 2D-игр на Lua. Таким образом я хотел изучить инструменты разработки игр, подходящие к моему набору навыков, и определить свои сильные стороны, чтобы в 2025 году распоряжаться временем эффективно.

До работы над этими прототипами я написал примерно двести строк кода на Lua, но у меня не возникло никаких проблем в освоении нужного мне синтаксиса.

Оказалось, что API LÖVE простой и мощный. Одно из преимуществ использования фреймворка вместо игрового движка в том, что я могу показать вам полный пример всего в десяти строках кода (в отличие от игрового движка, где пришлось бы определять объекты сцены, прикреплять скрипты и так далее).

Читать далее

Как спроектировать игровую математическую модель, забалансить её и не сдуреть. Разбор на практических кейсах

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров18K

Мы идём от общего к частному. Задаём системе вопросы на самом общем уровне и постепенно углубляемся в детализацию. Если на какой-то вопрос мы не смогли ответить, значит, скорее всего, мы пропустили какой-то более общий вопрос, от которого зависит рассматривая ступень детализации, в этом случае не стесняемся вернуться на один или несколько уровней абстракции назад.

Читать далее

Как использовать http внутри Minecraft?

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров6K

Недавно, скучая после безумно скучного учебного дня и бездумно листая главную страницу моего любимого видеохостинга в поисках чего-нибудь интересного, мне попалось одно любопытное видео, сподвигшее к созданию невероятного.

Как можно видеть с самого видео, человек, нажимая на кнопку в Майнкрафте, включает у себя лампу в реальной жизни. Круто! Но как это работает?

Читать далее

Курс Roblox в 8–9 лет и старше: моделирование и программирование

Время на прочтение6 мин
Количество просмотров2K

Roblox и Roblox Studio – примечательная связка: благодаря данным средам и инструментам, доступным в них, даже младшие школьники могут научиться создавать первые простые игры и модели, а также писать код на языке Lua. Можно начать на курсах или отдать предпочтение бесплатным занятиям по видеоурокам: выбор за ребенком и его родителями. А мы хотим предложить импровизированный курс из 30 видеоуроков.

Мы в Pixel используем Roblox и Roblox Studio для обучения детей кодингу на языке «Луа», моделированию и созданию игр. Такой подход оправдан: условная вселенная Роблокса разработана в первую очередь для детей и подростков, увлекающихся геймингом и информационными технологиями.

Предлагаем рассмотреть импровизированный курс, состоящий из обучающих видеоуроков. Они посвящены Роблоксу и предназначены для детей 8–9 лет и старше. Но начнем с теории и опишем обозначенные инструменты: это поможет разобраться в основах, если нет их понимания.

Читать далее

Как сделать Game Pass в Roblox Studio (геймпасс в Роблокс) – урок для детей

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.5K

Как создать геймпасс в Роблокс Студио? Предлагаем пошаговую инструкцию со скриншотами: она поможет разобраться. Предстоит выполнить несколько несложных действий: они приведут к результату в виде готового gamepass. Урок предназначен для детей и подростков.

Мы используем инструменты Roblox и Roblox Studio для обучения детей моделированию и программированию. Это онлайн-платформа для создания игр и игровой движок, предназначенные специально для детей и подростков. Но данные среды используются даже взрослыми: аудитория разработчиков и игроков по возрастной характеристике разнообразна, а по количеству превышает десятки млн человек (данные об активности в среднесуточном выражении).

Сегодня хотим предложить читателям бесплатный урок создания геймпасс в Роблоксе. Данный термин обозначает условный игровой пропуск, который можно будет продавать за робаксы (внутренняя валюта) и использовать для доступа к запретным картам, зонам, предметам и не только.

Наши преподаватели сделали простую и подробную инструкцию с описанием основных шагов и скриншотами: разобраться сможет даже новичок. В конце прикрепили обучающий видеоролик: он пригодится, если разобраться в текстовом руководстве не получится.

Читать далее

Как создать страшный лифт в Роблокс — обучение для школьников

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.9K

В Roblox Studio дети могут создавать 3D-игры различных жанров. Один из самых популярных режимов — хорроры: комнаты испытаний, страшные лабиринты, тауэры, ловушки и другие ужастики. В этой инструкции мы хотим рассказать, как создать карту с опасным лифтом.

Данная игра представляет собой набор страшных уровней, между которыми игрок перемещается на лифте. Пользователю на нашей карте предстоит собирать предметы, которые будут добавлять ему очки счета, и ключи, которые будут открывать лифт на новые локации. Давайте научимся делать лифт и необходимые для игры предметы.

Читать далее

Программирование для подростков: выбор направления и советы преподавателей

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4.2K

Подростковый возраст – идеальное время для обучения детей чему-то новому. Кодинг не стоит считать исключением. Есть несколько подходящих и относительно простых языков и вспомогательных сред: Скретч и Роблокс, Python, в том числе в связке с Minecraft, C# и JavaScript. Разбираемся, с чего стоит начать.

Мы твердо уверены в следующем: если ребенку нравится играть в компьютерные игры, в том числе онлайн, то это не повод для ограничений, а основа развития ценных навыков. Нужно подтолкнуть школьника к тому, чтобы начать программировать: достаточно показать, скажем, что тот же «Питон» может применяться для моддинга в Майнкрафте, а C# – для создания игр на кроссплатформенном движке Unity. Но это лишь примеры.

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

Читать далее

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
22 апреля
VK Видео Meetup 2025
МоскваОнлайн
23 апреля
Meetup DevOps 43Tech
Санкт-ПетербургОнлайн
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

Адаптация прошивки USB GPIO EXTENDER T под нужды Микротик

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров1.5K
Недавно я писал статью про модуль USB GPIO EXTENDER компании «Открытые разработки», где было отмечено, что прошивка этой версии модуля не поддерживает формат AT-команд для /ppp-client at-chat Роутер ОС Микротик, поэтому отправить команды модулю можно, а получить ответ нельзя. Это даёт возможность управления выходными линиями GPIO, но не позволяет использовать входные линии. Хочу немного дополнить предыдущую статью описанием другой, программируемой версии модуля USB GPIO EXTENDER T (TOIC), выполненной на темно-синей плате в отличии от непрограммируемой версии (а может такая попалась мне), которая содержит встроенный язык программирования TOIC, а компания поставляет среду разработки и прошивки скрипта в модуль для этого языка. Версия с TOIC поставляется с демонстрационными скриптами Demo1 и Demo2 доступными на сайте разработчика. Demo 1 практически аналогичен прошивке непрограммируемого USB GPIO EXTENDER (5 линий OUT, 4 линии IN). Demo 2 (под спойлером) поддерживает не только GPIO линии ввода/вывода, но и ADC, PWM и SPI.
Читать дальше →

Как создать игру Tycoon (Тайкон) в Roblox – туториал для детей

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.7K

Хотите создать собственный экономический симулятор в Роблоксе и написать для него код на Lua? Тогда пригодится сегодняшняя пошаговая инструкция. Предлагаем ознакомиться с ней, чтобы разобраться, как сделать игру «Тайкун» в Roblox. Урок предназначен для детей от 8-9 лет и старше.

Tycoon game, или economic simulation game (ESG) – жанр компьютерных игр, основанных на строительстве, управлении и отображении сопутствующих экономических процессов. Цель игрока в данном смысле – получение виртуальных денежных средств. Одна из смежных задач – управление условным предприятием, функционирующим в сценарии, максимально приближенным к реальности.

В этом уроке мы будем строить, писать код и делать другие увлекательные вещи. Для создания Tycoon нам потребуется использовать инструменты Roblox и Роблокс Студио, а также язык программирования «Луа» для скриптинга. Сначала предложим текстовую инструкцию с подробными пояснениями и наглядными скриншотами, чтобы разбираться было проще, а в конце приложим обучающее видео: его просмотр поможет справиться с задачей, если туториал в виде текста покажется сложным.

Читать далее

Как создать игру PUBG: Battlegrounds в Roblox (ПАБГ) – 12 уроков

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров2K

Предлагаем разобраться, как сделать ПАБГ в Роблоксе. Это популярная игра в жанре батл рояль (battle royale), в которую любят играть современные дети и подростки. Если вы в их числе, изучите представленную бесплатную инструкцию и видео: они помогут понять, как сделать клон PUBG в Roblox.

Мы пройдем весь путь от создания ландшафта до моделирования различных объектов (ангара, вышек, домов, гаража, внутренней части самолета и т. д.) и оформления дополнительных карт. Поделимся скриптами на Lua для таблицы игроков, телепорта, прыжка с парашютом, перемещения между картами, открытия и закрытия дверей, брони и т. д.

Сразу отметим, что текстовый гайд сложно воспринимать без минимальных знаний и опыта, но переживать не стоит: в каждом разделе есть ролик с подробными пояснениями от преподавателя. Благодаря им создание Battlegrounds в Роблоксе можно заметно упростить. Также подчеркнем, что работать быстро не удастся: каждый новый шаг потребует усидчивости и вдумчивости.

А теперь предлагаем приступить к сути без лишних отступлений.

Читать далее

Тестовое задание от гейм-студии (matchmaking, разбор)

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.5K

На это задание я наткнулся в процессе недавнего поиска работы - компания занимающаяся разработкой игр (по-моему, Lesta Games) предлагала его выполнить до отклика на HH. То есть "присылайте отклик вместе со ссылкой на ваше решение" или в этом духе. А я обожаю тестовые задания - такой шанс быстро напедалить с нуля какой-то код и потом спокойно про него забыть :) Здесь задачка была сформулирована не слишком конкретно - мне такие кажутся скорее "поводом поговорить" - поэтому любопытно обсудить подобный кейс с сообществом, знатоками и сочувствующими. Речь шла про позицию Go-разработчика - но задание достаточно language-agnostic - так что читайте смело!

Итак, Задача!

Как сделать разрушение в Roblox — урок Lua для детей

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.5K

В этом уроке мы расскажем, как создать разрушаемые блоки в Роблокс. Добавим простые объекты на карту и напишем для них программы на Lua.

Roblox Studio — отличный движок для создания первых 3D-игр. Здесь дети от 9-10 лет могут научиться моделировать объекты и программировать на несложном языке Lua. В процессе можно научиться создавать как небольшие игры, так и полноценные проекты с множеством разных функций.

В этом туториале мы поделимся двумя методами создания разрушения и объясним, какой скрипт на Lua подойдет для каждого из них. Получившиеся элементы можно добавить в симулятор разрушения в Roblox или свою игру другого жанра.

Читать далее

USB GPIO EXTENDER – ещё одна возможность управления нагрузками с роутера Микротик

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров9.4K
Ранее, я писал несколько статей о возможности управления реле непосредственно из Роутер ОС Микротик таких устройств как Laurent и Rodos, а также при использовании возможностей встроенных GPIO RB Mikrotik 33G. Многие считают это не нужным или не дооценивают, а зря, так как это весьма полезный функционал, например, для перезагрузки зависшего сетевого оборудования, включения дополнительного оборудования или аппаратной защиты ПК, NAS и др. непосредственно с роутера.

Недавно, я нашёл в Интернет отечественную компанию «Открытые разработки» и её продукт USB GPIO EXTENDER – маленькое и симпатичное устройство для USB-порта, имеющее «на борту» 10 цифровых линий: 5 линий ввода и 5 линий вывода.

image
Рис 1. USB GPIO EXTENDER
Читать дальше →

Как создать простую игру в Roblox — туториал по Garten of BanBan 2 для детей

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.4K

Garten of BanBan 2 — это популярная видеоигра в которой игроку предстоит исследовать жуткие и пустынные помещения детского сада и решать множество головоломок, встречая на своем пути обитателей данной игры.

В этом материале мы создадим карту по мотивам игры Garten of BanBan 2 в Roblox и напишем скрипт на языке программирования Lua. Урок простой и не займет много времени, однако если вы еще совсем не знакомы с движком Roblox Studio, можете посмотреть пошаговые уроки, которые знакомят с интерфейсом и основными функциями программы. 

Ниже в материале есть видеоинструкция, если такой формат вам удобнее для восприятия (в ролике понятнее показано моделирование объектов).

Читать далее
1
23 ...