Voltar para o Blog
Quest Log

Como Fazer Jogo Multiplayer no Scratch com Variáveis Nuvem

Tela do editor Scratch com um bloco de variável na nuvem destacado e dois personagens na mesma cena

Como fazer jogo multiplayer no Scratch usando variáveis na nuvem: o que dá para montar, os limites reais (só números, com atraso) e o passo a passo.

Ferramenta:Scratch

Se voce procurou como fazer jogo multiplayer no Scratch, provavelmente ja imaginou dois amigos jogando o mesmo jogo, cada um no seu computador, interagindo em tempo real. Vale a honestidade logo de cara: o Scratch consegue fazer uma versao simples e charmosa de multiplayer, mas nao do jeito que um jogo de acao online faz. A ferramenta tem um recurso chamado variaveis na nuvem (cloud variables), e e com ele que a magica acontece, dentro de limites bem claros que este guia vai explicar sem enrolar.

A proposta aqui e dupla. Primeiro, mostrar exatamente o que da para montar no Scratch usando variaveis na nuvem e como fazer isso, bloco por bloco. Segundo, deixar transparente onde a ferramenta trava, para voce nao perder uma tarde tentando construir algo que o Scratch simplesmente nao foi feito para fazer. No fim, voce vai entender por que o Scratch e uma porta de entrada excelente para o conceito de multiplayer, mesmo nao sendo o destino final de quem quer jogos online de verdade.

O que sao variaveis na nuvem no Scratch

Toda variavel comum no Scratch guarda um valor so na maquina de quem esta jogando. Se voce cria uma variavel chamada pontos e ela chega a 50, esse 50 existe apenas no seu navegador. O jogador do outro lado do mundo nunca vai saber dele. E por isso que, sozinhas, as variaveis comuns nao fazem multiplayer.

As variaveis na nuvem resolvem exatamente isso. Quando voce cria uma variavel, o editor oferece a opcao "Variavel na Nuvem (armazenada em servidor)". Marcando essa caixa, o valor dela deixa de morar so no seu computador e passa a ficar guardado no servidor do Scratch. O nome dela aparece com um pequeno icone de nuvem na frente, e e assim que voce reconhece uma. A consequencia pratica e enorme: todo mundo que abre o mesmo projeto le e escreve no mesmo valor. Se voce mudar o numero aqui, o jogador do outro lado ve a mudanca chegar. Esse e o coracao do multiplayer no Scratch.

Para usar esse recurso, tres condicoes precisam estar satisfeitas. O projeto tem que estar publicado no site do Scratch (nao funciona no editor offline). Quem joga precisa estar logado numa conta confirmada. E a variavel, claro, precisa estar marcada como de nuvem. Fora dessas condicoes, ela se comporta como uma variavel comum e nada sincroniza.

Como fazer jogo multiplayer no Scratch: os limites reais

Antes de montar qualquer coisa, grave estes tres limites. Eles nao sao detalhes, sao a diferenca entre um projeto que funciona e uma tarde frustrante.

So numeros. Uma variavel na nuvem guarda apenas valores numericos. Nada de texto, nada de palavras. Voce nao consegue enviar o nome de um jogador ou uma mensagem de chat diretamente. Da para contornar convertendo letras em codigos numericos, mas isso ja e um exercicio avancado. Para comecar, pense tudo em numeros: placar, posicao em uma grade, estado de uma partida (0 para esperando, 1 para jogando, 2 para acabou).

Tem atraso. O valor nao viaja instantaneamente. Entre voce mudar a variavel aqui e o outro jogador receber a mudanca passam alguns instantes. Para um placar ou um jogo por turnos, ninguem percebe. Para um jogo onde os dois personagens correm e pulam ao mesmo tempo precisando se ver na hora, esse atraso quebra a experiencia. Nao existe tempo real competitivo no Scratch, e tudo bem, nao e para isso que ele serve.

Ha limites de quantidade e tamanho. O Scratch restringe quantas variaveis na nuvem um projeto pode ter e o tamanho do numero guardado em cada uma. Isso te obriga a ser economico: compartilhe pela nuvem so o que realmente precisa chegar ao outro jogador, e deixe todo o resto como variavel comum, que e mais rapida e nao tem limite de uso.

Quem entende esses tres limites para de brigar com a ferramenta e comeca a projetar dentro dela. O multiplayer de Scratch brilha em placares globais, jogos de turno, salas de espera e estados simples que mudam devagar.

Próximo nível
Quer aprender isso na prática?

No CursoGame.Dev você sai dos tutoriais soltos e constrói jogos publicáveis, com trilha progressiva, quests práticas e feedback real.

Conhecer a plataforma
+500 alunos4.9/5Garantia 7 dias

Montando um placar compartilhado passo a passo

O projeto multiplayer mais simples e util do Scratch e um placar global: um numero que todo mundo que joga enxerga e pode aumentar. E o "ola mundo" do multiplayer e ensina o ciclo inteiro de ler e escrever na nuvem. Veja o caminho, descrito nos blocos reais do Scratch.

Primeiro, crie a variavel. Na secao Variaveis, clique em "Criar uma Variavel", de o nome de placar na nuvem e marque a opcao de variavel na nuvem antes de confirmar. O icone de nuvem vai aparecer na frente do nome.

Agora o bloco de entrada. Comece com o bloco quando a bandeira verde for clicada. Logo abaixo, nao reinicie o placar para zero, isso apagaria o valor de todo mundo. Em vez disso, use um bloco mostrar variavel [placar na nuvem] para exibir na tela o numero que ja esta no servidor assim que o projeto abre. Esse detalhe e importante: o valor que aparece ja vem compartilhado.

Para o jogador aumentar o placar, use um evento de interacao. Por exemplo, quando a tecla [espaco] for pressionada ou quando este ator for clicado. Dentro dele, coloque o bloco adicionar [1] a [placar na nuvem]. Pronto: cada vez que alguem aperta espaco, o numero sobe no servidor, e todos os outros jogadores veem o novo total chegar em instantes.

Se voce quiser que a tela sempre reflita o valor mais recente mesmo quando outra pessoa mexeu nele, monte um laco de atualizacao. Use quando a bandeira verde for clicada, depois um bloco sempre e, dentro dele, a logica que desenha ou exibe o conteudo da variavel na nuvem. Assim, quando o servidor atualiza o numero por causa de outro jogador, seu projeto repinta o valor novo sozinho. Esse padrao, ler a variavel na nuvem dentro de um laco sempre, e a base de quase todo multiplayer de Scratch.

Esse exemplo cabe numa tarde e ja contem a ideia central de todo jogo em rede: um estado que mora fora da sua maquina e e compartilhado por quem joga. Se voce quiser aprofundar o conceito geral por tras disso, vale ler o guia de como fazer jogo multiplayer, que explica autoridade, latencia e os modelos de rede que valem para qualquer ferramenta.

Jogo por turnos: o formato que o Scratch faz bem

Depois do placar, o proximo degrau natural e um jogo por turnos para dois jogadores, tipo jogo da velha ou um jogo de perguntas. Aqui o atraso da nuvem deixa de ser problema, porque ninguem precisa reagir no mesmo instante: cada um joga na sua vez.

A ideia e representar o tabuleiro e o turno com numeros. Uma variavel na nuvem como de quem e a vez guarda 1 ou 2, indicando qual jogador pode agir agora. Cada casa do tabuleiro vira um numero numa variavel propria (ou numa unica variavel que codifica o estado inteiro, se voce quiser economizar as variaveis de nuvem). Quando o jogador faz uma jogada, o projeto atualiza a variavel da casa e troca o valor de de quem e a vez para o outro numero.

Do outro lado, o projeto de cada jogador roda um laco sempre que faz duas coisas. Primeiro, com um bloco se entao, checa se de quem e a vez = 1 (ou 2, conforme o jogador) para liberar ou travar os cliques daquele jogador. Segundo, le as variaveis das casas e redesenha o tabuleiro, para que a jogada do oponente apareca na sua tela. Como a troca de turno e naturalmente lenta, o pequeno atraso da nuvem passa despercebido e o jogo fica fluido.

Esse formato, estado numerico simples mais controle de turno, e onde o Scratch rende de verdade. Vale conhecer o que mais a ferramenta oferece visitando o hub do Scratch, que reune os recursos e tutoriais para quem esta construindo nela.

Onde o Scratch trava e para onde ir depois

Chega um momento em que a ferramenta mostra o limite, e reconhecer isso faz parte de aprender. Alguns sinais claros de que voce bateu no teto do Scratch: voce quer que os dois personagens se movam ao mesmo tempo e se vejam na hora; voce precisa enviar texto, como nomes ou mensagens; voce quer dezenas de jogadores na mesma partida; ou voce comeca a lutar contra o limite de variaveis na nuvem para representar um estado complexo. Nenhum desses casos e falha sua, sao pontos onde o Scratch simplesmente nao foi projetado para ir.

E aqui que o aprendizado feito no Scratch vira um atalho, nao um tempo perdido. Quando voce migra para uma engine com rede de verdade, o conceito de estado compartilhado entre maquinas, que voce ja viveu na pele com as variaveis na nuvem, deixa de ser abstrato. A latencia que te incomodava no Scratch e a mesma que os jogos grandes gastam anos escondendo. O turno que voce controlou com um numero e a versao simples da autoridade de servidor. Voce nao volta a estaca zero; voce chega na engine nova ja entendendo o problema.

O caminho de quem quer seguir nessa direcao costuma ser aprender a programar de verdade numa engine de uso geral. Se voce esta nesse ponto de transicao, um bom proximo passo e um curso para iniciantes que te leve do arrastar de blocos ate o codigo, com projetos pequenos e terminaveis. O Scratch cumpriu o papel dele quando te fez entender, com as maos, o que significa dois jogadores dividirem o mesmo estado.

O proximo passo

Fazer um jogo multiplayer no Scratch e totalmente possivel, desde que voce respeite o formato da ferramenta. Variaveis na nuvem guardam numeros, atualizam com um pequeno atraso e tem limite de quantidade, e e justamente por isso que elas brilham em placares compartilhados, jogos por turnos e estados simples, em vez de acao em tempo real.

Seu proximo passo concreto e o placar da terceira secao. Abra o Scratch, crie uma variavel na nuvem, publique o projeto e peca para um amigo abrir ao mesmo tempo que voce. Ver o numero mudar na tela dele quando voce aperta espaco na sua e o momento em que o multiplayer deixa de ser teoria. No CursoGame.Dev a gente acredita nisso: um projeto pequeno que funciona de verdade ensina mais do que um projeto gigante que nunca sai do papel, e com rede no meio essa verdade vale em dobro.

Perguntas frequentes

Da pra fazer jogo multiplayer em tempo real no Scratch?

Nao de forma competitiva. As variaveis na nuvem do Scratch so guardam numeros e atualizam com um atraso de alguns instantes, entao um jogo de acao onde os dois jogadores precisam se ver mexer ao mesmo tempo nao funciona bem. O que da certo e placar compartilhado, jogo por turnos e estados simples que mudam devagar.

O que sao variaveis na nuvem no Scratch?

Sao variaveis especiais, marcadas com um simbolo de nuvem, cujo valor fica guardado no servidor do Scratch em vez de so no computador de quem joga. Como todo mundo que abre o projeto le o mesmo valor, elas servem para passar informacao de um jogador para outro. A limitacao e que elas so aceitam numeros.

Preciso de conta no Scratch para usar variaveis na nuvem?

Precisa. As variaveis na nuvem so funcionam com o projeto publicado no site do Scratch e com o jogador logado numa conta confirmada. No editor offline ou num projeto so salvo localmente elas nao sincronizam, entao o teste de verdade acontece sempre no site.

Por que minha variavel na nuvem so aceita numero?

Porque e assim que o Scratch foi feito, por seguranca e simplicidade. Para enviar texto voce precisa converter cada letra em um codigo numerico e remontar a palavra do outro lado, o que e um exercicio otimo mas ja um passo mais avancado. Para comecar, trabalhe so com numeros.

Quantas variaveis na nuvem posso usar num projeto?

O Scratch limita a quantidade de variaveis na nuvem por projeto e tambem o tamanho do numero guardado em cada uma. Por isso vale planejar o que realmente precisa ser compartilhado e deixar o resto como variavel comum, que e mais rapida e sem limite de uso.

O Scratch e um bom lugar para aprender multiplayer de verdade?

E uma porta de entrada honesta. Voce aprende a ideia central de estado compartilhado entre maquinas sem instalar nada e sem programar rede de verdade. Depois que o conceito ficar claro, migrar para uma engine com rede real fica muito mais facil, porque a parte dificil ja faz sentido na sua cabeca.