> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zonely.gen.tr/llms.txt
> Use this file to discover all available pages before exploring further.

# Minigame Studio

> Prepare informações de jogo, código HTML, esquema e recompensas, verifique pré-visualização e console.

**Minigame Studio** abre e abre a tela **Adicionar Minigame** Pressione o botão. Informações do jogo, código, diagrama e ferramentas de teste são encontradas na mesma regulação.

Você pode preparar diferentes tipos de jogos de navegador, como quebra-cabeça, reflexo, plataforma, cartão ou arena com HTML, CSS e JavaScript. Ideia do jogo e controla a inteligência artificial **Código HTML de uma única página** Você pode pedir criação, adicionar o resultado para a visão de código do estúdio e experimentá-lo na visualização ao vivo.

Salas em tempo real, jogadores para adicionar recompensas e recompensas **Desenvolvimento** use o guia de links na guia enquanto prepara o código do jogo.

## Preencha informações do jogo

**Informações do jogo** Prepare o nome, descrição, cobertura visual e escolha ativa na aba. **Caça à Luz** Por exemplo, os jogadores coletam luzes e escapam das esferas vermelhas.

[![General information, Connection mode](https://mintcdn.com/zonely-a8cd49e7/rwMU9q3NELY6LUJe/images/panel/tools-integrations-guide-20261027/mini-oyunlar-01-pt-BR.png?fit=max\&auto=format\&n=rwMU9q3NELY6LUJe\&q=85\&s=bb90ee0f8bb0d08eccd7b59bb4036a95)](https://docs.zonely.gen.tr/images/panel/tools-integrations-guide-20261027/mini-oyunlar-01-pt-BR.png)

> [card] Informações gerais
>
> Defina o nome, descrição, cobertura visual e status ativo.

> [card] 2. Modo de conexão
>
> Servidor Público Zonely usa ponte pronta para navegar, servidor privado é uma opção diferente.

**Modo de conexão** Selecione o ambiente de trabalho da lista para o jogo.

| Casa | Usage |
| - | - |
| Zonely Public Server | Ready-to-browser working environment and game bridge. |
| Zonely Minigame Server | Your own Zonely gaming server’s working environment. |
| Private Socket.IO | Connection of your own Socket.IO server. |
| Private WebSocket | Link to your own WebSocket server. |

Preencha o endereço e as áreas de estrada abertas quando você selecionar links privados. Métodos para usar o jogo na conexão pronta **Desenvolvimento** Veja a aba.

## Adicione o código do jogo

**Códigos Minigames** Abra a visão de código da aba. Copie todos os exemplos a seguir e cole-os neste campo; HTML, CSS e JavaScript estão incluídos no mesmo código.

```html title="Caçada leve — Códigos de Minijogos" theme={"theme":"css-variables"}
<!doctype html>
<html lang="tr">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title></title>
<style>
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#090e20}
canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}
</style>
<canvas tabindex="0" aria-label="Recolha as luzes e evite os globos vermelhos."></canvas>
<script>
const c=document.querySelector('canvas'),g=c.getContext('2d');
let w,h,p,stars,foes,count,lives,mode,shield,last=0,target=null,elapsed=0;
const keys=new Set(),goal=12;
function size(){w=innerWidth;h=innerHeight;c.width=w*devicePixelRatio;c.height=h*devicePixelRatio;g.setTransform(devicePixelRatio,0,0,devicePixelRatio,0,0);reset()}
function point(){return{x:24+Math.random()*Math.max(1,w-48),y:85+Math.random()*Math.max(1,h-115)}}
function reset(){p={x:w/2,y:h/2};stars=Array.from({length:7},point);foes=Array.from({length:3},(_,i)=>({x:(i+1)*w/4,y:90,vx:65+i*15,vy:50+i*15}));count=0;lives=3;mode='play';shield=1.5;elapsed=0;target=null;keys.clear()}
function aim(e){const r=c.getBoundingClientRect();target={x:e.clientX-r.left,y:e.clientY-r.top}}
c.onpointermove=aim;
c.onpointerdown=e=>{c.focus();if(mode!=='play')reset();aim(e)};
c.onkeydown=e=>{if(['ArrowUp','ArrowDown','ArrowLeft','ArrowRight',' '].includes(e.key))e.preventDefault();if(mode!=='play'&&(e.key===' '||e.key==='Enter'))reset();keys.add(e.key.toLowerCase())};
c.onkeyup=e=>keys.delete(e.key.toLowerCase());
onblur=()=>keys.clear();onresize=size;
function ball(x,y,r,color){g.beginPath();g.arc(x,y,r,0,Math.PI*2);g.fillStyle=color;g.fill()}
function frame(t){const dt=Math.min((t-last)/1000||0,.035);last=t;elapsed+=dt;
if(mode==='play'){
 shield=Math.max(0,shield-dt);
 let dx=0,dy=0;if(keys.has('a')||keys.has('arrowleft'))dx--;if(keys.has('d')||keys.has('arrowright'))dx++;if(keys.has('w')||keys.has('arrowup'))dy--;if(keys.has('s')||keys.has('arrowdown'))dy++;
 if(dx||dy){target=null;const n=Math.hypot(dx,dy);p.x+=dx/n*280*dt;p.y+=dy/n*280*dt}
 else if(target){const x=target.x-p.x,y=target.y-p.y,n=Math.hypot(x,y),step=Math.min(n,320*dt);if(n){p.x+=x/n*step;p.y+=y/n*step}}
 p.x=Math.max(16,Math.min(w-16,p.x));p.y=Math.max(72,Math.min(h-16,p.y));
 for(let i=0;i<stars.length;i++)if(Math.hypot(p.x-stars[i].x,p.y-stars[i].y)<25){count++;stars[i]=point();if(count>=goal){mode='win';break}}
 for(const f of foes){f.x+=f.vx*dt;f.y+=f.vy*dt;if(f.x<16||f.x>w-16){f.vx*=-1;f.x=Math.max(16,Math.min(w-16,f.x))}if(f.y<75||f.y>h-16){f.vy*=-1;f.y=Math.max(75,Math.min(h-16,f.y))}if(mode==='play'&&!shield&&Math.hypot(p.x-f.x,p.y-f.y)<29){lives--;shield=1.5;if(!lives)mode='lose'}}
}
g.fillStyle='#090e20';g.fillRect(0,0,w,h);
g.strokeStyle='#17213d';g.lineWidth=1;for(let x=0;x<w;x+=45){g.beginPath();g.moveTo(x,65);g.lineTo(x,h);g.stroke()}for(let y=65;y<h;y+=45){g.beginPath();g.moveTo(0,y);g.lineTo(w,y);g.stroke()}
g.fillStyle='#1d2944';g.fillRect(22,27,Math.max(1,w-130),8);g.fillStyle='#54e6c7';g.fillRect(22,27,Math.max(1,w-130)*Math.min(1,count/goal),8);
for(let i=0;i<3;i++)ball(w-76+i*23,31,6,i<lives?'#fb7185':'#28324c');
for(const s of stars){ball(s.x,s.y,11+Math.sin(elapsed*3+s.x)*2,'#173a49');ball(s.x,s.y,5,'#69f5d2')}
for(const f of foes){ball(f.x,f.y,18,'#421d35');ball(f.x,f.y,11,'#fb7185')}
if(!shield||Math.floor(elapsed*10)%2) {ball(p.x,p.y,21,'#352951');ball(p.x,p.y,13,'#b6a0ff');ball(p.x-4,p.y-4,4,'#f5f1ff')}
if(mode!=='play'){g.fillStyle='#090e20d9';g.fillRect(0,0,w,h);g.strokeStyle=mode==='win'?'#69f5d2':'#fb7185';g.lineWidth=5;g.beginPath();g.arc(w/2,h/2,45,0,Math.PI*2);g.stroke();g.fillStyle='#ffffff';g.beginPath();g.moveTo(w/2-9,h/2-17);g.lineTo(w/2+18,h/2);g.lineTo(w/2-9,h/2+17);g.closePath();g.fill()}
requestAnimationFrame(frame)}
size();requestAnimationFrame(frame);
</script>
</html>
```

Ao mover o mouse, tocando na tela ou **WASD / with arrow keys** Gerenciar a esfera roxa, recolher luzes verdes e evitar esferas vermelhas, a rodada é concluída quando duas luzes são coletadas, se três podem terminar, a rodada termina.

## Editar gráfico de jogos

**Diagrama do Jogo** Adicione e conecte nós na aba. Edite o cabeçalho dos nós selecionados do campo direito ao evento, valor e nota.

[![Edit the event flow](https://mintcdn.com/zonely-a8cd49e7/rwMU9q3NELY6LUJe/images/panel/tools-integrations-guide-20261027/mini-oyunlar-03-pt-BR.png?fit=max\&auto=format\&n=rwMU9q3NELY6LUJe\&q=85\&s=82ecbd81d4e380a7c0f8c6e6c6572f7e)](https://docs.zonely.gen.tr/images/panel/tools-integrations-guide-20261027/mini-oyunlar-03-pt-BR.png)

> [card] Edita o fluxo de eventos.
>
> Conecte nós de início e fim; edite o evento de nós selecionados da direita.

O esquema regula o fluxo, movimento, desenho e comportamento de colisão são preparados no código de jogo em HTML.

## Identifique o prêmio

**Prêmios** Prepare a comparação de crédito, produto ou servidor da guia. **Desenvolvimento** Conecte seu jogo com a chamada do prêmio mostrado na guia.

[![Reward key](https://mintcdn.com/zonely-a8cd49e7/rwMU9q3NELY6LUJe/images/panel/tools-integrations-guide-20261027/mini-oyunlar-04-pt-BR.png?fit=max\&auto=format\&n=rwMU9q3NELY6LUJe\&q=85\&s=4bce8f4e969625fe23f8c7e55a93dd5e)](https://docs.zonely.gen.tr/images/panel/tools-integrations-guide-20261027/mini-oyunlar-04-pt-BR.png)

> [card] 1o. Interruptor de prêmios.
>
> Companhe a chave de recompensa com a chamada correspondente Zonely no código do jogo.

Se quiser dar prêmios, conecte a condição de vencedor da turnê à conexão Zonely, prepare a verificação do resultado e os termos de recompensa com seu servidor de jogos.

## Visualize o jogo

**Teste o jogo.** na aba **Comece o jogo.** use o botão, verifique o movimento, a coleção de luz, vidas e o fim da turnê, você pode abrir uma nova rodada com o ícone de jogo no final da turnê.

[![Textless Light Hunting game: purple player, green lights, red obstacles and can icons](https://mintcdn.com/zonely-a8cd49e7/a2DxBoImkJzg7XMa/images/panel/minigame-code-20261028/light-hunt-pt-BR.png?fit=max\&auto=format\&n=a2DxBoImkJzg7XMa\&q=85\&s=a65bb089ee7ecaf4fca184681c5ad81c)](https://docs.zonely.gen.tr/images/panel/minigame-code-20261028/light-hunt-pt-BR.png)

> [card] Previsão da caçada de luz
>
> Colete luzes, evite esferas vermelhas e preencha a barra de progresso.

Jogo de amostra é uma personalidade única, combine a sala comum, o movimento e o status de jogo com a infraestrutura de link que você escolhe enquanto prepara um jogo multiplayer.

## Monitore a Consola e users ativos

**console** Siga os eventos da sessão e mensagens de erro da aba. Corrija o espaço correspondente distinguindo o erro de conexão do servidor com o erro no código do jogo.

[![console](https://mintcdn.com/zonely-a8cd49e7/rwMU9q3NELY6LUJe/images/panel/tools-integrations-guide-20261027/mini-oyunlar-06-pt-BR.png?fit=max\&auto=format\&n=rwMU9q3NELY6LUJe\&q=85\&s=3b6eb5f1406a2aea4f41cac7e04b144c)](https://docs.zonely.gen.tr/images/panel/tools-integrations-guide-20261027/mini-oyunlar-06-pt-BR.png)

> [card] Console 1.
>
> Veja os eventos e mensagens de erro da sessão ao vivo aqui.

**Jogadores ativos** lista os usuários que se conectam no jogo salvo, para fazer um registro, a sessão de jogos ao vivo deve ser aberta.

[![Active users](https://mintcdn.com/zonely-a8cd49e7/rwMU9q3NELY6LUJe/images/panel/tools-integrations-guide-20261027/mini-oyunlar-07-pt-BR.png?fit=max\&auto=format\&n=rwMU9q3NELY6LUJe\&q=85\&s=3e220fad8c4b5434600cdf3bbfa43efd)](https://docs.zonely.gen.tr/images/panel/tools-integrations-guide-20261027/mini-oyunlar-07-pt-BR.png)

> [card] Usuários ativos.
>
> Live usuários estão listados no jogo salvo.

## Revisão e salvamento dos métodos de conexão

**Desenvolvimento** Comece, ação, marque e resulte em eventos dos exemplos atuais na aba.

[![SDK and link guide](https://mintcdn.com/zonely-a8cd49e7/n5Hk71JLhZENj3bv/images/panel/tools-integrations-guide-20261027/mini-oyunlar-08-pt-BR.png?fit=max\&auto=format\&n=n5Hk71JLhZENj3bv\&q=85\&s=1dd8c311fbbf535111c9be20665d1b54)](https://docs.zonely.gen.tr/images/panel/tools-integrations-guide-20261027/mini-oyunlar-08-pt-BR.png)

> [card] 1. SDK e guia de ligação.
>
> Conseguir o contrato de jogos, marcar e resultados com métodos prontos para a ponte aqui.

Lista principal **Servidores Minigame** Com a guia você pode rastrear o status de instalação e operação de seu próprio servidor. Envie suas informações, código, diagrama e recompensas e registre o jogo.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.