Михаил Генин

Михаил ГенинЭкзотические языки программирования - LSL (Часть 1)

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

 

 

Для начала небольшое отступление. Язык LSL, он же LindenScriptLanguage, используется  в клиенте виртуального мира SecondLife.

 

Однажды наигравшись в Lineage2, R2 и прочие RFOnline, я попал в мир SecondLife. Нет, это не игра, это именно виртуальный мир, где помимо прочего есть игры. Там нет сюжета, уровней, квестов, цели и правил. Там вообще ничего нет. Изначально это пустая земля с физическим движком, <s>игроками</s> персонажами, встроенным 3D-редактором и языком скриптов. Все то, что есть внутри, построили сами игроки. И, надо сказать, построили они очень и очень много, территория просто гигантская. В этом мире в общем-то нет никакой цели, вы вольны делать все, что угодно, и быть кем угодно. Также есть внутренняя виртуальная валюта, которая привязана к курсу доллара, и разрешается ее как вводить, так и выводить через внутреннюю биржу валюты. 

 

Разумеется, раз создавать мир нужно изнутри, то там должен быть 3D-редактор и язык программирования. Это все есть, довольно примитивный встроенный 3D-редактор (хотя сейчас есть возможность напрямую выгружать объекты из 3D-Studio, Maya, Blenderи т.д.) и язык программирования под названием LSL.

 

LSL – скриптовый язык программирования. По своей парадигме относится к событийно-ориентированному программированию и, как следствие, к автоматному программированию, реализована машина состояний. По базовому синтаксису наиболее близок к C#.

 

Итак, начнем с традиции.

default  //состояние
{
            state_entry()  //событие
            {
                        llSay(0,”Hello, World!”);
            }
}

 

LSLотвечает практически за весь интерактив между миром SecondLife (объекты), персонажами и реальным миром (внешние HTTP-запросы, e-mail, XML-RPC). Использован скриптовый движок MONO. Под один скрипт выделяется аж целых 64 KB памяти J. Однако любой объект может содержать большое количество скриптов, а благодаря взаимодействию между скриптами такие жесткие ограничения памяти практически не ощущаются. В языке на данный момент около 370 функций и 34 события.

 

Я время от времени пишу на LSLуже 4 года. Большой частью, так сказать, «Just for Fun», для расширения кругозора. Хотя раньше и бывали серьезные заказы под LSL, за которые платили реальные деньги. Ну и плюс небольшой магазинчик внутри Second Life приносил небольшие доходы.

 

Надеюсь, я вас не утомил. 

 

Комментарии

  1. Расскажи немного про заказы - что просили сделать? Может быть скриншоты где-то у тебя остались?

    А что в магазине продавал )?

  2. кончено все осталось, я так понимаю это лучше сделать отдельным постом...

  3. Думаю, что да. Лично я бы с удовольствием посмотрел на несколько скриншотов. Кроме того, и на фрагменты кода любопытно взглянуть.

  4. ок, сделаю