Red (Network)

GDevelop proporciona funciones de red que permiten que los juegos se comuniquen con servidores remotos, API o sitios web.

Enviar una solicitud a un servidor / API / página web.

Todo en internet utiliza peticiones HTTP. Cuando visita una página web, su navegador envía una solicitud a la dirección de la página web y el servidor del sitio web envía una respuesta con el contenido de la página web.

Los juegos y aplicaciones funcionan de manera similar para enviar u obtener datos a un servidor:

  • envían una solicitud a una dirección específica (también llamada punto final). Opcionalmente la solicitud puede incluir parámetros.
  • El servidor devuelve una respuesta. El conjunto de todas las solicitudes que maneja un servidor a veces se denomina API.

Además de la dirección y los parámetros, las solicitudes HTTP también pueden tener un “verbo” asociado. Las solicitudes para obtener datos o recuperar una página web suelen ser solicitudes “GET”. Las solicitudes para publicar datos suelen ser solicitudes “POST”.

GDevelop proporciona la acción llamada “Enviar una solicitud a una página web”. Puede especificar el host y la ruta a la API / página web a llamar (por ejemplo, si su “punto final” es https: // mygame.com / api / store-score, el host es https: / / mygame.com y la ruta es / api / store-score (no olvide la barra diagonal /)). También puede especificar el contenido de la solicitud (el parámetro que recibirá el servidor).

Cuando el servidor envía la respuesta, se guarda en una variable para que pueda leer lo que se envió.

Cómo formatear el contenido.

  • Para las solicitudes GET, los parámetros deben enviarse en el contenido en el formato de una “cadena de consulta”: Parameter1 = Valor1 & Parameter2 = Valor2 & Parameter3 = Valor3

Puedes enviar datos desde una variable, por ejemplo: " score = "+ VariableString (Score) +" & playerName = "+ VariableString (Name)

  • Para las solicitudes POST, depende de lo que espera el servidor, pero la mayoría de las veces el servidor espera que el texto con formato JSON.

Usted puede construirlo usted mismo: " {\ "score \": "+ VariableString (Score) +"} " (note el uso de barra diagonal inversa antes de la cita \" , para permitir que la cita se use dentro de un texto) o use la expresión para convierta una estructura variable a JSON: ToJSON (VariableWithData) (vea más sobre esto más adelante).

Convertir variables a JSON y volver a variables

Variable a JSON

JSON es un formato de texto que se puede usar para describir la estructura de los datos, que contiene números, cadenas, objetos y matrices. Por ejemplo, un objeto que contenga la puntuación y el nombre de un jugador sería: {" name ": John," score ": 45}.

Las variables en GDevelop pueden contener números, cadenas o ser una “estructura” que contiene hijos que también son variables, que contienen números, cadenas o hijos.

Los niños pueden manipularse usando las acciones habituales relacionadas con las variables, ingresando su nombre después de un punto después del nombre de la variable principal (por ejemplo, si la variable que contiene los hijos se llama Progreso: `Progress.Level`,` Progress. Puntuación` ...).
Obtenga más información sobre Estructuras en la página sobre variables.

Las estructuras son útiles ya que pueden almacenar todos los datos relativos a algo, que luego pueden enviarse a un servidor. Para hacer esto, puedes convertir la variable de estructura a JSON, usando la expresión llamada ToJSON. Por ejemplo:

ToJSON (Progreso)

Si la variable Progreso tiene un “Nivel” secundario con valor 4 y “Puntuación” con valor 1500, el JSON resultante será: {" Nivel ": 4," Puntuación ": 1500}.

Puede usarlo como el contenido de una solicitud enviada al servidor.

JSON a variable

Puede ir al otro lado y convertir JSON de nuevo a una variable. Esto es útil cuando ha recibido la respuesta del servidor, que también suele tener el formato JSON.

Use la acción “ Convertir JSON a una variable ” (o “Convertir JSON a variable global”, o “Convertir JSON a variable de objeto”). Especifique el JSON que se convertirá (que se almacenará en una variable) y la variable donde almacenar la estructura resultante.