DEVLOG #1 Medieval Life Sim 2D: RandomLogGenerator



Este script, RandomLogGenerator, fué diseñado para generar diferentes eventos de juego, de momento imaginarios, solo en el log del texto, como una forma de generar inmersión. En busca del corazón del juego, que sería entre la mecánica y el diseño.

Entre los eventos podemos encontrar “Robé unas botas.” o “Doné 10 gbp al monasterio”. Aún no tiene coherencia “Robé unas botas” ya que para eso, el jugador debería ser un Ladrón en su carrera o empezar con ese Trait. Realmente haber escrito este script, me muestra la increíble dificultad de hacer un juego. No es solamente programarlo, sino, el game design. En este proyecto, Medieval Life Sim 2D, decidí simplificar la parte gráfica, sonora y animación o 3D y performance, para enfocar solamente en programación y game design. Lo cuál tiene cierta coherencia.

A todo aquel desarrollador que esté empezando, podría ser útil leer esta entrada en el blog.

En Medieval Life Sim 2D, cada acción debería tener un impacto, y estoy trabajando en cómo generar eventos aleatorios que, aunque sencillos como un log de texto, puedan aportar algo único a la experiencia del jugador. 

Si te apasionan los juegos que ofrecen una rica narrativa y un diseño profundo, sigue el desarrollo de Medieval Life Sim 2D. ¡Pronto habrá más actualizaciones y eventos aleatorios como estos! ¡Nos vemos en la próxima entrega!

using System.Collections.Generic;

using TMPro;

using UnityEngine;

public class RandomLogGenerator : MonoBehaviour

{

    public TextMeshProUGUI randomLogTxt;

    // Definición de listas de variaciones

    private string[] acciones = {

        "Robé unas botas.",

        "Doné 10gbp al monasterio.",

       Etc.

    };

    private string[] lugares = {

        "Monasterio de Saint Germain",

        "Villa de Greenfield",

        "Castillo de Blackwood",

     Etc.

    };

    private string[] years = {

        "236 BC",

        "237 BC",

        "238 BC",

    Etc.

    };

    private string[] grupos = {

        "Orden de los Magos",

        "Gremio de los Herreros",

        "Hermandad de los Alquimistas",

      Etc.

    };

    void Start()

    {

        List<string> logs = GenerateRandomLogs(100);

        foreach (var log in logs)

        {

            Debug.Log(log);

        }

        string randomLog=GenerateRandomLog();

        UnityEngine.Debug.Log("<Color=Magenta>" + randomLog + "</Color>");

        randomLogTxt.text = randomLog;

    }

    List<string> GenerateRandomLogs(int numberOfLogs)

    {

        List<string> logs = new List<string>();

        System.Random random = new System.Random();

        for (int i = 0; i < numberOfLogs; i++)

        {

            string año = years[random.Next(years.Length)];

            string acción = acciones[random.Next(acciones.Length)];

            string lugar = lugares[random.Next(lugares.Length)];

            string grupo = grupos[random.Next(grupos.Length)];

            string log = $"En el año {año}, {acción} en {lugar}. Me uní a {grupo}.";

            logs.Add(log);

        }

        return logs;

    }

    private int lastGeneratedYear = -1; 

    private string GenerateRandomLog()

    {

        System.Random random = new System.Random();

        string acción = acciones[random.Next(acciones.Length)];

        string lugar = lugares[random.Next(lugares.Length)];

        string grupo = grupos[random.Next(grupos.Length)];

  

        int year;

        if (lastGeneratedYear >= 0 && lastGeneratedYear < years.Length - 1)

        {

            year = lastGeneratedYear + 1;

        }

        else

        {

            year = random.Next(1, years.Length);  

        }

        lastGeneratedYear = year;

        return $"En el año {year}, {acción} en {lugar}. Me uní a {grupo}.";

    }

    public void AGE()

    {

        string randomLog = GenerateRandomLog();

        randomLogTxt.text += randomLog + "\n---------------------\n";

    }

}

Files

MEDIEVAL LIFE SIM 2D PRE ALPHA.rar 32 MB
7 hours ago

Get Medieval Life Simulator 2D Pre Alpha

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.