
Todo videojuego, a no ser que sea muy corto, debe guardar una serie de variables que permitan al jugador continuar su partida desde donde la dejó guardada. Esas variables pueden ser el nivel en el que nos encontramos, los objetos del inventario, si tomamos la decisión A o B, etc.
Así, en este artículo, vamos a ver cómo podemos lograrlo usando Unreal Engine 4. Debo aclarar que existe un vídeo en donde lo explico en tan solo 5 minutos.
UE4 | Guardar estadísticas del personaje, decisiones, etc (Game Instance)
Creando el Game Instance
Una vez estamos en Unreal Engine 4, nos situamos en la ventana ‘Buscador de Contenido’, hacemos clic derecho, ponemos el cursor sobre el apartado ‘Blueprints’, y seleccionamos ‘Blueprint Class’.
Acto seguido, escribimos en la casilla que pone ‘Buscar’ lo siguiente: «Game Instance».
Clicamos en ‘GameInstance’ y le damos al botón verde ‘Seleccionar’.
Debemos ponerle un nombre y ya hemos creado un Game Instance.
Creando las variables a guardar
Como en cualquier BP, podremos crear diferentes variables. Es en el Game Instance donde deberemos crear las variables a guardar. Más tarde aprenderemos como acceder a ellas, modificarlas, y guardarlas.
Para crear una variable nos dirigimos a la parte izquierda, y clicamos en el ‘+’ a la derecha de ‘Variables’.
Para editar esa variable (nombre, tipo, valor inicial, privacidad, etc) basta con seleccionarla, en el apartado ‘Variables’, y a la derecha aparecerán las opciones.
Reitero que es aquí donde deberéis crear todas las variables que queráis guardar y acceder a ellas desde cualquier Blueprint o nivel. Siempre podéis ir añadiendo variables conforme el desarrollo de vuestro juego al Game Instance.
Dentro del Game Instance simplemente creamos las variables.
Definiendo nuestro GI.
Ahora tenemos que decirle a Unreal Engine cuál es el Game Instance en el que estamos almacenando las variables. Para ello nos dirigimos a la parte superior, ‘Editar’ -> ‘Ajustes del proyecto’.
En la ventana emergente, nos dirigimos, en la izquierda, a ‘Mapas y modos’. Dentro de ‘Mapas y modos’ hacemos scroll hasta llegar a ‘Game Instance’ y seleccionamos el Game Instance que hemos creado.
Finalmente cerramos la ventana emergente. Se guarda solo.
Cómo acceder a las variables
Por último vamos a ver cómo acceder desde cualquier BP al Game Instance y rescatar esas variables para trabajar con ellas.
Siempre que queramos acceder a una variable, sacamos el bloque ‘Proyectar a [el nombre de vuestro GI]’. En mi caso es ‘Proyectar a Levels_GameInstance’.
En ‘objeto’, ponemos el bloque ‘Obtener instancia del juego’.
Finalmente, escribimos el nombre de la variable que queremos traer, desde el nodo ‘as [el nombre de vuestro GI]’.
Para rescatar y sobrescribir un valor de la variable, escribimos ‘get’ y ‘set’ delante del nombre de la variable, respectivamente.
Y con esto, ya podemos acceder y modificar las variables desde cualquier Blueprint.
Si algo no ha quedado claro en este artículo, te invito a pasarte por el vídeo de YouTube, con el fin de solucionar tu duda.