Guía Hytale #1: Cómo añadir bloques personalizados

Si te gusta trastear con juegos, Hytale es lo mejor que te puedes tirar a la cara ahora mismo.

Ya ha salido Hytale, y todo el mundo está destripándolo y haciendo cositas, me incluyo. Me está gustando mucho, sobretodo por la flexibilidad que ofrece para añadir cosas personalizadas al juego, aunque por ahora no es tan fácil como parece.

He visto pocos vídeos y guías escritas sobre el tema, así que pensé que sería interesante escribir una guía rápida sin entrar en muchos detalles ahora mismo, para que podáis añadir cosas sin tener que esperar mucho tiempo.

Como yo también estoy aprendiendo cómo funciona el juego, tampoco voy a entrar en mucho detalle de para qué sirve cada cosa, voy a explicar lo básico para poner cosas. Muchas de las cosas que están aquí salen de esta documentación no oficial, por si queréis indagar más.

Requisitos

Lista de la compra:

  • Hytale comprado; si todavía no lo tienes, a qué esperas, cómpralo y luego vuelves.
  • Blockbench; con esto podemos crear los bloques personalizados, necesario si quieres hacer modelos personalizados.
  • Cualquier programa de dibujo o editor de imágenes, para hacer las texturas.
  • Un ordenador.

Introducción

Voy a ser breve, no te preocupes. Hytale utiliza un sistema llamado "Data Assets", que definen comportamientos del núcleo de gameplay, como:

  • Bloques e items (lo que queremos añadir nosotros!!!!)
  • Comportamiento de NPCs
  • Generación del mundo
  • Tablas de drops y de loot
  • un cojón de cosas mas

Lo guapo de esto es que no tienes que programar absolutamente nada para modificar aspectos del juego, y esa filosofía me encanta.

Con esto en mente, vamos a hacer lo siguiente:

  1. Crear un pack para nuestro bloque personalizado.
  2. Duplicar un bloque ya existente del juego.
  3. Modificarlo como nosotros queramos.

Bloque básico

Aprovechando que hace poco me instalaron la fibra DIGI, vamos a utilizar la marca como base para crear nuestro bloque.

1. Preparaciones

En mi caso voy a crear un mundo creativo nuevo para tutoriales, vosotros podéis crear el mundo que queráis.

Paso 1

Paso 2

Debemos darnos permisos de administrador para poder acceder al Asset Editor. Pulsamos Enter para abrir el chat y escribimos /op self.

Paso 3

Para abrir el Asset Editor, pulsamos la tecla B y nos dirigimos a Assets > Asset Editor.

Paso 4

Se nos abrirá una ventana así:

Paso 5

Con este panel podemos crear nuestro pack, que es el conjunto de recursos que vamos a añadir al juego.

2. Crear un pack

Para crear un pack, pulsamos en los tres puntitos a la derecha de Hytale:Hytale (Read-Only), en el botón Add Pack, y lo rellenamos con lo que queramos.

Paso 6

Paso 7 Cuando termines, pulsa Save para guardar el pack.

Paso 8 Ya tenemos pack :)

3. Añadir un asset

Ahora que tenemos un pack, podemos comenzar a añadir bloques. Se puede hacer de dos formas:

  • Duplicar un bloque existente.
  • Crear un bloque nuevo.

Por simpleza, vamos a duplicar un bloque de tierra que usaremos como base para nuestro bloque personalizado.

NOTA

También podemos crear cualquier tipo de asset vacío pulsando aquí: Paso 9

Paso 9

OJITO, IMPORTANTE

Cuando se crea el bloque, hay que especificar el "Unique Asset ID", que es el identificador que se utilizará como referencia en el juego. Si se escribe un ID ya existe, este asset se sobrescribirá por el que hemos creado.

Paso 10 Cuando termines, pulsa Create.

Paso 11 Ya tenemos nuestro bloque duplicado :)

Ya podemos ver este bloque dentro del juego, pero ahora mismo solo es una copia del bloque de tierra.

Paso 12

4. Modificar el asset

Ahora que tenemos el asset duplicado, podemos modificarlo para que se parezca a nuestro bloque personalizado.

Tenemos que navegar por el árbol de directorios de nuestro pack. Para ello, vamos a abrir el directorio. Podemos acceder de varias maneras:

Paso 13 Desde el editor de assets


Paso 14 Desde los ajustes del mundo. Se abren en el menú Worlds pulsando click derecho en el mundo


Paso 15

Paso 16 Desde los ajustes del launcher de Hytale.

De cualquier forma, deberíamos estar en una carpeta como esta:

Paso 17

Aquí tenemos que crear la siguiente estructura de carpetas:

  • Common/
    • BlockTextures/
      • DIGI.png
    • Icons/
      • ItemsGenerated/
        • DIGI.png
  • Server/

Creamos la carpeta Common:

Paso 18

Dentro de esta carpeta, hacemos dos más: BlockTextures e Icons.

Paso 19

Dentro de BlockTextures metemos la textura del bloque.

Paso 20

Volvemos a la carpeta anterior, entramos en Icons y creamos ItemsGenerated para luego introducir dentro el icono del bloque.

Paso 21

Ahora solo quedaría reiniciar el mundo para que todo se cargue.

NOTA

Solo hace falta reiniciar cuando no nos aparezcan los nuevos ficheros, ya que aunque el servidor se refresque automáticamente, a veces puede fallar.

Paso 22

Para editar el asset, podemos usar el editor o modificar directamente el fichero .json en el editor de assets. Paso 23

Aquí está el código que he modificado en mi caso para el bloque DIGI:

{
  "TranslationProperties": {
    "Name": "DIGI"
  },
  "ItemLevel": 10,
  "Icon": "Icons/ItemsGenerated/DIGI.png",
  "Categories": [
    "Blocks.Soils"
  ],
  "PlayerAnimationsId": "Block",
  "Set": "Soil",
  "ResourceTypes": [
    {
      "Id": "Soils"
    }
  ],
  "BlockType": {
    "Material": "Solid",
    "DrawType": "Cube",
    "Group": "Dirt",
    "Flags": {},
    "Gathering": {
      "Breaking": {
        "GatherType": "Soils"
      }
    },
    "BlockParticleSetId": "Dirt",
    "Textures": [
      {
        "All": "BlockTextures/DIGI.png",
        "Weight": 1
      }
    ],
    "ParticleColor": "#98743b",
    "BlockSoundSetId": "Dirt",
    "TransitionTexture": "BlockTextures/Transition_Soil_Dirt.png",
    "TransitionToGroups": [
      "Stone",
      "Dirt"
    ],
    "BlockBreakingDecalId": "Breaking_Decals_Soil"
  },
  "Tags": {
    "Type": [
      "Soil"
    ]
  },
  "ItemSoundSetId": "ISS_Blocks_Soft"
}

Los únicos atributos que he modificado son el nombre, el icono, y la textura, es decir, TranslationProperties.Name, Icon y BlockType.Textures. Es una modificación muy sencilla, os animo a que modifiquéis lo que queráis del fichero para probar cosas.

5. Probar el bloque en el juego.

Para equiparnos el bloque, pulsamos Equip Item, y nos añadirá el bloque al inventario.

Paso 24

Paso 25 LO TENEMOS.

Paso 26 Ahora podemos infringir los derechos de propiedad intelectual plácidamente.

Bloque con modelo personalizado

Ahora que ya sabemos hacer un bloque, vamos a crear uno con un modelo personalizado.

No voy a entrar en mucho detalle sobre cómo usar Blockbench, solo voy a explicar cómo crear un modelo que funcione en Hytale.

Primero hay que instalar el plugin de Hytale, en File > Plugins...

Paso 27

Paso 28

Podéis hacer un nuevo modelo en File > New > Hytale Prop.

Paso 29

En mi caso, hice una Gamecube muy simple para probar, pero el límite de esto es vuestra creatividad.

Paso 30

Lo bueno que tiene el plugin de Hytale es que podéis habilitar una preview de cómo se verá dentro del juego, para hacerlo del tamaño que más os convenga.

Paso 31

Para exportar el modelo, pulsamos File > Export > Export Hytale Blockymodel.

Paso 32

Para poder usar este modelo en el pack, debemos añadirlo a la carpeta Common/Blocks/, junto con su textura.

Paso 33

Creamos un asset nuevo para el bloque, ya sea duplicando uno existente o creando uno desde cero. En mi caso, voy a crear uno desde cero con este JSON modificado como base:

{
  "TranslationProperties": {
    "Name": "Gamecube",
    "Description": "Not affiliated with Nintendo de ninguna forma y eso."
  },
  "ItemLevel": 10,
  "Icon": "Icons/ItemsGenerated/Gamecube.png",
  "Categories": [
    "Blocks.Deco"
  ],
  "PlayerAnimationsId": "Block",
  "Set": "Deco",
  "BlockType": {
    "DrawType": "Model",
    "CustomModel": "Blocks/Gamecube.blockymodel",
    "CustomModelTexture": [
      {
        "Weight": 1,
        "Texture": "Blocks/Gamecube.png"
      }
    ],
    "BlockParticleSetId": "Metal",
    "Textures": [
      {
        "All": "Blocks/Gamecube.png",
        "Weight": 1
      }
    ],
    "ParticleColor": "#963B98",
    "BlockSoundSetId": "Metal",
    "BlockBreakingDecalId": "Breaking_Decals_Soil",
    "VariantRotation": "NESW",
    "HitboxType": "Plant_Medium"
  },
  "Tags": {
    "Type": [
      "Deco"
    ]
  },
  "ItemSoundSetId": "ISS_Blocks_Soft",
  "MaxStack": 1
}

La principal diferencia con el bloque básico reside aquí:

...
  "BlockType": {
    "DrawType": "Model",
    "CustomModel": "Blocks/Gamecube.blockymodel",
...

Estamos indicando que queremos usar un modelo en vez de un cubo. También hay un par de cosas más diferentes en comparación al bloque básico, eso os lo dejo a vosotros para que experimentéis.

Al igual que el bloque básico, este también debe tener un icono, igual que antes, en Icons/ItemsGenerated/.

Paso 34

Y si nos equipamos el item y volvemos al juego, deberíamos ver el modelo perfectamente.

Paso 35 Infringimos aún más los derechos de propiedad intelectual.

Conclusión

Poco más que añadir, este juego tiene mucho potencial para hacer modificaciones simples a la base del juego. Iré sacando más tutoriales conforme vaya avanzando todo.

Si queréis aprender más, voy a dejar un par de recursos que he estoy utilizando para aprender más en detalle cómo funciona todo:

Muchas gracias por leer, espero ver vuestras creaciones super chulis en el futuro. Un saludo