LUX ENGINE ROKU · SPEC v0.1

LuxScript

A simplicidade de uma planilha, a aparência do JavaScript e a lógica direta de uma engine visual.

FILOSOFIA

Fácil para quem cria. Barato para quem executa.

LuxScript usa poucos sinais para representar ações, eventos e regras. O editor e o compilador escondem a complexidade antes do jogo chegar ao Roku. Tudo que puder ser resolvido no editor ou no build deve chegar pronto ao runtime.

ALFABETO LUX

Os sinais da linguagem

.EscolherSeleciona uma função dentro de um grupo.
()UsarChama uma função e recebe argumentos.
,SepararSepara argumentos.
{ }ConsequênciaDefine o que acontece em um evento.
=DefinirColoca ou substitui um valor.
=+SomarAcrescenta ao valor atual.
=-RetirarRetira do valor atual.
==CompararCompara valores.

TIPOS DO MVP

Três tipos

var num vidas = 3;
var txt nome = "Jogador 1";
var boo invencivel = false;

A tipagem explícita ajuda o editor a validar e permite ao compilador gerar um runtime mais previsível.

REGRA CENTRAL

() faz. () {} reage.

audio.play_sfx("laser.wav");

input.press("OK") {
  audio.play_sfx("laser.wav");
}

ARQUITETURA ROKU

Pixels virtuais, cenas manuais e runtime enxuto

Canvas lógicoBase recomendada: 320×180. Coordenadas, colisões e câmera vivem nesse espaço.
Scene BuilderObjetos, spawn points, zonas, HUD e cenário são posicionados visualmente. O script cuida do comportamento.
TPS ≠ FPSLógica em 10, 20 ou 30 TPS. Renderização pode interpolar visualmente até 60 FPS.
Chunks + cullingA câmera mostra 100% da viewport. A hipótese inicial é manter uma área ativa de até 200% ao redor dela; chunks mais distantes dormem. O percentual final depende de benchmark.
Storage-firstJogos devem permanecer pequenos. Reutilizar tiles, paletas, índices e atlases é preferível a armazenar mapas ou frames gigantes.
Sprites compactosO formato-fonte pode usar paleta e índices. O build Roku gera bitmap/atlas pronto para evitar pintar milhares de pixels como nodes.
Mapas por tilesO mundo guarda peças e IDs de tiles, não uma imagem gigante. Isso combina naturalmente com chunks.
Compilação agressivaNomes amigáveis podem virar IDs; tipos, coordenadas iniciais, cenas e assets podem ser resolvidos antes da execução.

PIPELINE

O Roku recebe a marmita pronta

Scene Builder + LuxScript + Assets
              ↓
         Lux Compiler
              ↓
 cenas compactas + instruções + tiles + atlases
              ↓
          Roku Runtime

A mesma linguagem poderá ganhar outros targets no futuro. Roku é o primeiro alvo e define o orçamento de simplicidade, armazenamento e processamento do MVP.

PRIMEIRA PROVA DE VIDA

Snake

O primeiro jogo deve provar input, timer, movimento em grade, colisão, spawn aleatório, variável numérica, HUD, áudio e reinício de cena sem exigir uma engine complexa.

var num score = 0;

input.press("up") {
  set.angle(cobra, 270deg);
}

collision(cobra, maca) {
  score =+ 1;
  set.text(placar, score);
  object.spawn(random.area_mapa);
}

REFERÊNCIA

LuxScript → JavaScript → BrightScript

CSV

GrupoSintaxeO que fazUsoExemploJavaScriptBrightScriptStatus