Ideias e funcionalidades do jogo

A tua próxima funcionalidade

Ações validadas

Faz o servidor validar as ações do jogo.

SDK: developRequer uma sessão de jogador
Unity
O resultado visível

Uma ação válida é aceite e uma ação inválida é rejeitada.

Vídeo em breve

Este passo ainda não tem vídeo. O guia e o pedido MCP já podem ser usados.

Validar ações do jogo

Integra esta funcionalidade

Podes consultar o guia. Para o executar, precisas de uma chave de projeto ativa. Preparar o projeto

SDK instalado, configuração do projeto importada e jogador com sessão iniciada.

Este exemplo do SDK usa develop. Verifica se as API necessárias existem no SDK instalado.

C#
Assets/Scripts/ValidatedActionsDemo.cs
Chamada ao horizOnPreparação
1using UnityEngine;
2using PM.horizOn.Cloud.Core;
3using PM.horizOn.Cloud.Manager;
4​
5// Adiciona este script a um GameObject da tua primeira cena.
6public class ValidatedActionsDemo : MonoBehaviour
7{
8 async void Start()
9 {
10 // Preparação: inicializar, conectar e iniciar a sessão de um
11 // jogador.
12 HorizonApp.Initialize();
13 await new HorizonServer().Connect();
14 await UserManager.Instance.SignUpAnonymous("PlayerName");
15​
16 byte[] inputLog = System.Array.Empty<byte>();
17​
18 // horizOn: iniciar uma partida, gravar os inputs, enviar a
19 // pontuação validada.
20 // 1. Dashboard: turn on "Validated submissions only" for the board "weekly"
21 var va = ValidatedActionsManager.Instance;
22​
23 // 2. Round start: single-use ticket plus server seed
24 var run = await va.StartRun("weekly");
25 if (run == null) { Debug.Log(va.LastErrorCode); return; } // e.g. RUN_RATE_LIMITED
26 var random = new System.Random(run.seed);
27​
28 // ... play, record the inputs into inputLog (byte[]) ...
29​
30 // 3. Round end: score plus input log (the SDK sends its SHA-256 hash)
31 var result = await va.SubmitValidated(18250, inputLog);
32 if (result == null)
33 {
34 Debug.Log($"{va.LastErrorCode}, run kept: {va.HasActiveRun}"); // e.g. DURATION_TOO_SHORT
35 }
36 }
37}

Testa a tua nova funcionalidade.

Uma ação válida é aceite e uma ação inválida é rejeitada.

Seleciona no painel o mesmo projeto que na configuração do teu jogo.

Endpoints da API
  • POST/validated-actions/runs
  • POST/validated-actions/submit
Todos os endpoints na referência da API
A nossa sugestão para o próximo passo

Dá uma pontuação máxima a cada partida.

Guarda a pontuação depois de uma partida e mostra quem está à frente. Continua a usar a ligação e a sessão do jogador.