Desenvolvimento - LSL (Second Life)

Curso de programação de objetos para o Second Life – Parte 1

Descubra neste curso como é feita a programação de objetos para o simulador virtual Second Life, que a cada dia vem atraindo mais empresas e usuários. Nesta primeira parte, você aprenderá como criar e editar scripts em LSL usando as ferramentas oferecidas pelo próprio cliente do SL.

por Cláudio Ralha



Nos últimos 12 meses, o simulador virtual Second Life vem se tornando uma febre mundial, não só pela divulgação da mídia, mas pela série de atrativos que reúne, sendo muito superior a soma das funcionalidades encontradas em navegadores Web e mensageiros instantâneos. O Second Life não é um jogo, pois não há um objetivo a ser atendido e sim um simulador que pode ser usado para os mais diversos fins (de estudo, passando por festas e planejamento de viagens até prática de sexo) e funciona como um misto de ferramenta de teleconferência e rede de relacionamentos.

O projeto que ganhou vida em 2004, ficou restrito aos Estados Unidos até o início de 2006, quando então passou a aceitar usuários dos demais países. Já existem hoje mais de 8,5 milhões de usuários cadastrados, dentre os quais um grande número de brasileiros. Assim como ocorreu com o Orkut, já ocupamos o terceiro lugar em número de residentes, atrás apenas dos Estados Unidos e Alemanha.

É interessante notar que não foi só nas graças do usuário comum que o SL caiu. As grandes empresas de várias áreas estão construindo ilhas dentro do metaverso (como é conhecido o mundo virtual). Lá você não encontrará apenas empresas da área de informática como IBM, Sun, Dell e a própria Microsoft, mas fabricantes de refrigerantes como a Coca-cola, de veículos como a Toyota, de produtos de telefonia como Nokia e artigos esportivos como a Adidas, empresas da área de petróleo como a Petrobras, empresas de transportes aéreos como TAM, emissoras de televisão como a Rede Globo, entre tantas outras. A visibilidade da marca dentro deste espaço é vista como de grande importância, pois se trata de um público mais selecionado e exigente do que aquele que encontramos em outros aplicativos de massa, até mesmo pelas exigências de Hardware. Sabendo da importância de marcar presença, empresas como a Microsoft já criaram uma ilha especialmente para promover o Visual Studio e o Imagine Cup. Já a Rede Globo, fez o lançamento da novela “Os Sete Pecados” em uma festa para mais de 900 convidados que tive o prazer de participar.

Foto da entrada do Estúdio onde estava acontecendo uma promoção, algo bastante comum no Second Life

Por trás de tudo o que você vê no SL está a mão dos próprios residentes, responsáveis pela criação de mais de 95% do que existe hoje no metaverso. Há um grande mercado que está se abrindo e que exigirá mão de obra qualificada tanto para criar prédios, objetos, peças de vestuário e até poses, tarefa adequada para o designers gráficos, quanto para os desenvolvedores que implementarão funcionalidades que vão desde uma porta se abrindo, passando por um elevador, uma tela de cinema, um avião, uma lancha, etc. Afinal, após moldarmos o barro precisamos dar o “sopro da vida” e este em termos técnicos se traduz em scripts e mais scripts incluídos em nossos objetos.

No presente curso que iniciaremos agora, iremos focar na programação de scripts para objetos criados no Second Life. A criação de objetos em si será vista em um curso a parte, de modo a atender os diferentes públicos.

Se você ainda não experimentou como é ter uma segunda vida e deseja conhecer o Second Life, visite:

http://www.mainlandbrasil.com.br/index.aspx

Faça o seu cadastro, baixe o client que está disponível para Windows, Mac e Linux e divirta-se!

Página principa do Second Life Brasil

O que é preciso para programar?

A programação de objetos no SL é feita através da linguagem LSL, acrônimo para Linden Script Language, uma linguagem derivada do C, que será portanto familiar para todos que tem experiência prévia com linguagens como C#, Java,C++ ou Javascript.

A maioria dos programadores utiliza o próprio client do Second Life para desenvolver, ainda que seu editor seja bastante limitado. A falta de recursos mais sofisticados como um intellisense será sentido especialmente pelos profissionais acostumados com ferramentas como o Visual Studio ou Eclipse. Como alternativa ao editor interno do cliente SL, você poderá utilizar um editor como o Notepad++, que apresenta sintaxe colorida para LSL. Neste curso, utilizaremos o próprio editor do client.

Criando um objeto simples

Como muitos dos interessados em aprender a programar em LSL, jamais criaram um objeto no SL vamos mostrar como criar um objeto bem simples. Note que você só poderá criá-lo em um terreno de sua propriedade, no caso de você ser um usuário Premium (que paga pelo serviço) ou em áreas onde a criação de objetos é permitida pelo proprietário do terreno. Para aqueles que não tem nenhum lugar de preferência, sugiro o Natoma, cujas coordenadas para teleport são as seguintes: Natoma (56,51,26).

Encontre uma área livre no terreno para iniciar os seus testes. Execute os seguintes passos:

1. Tecle Ctrl + 4 para abrir a janela de criação e edição diretamente na opção de criação de objetos.

2. Observe as figuras presentes nesta guia. Elas são conhecidas como primitivas ou simplesmente prims. Através da edição das propriedades destas formas e do seu uso combinado é que montamos objetos e construções. Para atingirmos os objetivos desta primeira parte do curso, bastará que você selecione a esfera e a seguir clique em uma parte livre da tela.

Você irá perceber a presença de setas e linhas que usamos para posicionar o objeto. Na guia Editar, há uma série de outras ferramentas sobre as quais falaremos no curso de criação de objetos. Por ora, basta saber que ao clicar na bola (estando em modo de edição de objetos) você a selecionará e ao clicar em outra parte do terreno, você a largará.

Incluindo scripts em um objeto

Agora que já temos um objeto, vejamos como incluir scripts para o mesmo:

1. Tecle Ctrl + 3 para abrir a janela de criação e edição diretamente na opção de edição de objetos. Caso já esteja com a janela aberta, simplesmente clique no botão Edit.

1. Clique no botão Mais para exibir as guias de edição.

2. Clique na guia Conteúdo. É através dessa guia que introduziremos todos os scripts que criarmos no Second Life.

3. Clique no botão Novo Script. Você verá que surgirá na tela uma mensagem “Hello Avatar!” e na janela, dentro da pasta Contents uma entrada nomeada como New Script.

4. Efetue um duplo clique sobre a mesma para editar o código do script. A janela de edição de scripts será carregada. Veja:

É através desta janela que faremos a edição do script. Note que por default já é criado um código inicial do tipo “Hello World” para usarmos como ponto de partida. Por enquanto, não se preocupe em entender a est rutura deste exemplo, pois trataremos desse assunto mais adiante. Perceba apenas que usamos o método llSay para fazer com que o objeto exiba uma mensagem sempre que for tocado e ao ser iniciado. Os métodos e funções criados pela Linden Labs iniciam sempre pelo prefixo “ll”, o que facilita a identificação.

Após alterarmos o código, usaremos o botão Salvar para gravá-lo e executá-lo automaticamente. Como nem sempre esta ação conjunta é desejável, saiba que para apenas salvar, basta desmarcar a caixa de verificação Running. Já para fechar a caixa de edição, clique no botão X presente no alto da janela.

Nomeando os scripts criados

Fornecer um nome descritivo é uma tarefa importante especialmente para a criação de objetos mais complexos que fazem uso de vários scripts. Como vimos anteriormente, a ferramenta de criação de objetos do SL cria os scripts com o nome padrão New Script seguido de um número caso já exista um script com esse nome, o que por si só não ajuda muito. Para alterar o nome do script execute estes passos:

1. Clique com o botão direito do mouse sobre o nome do script na pasta Contents , presente na guia Conteúdo da janela de edição. No menu de contexto que será exibido, clique em Renomear para alterar o seu nome.

2. Forneça um novo nome para o mesmo e tecle Enter para efetivá-lo.

Editando scripts pré-existentes em um objeto

Como poucas coisas na vida ficam prontas na primeira tentativa, com freqüência precisaremos voltar a editar um script de um objeto, seja para aperfeiçoá-lo, para corrigir falhas ou simplesmente para alterar um texto. Isto pode ser feito a qualquer tempo, através dos seguintes passos:

1. Clique sobre o objeto como botão direito do mouse. No menu de contexto, selecione a opção Editar.

2. A janela de edição de objetos será exibida. Clique no botão mais para exibir a parte de baixo da janela e a seguir na guia Conteúdo.

3. Efetue um duplo clique sobre o nome do script presente na pasta Contents ou clique com o botão direito do mouse sobre o script e escolha a opção Abrir no menu de contexto.

Esses são os passos necessários para incluir um script em um objeto, renomeá-lo e editá-lo a qualquer momento e que serão repetidos ao longo das próximas lições, cada vez que formos adicionar um script a um objeto que criarmos. Nos momentos oportunos apresentaremos mais detalhes sobre a janela de edição de scripts.

Nota: você irá se divertir com as poses ridículas que o avatar faz às vezes durante a criação de objetos, como a da imagem anterior.

Protegendo os direitos autorais

Um dos maiores atrativos do Second Life é o respeito da Linden Lab com relação a propriedade intelectual. O que é feito pelo usuário pertence apenas ao usuário, a menos que este queira compartilhá-lo ou vendê-lo.

Para nós desenvolvedores, isto significa que por vias normais outras pessoas não poderão copiar as nossas criações e nem os nossos scripts. Para demonstrar, vamos ilustrar o que ocorre quando tentamos editar um objeto criado por outro usuário.

Na imagem a seguir, podemos ver uma jakuzzi que não nos pertence e nem foi um objeto que tenhamos criado. Ao tentarmos editá-la, teclando Ctrl + 3 e selecionando-a a seguir, o máximo que conseguimos é visualizar a lista de scritps embutidas no objeto para criar efeitos como a da fumaça que sai da mesma.

Tal qual um arquivo zipado protegido por senha, não conseguimos ter acesso ao conteúdo de cada script. É possível, no entanto, conhecer o histórico de alterações do objeto e saber quem foi o seu criador e quem é o seu dono atual. Para tanto, basta clicar com o botão direito do mouse sobre o mesmo e selecionar no menu de pizza que surge, duas vezes a opção Mais.

Em seguida, clique na opção Inspecione. Você verá a janela a seguir, onde as informações desejadas estão disponíveis. Lembramos que no caso de objetos compostos como a jakuzzi que vimos, há várias partes independentes que foram linkadas para formar a banheira. A imagem a seguir, corresponde às informações do anel que aparece marcado em amarelo nas capturas de tela vistas anteriormente.

Conclusão

Dar vida a objetos no Second Life via scripts é algo fascinante, especialmente porque estamos lidando com um mundo em 3 dimensões, tal qual em um game. Nesta lição você aprendeu o básico sobre a edição de scripts e como fazer para que o seu objeto emita uma mensagem. Nas próximas lições, veremos em detalhes a programação por eventos usada pelo LSL, quando então poderemos fazer coisas mais úteis e interessantes e os locais que você deve conhecer para se aperfeiçoar.

Aproveitamos a oportunidade para convidá-los a fazer parte dos grupos:

  • Profissionais em Second Life
  • Profissionais de informática
  • Profissionais .NET
  • Profissionais de Infra
  • Estudantes .NET

que criamos para troca de informações da comunidade técnica brasileira. Para aqueles que escrevem livros e artigos e atuam como palestrantes Microsoft, fica aqui o convite para participar ainda dos grupos:

  • Autores .NET
  • Palestrantes Microsoft

Para entrar em contato sobre assuntos relacionados ao Second Life, utilize o email claudioralhasl@gmail.com ou mande mensagem via IM do próprio SL para ClaudioRalhaBR Writer.

Abraços e até a próxima!

Cláudio Ralha

MCP – MCAD - MCTS

Cláudio Ralha

Cláudio Ralha - http://linhadecodigo.com.br/cs2/blogs/ClaudioRalha/default.aspx
Autor dos livros Dominando o Second Life e Segredos do Visual Studio.NET, profissional certificado Microsoft (MCP,MCAD,MCTS e MCPD) e palestrante Microsoft Brasil e Culminis. Já atuou como colunista do Informática etc do Jornal O GLOBO, editor da Revista Infomania e colaborador de várias revistas e sites. No mercado corporativo já desenvolveu para grandes clientes como Petrobras, Shell, Esso, Rede Globo, Furnas, Brascan, ONS, Unibanco e Bolsa de Valores pelas consultorias Accenture, Stefanini, Arcon, ATT/PS, Informaker, Relacional, Value Team e Softtek.