Este juego tendrá las siguientes características:
- Generación aleatoria de terreno.
- Combate en tiempo real.
- Inventario.
- Progresión.
- Clases.
- Vendedores.
- Implementar una historia.
- Dungeons.
La idea es ambiciosa y posiblemente se añadan más cosas o se replanteen otras, hoy he comenzado a elaborar un sistema para generar un terreno aleatoriamente usando PerlinNoise.
Estoy utilizando el PerlinNoise que proporciona Unity ya que para generar un mapa 2D esta función es perfecta.
He de apuntar que en un principio me costó entender como funcionaba dicha función ya que recibe dos floats:
Pero no puede darle valores mayores de 1 ya que sino no funcionará y nos devolverá siempre el mismo valor, de este modo tenemos que pasarle un valor inferior (usando una fracción por ejemplo),
Así es como calculo el noise:
noise = Mathf.PerlinNoise(j/scale,i/scale);
Este es el resultado que he obtenido:Simplemente mediante dos bucles foor anidados generamos GameObjects con un tile determinado por el valor del noise.
Lo bueno es que para guardar este mapa no nos hace falta guardar el mapa tal cual sino que lo podemos volver a generar simplemente guardando una "seed".
Esta seed se la aplicaremos a los valores de de x e y.
Esto es todo lo que he realizado hoy :D
Para el próximo día continuaré trabajando con el mapa.