Map Pack Review: Infinity Dungeon Ex

Read about map pack reviews and see a list of all other map pack reviews.

This map is available for purchase via the Minecraft Marketplace available on Windows 10 Edition, Pocket Edition, and some console versions.

 

Looking at the resourcepack for Infinity Dungeon, the resourcepack is fairly small, but there is always room for improvement.

Firstly comes the language file, there is an en_US.lang file included in the infinity dungeon, it’s an incredibly small lang file as it only contains 2 lines, which means the lang file hasn’t fallen into the old trap of including all lines from the default lang file, only the lines are changed needs to be included in the lang file, unfortunately the lines included are redundant.
The lines included are used in the resourcepack name and description, this is not needed at all as the lines can just be put straight into the resourcpack manifest.json, the only reason you would need to do it like this is if you wanted the name and description of the resourcepack to be translated into several languages, but Infinity Dungeon Ex doesn’t do this, the language file can easily be removed.
The same can be said for the languages.json file included, the languages.json file includes a list of langauges but even if you change the lang file you don’t need languages.json at all.

Next mobs.json and sounds.json, both of these files suffer from a similar problem, the files contain the default definitions inside of them, which increases the size of these files drastically, much like lang files most of the json files contained within bedrock codebase resourcepacks do not need all the default definitions.
New definitions will be added to the existing definitions, whilst redefining definitions will overwrite the default ones, you only ever need to specify the things you want to change rather than including the default definitions.

Continuing on with mobs.json, removing the default mobs that aren’t changed, there becomes another small problem, some mobs have some of their body parts removed, for varying reasons, this has been done by changing a part to have an empty list for cubes:
mobs_no_cubes
The cow model has no cubes at all, but in most cases instead of specifying an empty list of cubes for each indivudal body part, you can not specify the body part at all, the cow model can be defined as:

“geomtery.cow”: {},

This removes all the bones from the cow model and it will have no parts at all in-game.
This will work in most cases, but not all, one example of this is the witch’s nose, in Infinity Dungeon Ex the witch needs no nose, but not specifying the nose will still render it, but you still don’t need an empty cube list, an empty cube list and no “cubes” definition are the same, so for the witch you still need something like this to remove the nose:

“geometry.villager.witch:geometry.villager”: {
    “texturewidth”: 64,
    “textureheight”: 128,
    “bones”: [
        {
            “name”: “nose”,
            “reset”: true
        }
    ]
}

Finally we come to textures, there is a few custom textrues used in the map, most of the textures are fine, but there is a small thing that could be better, which is the re-usability as well as resourcepack support.
There is two textures used in the map, which are re-textured to use another default texture, impulse command blocks are re-textured to look like grass and chiseled stone bricks are re-textured to look like redstone blocks.

Firstly the command block has 7 textrues.

command_blocks_retextures

In Infinity Dungeon Ex these have all been changed to the exact same texture, this is unnecessary, you can alter the textures that blocks use via a blocks.json file, this file is located in the root folder of your resourcepack (the same folder as manifest.json), inside the file you only need to specify the blocks you want to change, you can make “command_block” only use one texture, which will make the command block use the same texture of on all six sides, rather than having a load of textures being exactly the same, you just need one texture:

{
    “command_block”: {
        “isotropic”: true,
        “textures”: “grass_full”,
        “sound”: “grass”
    }
}

Secondly you can use existing textures instead of copying the default assets, this will mean that if someone playing the map uses a resourcepack, that changes the texture of grass or redstone blocks, the textures in Infinity Dungeon Ex will not match up with the resourcepack used.
You can use the terrain_textures.json located inside the textures folder to define new and redefine existing textures:

{
    “texture_data”: {
        “stonebrick”: {
            “textures”: [
                “textures/blocks/stonebrick”,
                “textures/blocks/stonebrick_mossy”,
                “textures/blocks/stonebrick_cracked”,
                “textures/blocks/redstone_block”
            ]
        },
        “monster_egg”: {
            “textures”: [
                “textures/blocks/cobblestone”,
                “textures/blocks/stonebrick”,
                “textures/blocks/stonebrick_mossy”,
                “textures/blocks/stonebrick_cracked”,
                “textures/blocks/redstone_block”,
                “textures/blocks/stone”
            ]
        },
        “grass_full”: {
            “textures”: {
                “path”: “textures/blocks/grass_top”,
                “overlay_color”: “#79c05a”
            }
        }
    }
}

What this file is doing is using existing textures instead of just renaming default assets, if a resourcepack is used the new redstone block and grass top textures will be used so the edited blocks do not look out of place.

As you can see the default Infinity Dungeon Ex textures on the left, don’t match up when using a resourcepack, you may notice the shade of the grass on the new textures is slighly off, but you can edit this value in the terrain_textures.json (“overlay_color”: “#79c05a”).

The resourcepack used in Infinity Dungeon Ex is only small, even though optimising the pack does not reduce the size by much if this was a much bigger map the size of the resourcepack could be a much bigger deal, especially for the bedrock codesbase, these maps can run on mobile phones, if the resourcepack is not optimised it could be a much bigger problem, loading times could be heavily affected, keeping your resourcepacks optimised when working on the bedrock codebase needs to a higher priority, and is definitely something that should be kept in mind.

infin_dungeon