Обновить
9.19

Lua *

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

Время на прочтение6 мин
Охват и читатели1.4K

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели1K
Недавно я писал статью про модуль 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 мин
Охват и читатели8.6K

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

Время на прочтение8 мин
Охват и читатели7.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.1K

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

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

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

Читать далее

Бесплатный курс по Roblox для детей 9 лет и старше: 20 уроков с нуля

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

Подготовили подборку видеоуроков по Roblox для новичков. За 20 уроков ребенок сможет познакомиться с интерфейсом программы, изучить основные функции, научиться писать небольшие скрипты на языке Lua. А также создаст несколько игр и проектов по инструкциям.

Roblox – это игровая онлайн-платформа, популярная среди детей и подростков. На ней можно создавать простые игры с помощью языка Lua: здесь ребята не только развлекаются, но и прокачивают навык разработки, а также получают умения, ценные с точки зрения написания кода.

Программировать и делать первые собственные игры на платформе «Роблокс» могут даже начинающие школьники. Курсы или самообучение? Выбор за юными геймерами и их родителями, а мы хотим рассказать об уроках Roblox для детей в формате видео: они помогут сделать первые шаги и лучше понять возможности онлайн-платформы. 

Читать далее

MikroVoice — музыкально-голосовой Микротик или как я озвучил сетевые события на роутерах

Уровень сложностиСредний
Время на прочтение26 мин
Охват и читатели5.7K


1. Введение и о том как всё начиналось (рождение идеи)

Основная задача роутера – маршрутизация сетевого трафика. Однако как мы знаем, современный роутер, кроме этого выполняет массу других «около задач», одно перечисление которых может занять эту страницу. Рост производительности и увеличение объемов памяти с одной стороны и приближение сетевых технологий к пользователю, в том числе «одомашнивание» роутеров, как отдельных устройств, с другой, нагрузило их дополнительными, и даже напрямую не связанными с основной задачей, функциями. Спорам о целесообразности этого нет конца – IT-профессионалы твердят, что роутер должен быть только роутером и больше ничем. Желания пользователей и конкуренция на рынке производителей диктуют свои правила. Разумеется, как и во всех сферах, существует «разделение» этих устройств на профессиональные, «полупрофессиональные» и так называемые «SOHO», а крупные производители с целью не только не потерять, но и наращивать рынок, как правило, поддерживают производство всех указанных типов этих девайсов.
Читать дальше →