Pagan in Minecraft: Milestone 2 Coming; Will Be Bigger Than Planned

u8-pagan-minecraft-01

kodenkm popped by the Pagan in Minecraft project entry to update us on the current status of the project. Suffice it to say, it’s going well…better, really, than even kodenkm expected:

Milestone 2 is going to be bigger than I originally planned, but it should actually be done a lot sooner. AvatarAcid (on this site) has done some great work generating a height map of the whole island and exporting it to Minecraft map format. So I just need to (MCEdit) move the city and all the cutscene command blocks to the new map. I made a prototype layout of Daemon’s Crag town on the new map last week, and a prototype of the Argentrock Isle monastery today. Everything should fit pretty well, i just need to slightly increase the Daemon Crag lava island, the town is a bit squished in.

AvatarAcid’s work with Minecraft, and in particular his ability to create Ultima-themed works of art therewith, should be well known to all here, so it’s exciting to see that he has contributed to the development of this mod. Perhaps the most exciting prospect offered by Pagan in Minecraft now is that we shall be able to explore the world of Pagan as an open world.

If you’re curious, I would recommend checking out the Pagan in Minecraft thread on the Sword & Shield (yeah, the forum is still there). That is where kodenkm and AvatarAcid have been collaborating, and the results are marvelous. Here, for example, is an early version of the island of Pagan:

pagan-in-minecraft-morgaelin-island

There are around 15 billion blocks in the map of Morgaelin, as it stands today. Let that number sink in.

As well, here are two renders of Pyros, the Titan of Fire, in Minecraft. On the left is a concept piece that AvatarAcid put together; on the right is a smaller-scale version requested by kodenkm:

And then there’s these:

pagan-in-minecraft-mushrooms

pippin-mushrooms1_500

So yeah…these guys are achieving some great things, aren’t they?

21 Responses

  1. Sanctimonia says:

    Nice work. The elevation data for the world needs to be smoothed/interpolated using an application supporting 16-bit grayscale, though (Photoshop yes, GIMP, not so much). You can see the “stairstep” artifacts in the screenshot that create a terracing effect. A program like L3DT may be able to recreate the map from the source data with better interpolation, though I haven’t used it in a long time. A minor detail, of course, but damn fine work all around in any case.

    • WtF Dragon says:

      It’s Minecraft. Stair-stepping is inevitable.

      • Sanctimonia says:

        I thought about that after I’d posted and wondered if that’s the issue. I don’t know much about Minecraft, but from a programming standpoint I don’t imagine that each voxel has to be x^3, but could have different dimensions per axis. The width and depth for example could be 1 unit while the height could be 0.1 units. That can be done easily just for the rendering by scaling the transformation matrix in OpenGL and could be done for everything (including rendering and collision) by modifying the code where the engine handles the voxels.

        I’ve seen other voxel rendering engines that dynamically interpolate the voxel data to create a smooth mesh instead of a literal interpretation. There may be a plugin for Minecraft that can do that.

        This may be the result of Minecraft’s lighting code creating vertex colors or altering quad normals to produce more realistic landscape lighting, but if you look at this crop of the screenshot you can see typical Minecraft stairstep elevation rings but also much smoother-shaded areas in the grass and mountains:

        http://eightvirtues.com/misc/pagan-in-minecraft-morgaelin-island-1024×1024-CROP.png

        What confused me was these smooth areas in contrast with the stairstep areas. You’d think it would be all one or the other, rather than both.

  2. AvatarAcid says:

    Thanks for the compliments 🙂 I do have Photoshop, I used a gaussian blur to assist with reducing anything too stark where I could. I think Ken is right though, since MineCraft is all about that Voxel, no curves, it may be hard to accomplish!

    But I’m certainly interested in more information and how I can improve!

    • Sanctimonia says:

      Make sure in Photoshop you always have it in 16-bit color mode when working with elevation maps (USGS data, etc.). In 8-bit grayscale there are only 256 shades of gray which is extremely noticeable. I learned that when I was doing the Ultima V TES3 mod waaaaay back. That’s one thing that really burns my ass about GIMP; it still doesn’t support 16-bit color (or non-destructive editing and filters, or…).

      If you start with an 8-bit grayscale map (your source material), put it in 16-bit grayscale mode and give it a light gaussian blur to fill in the color depth gap. You can then resize it to be larger which will make an additional interpolation based on the scaling algorithm used and apply additional detail (selectively if you prefer) by adding a noise layer (also 16-bit) with an appropriate blending mode.

      Out of curiosity, does Minecraft support non-uniform voxel sizes? Where one voxel, instead of being 1x1x1, could be 1x1x0.1? That wouldn’t “solve” the problem but would reduce it by a factor of 10.

      • AvatarAcid says:

        Great advice, I will check that bitmap when I get home to see if it is 8-bit. No, right now in MineCraft %99.9 of the blocks are all 1x1x1. Items and special “blocks” like ladders and trap door lids are different sizes. But no, the terrain blocks are all 1x1x1.

        You are right though about the mod/plugin, I do believe there is or was one available which gives you cubed blocks of different sizes. Though because I’m mostly a MC server admin, I don’t use stuff like that as it would actually require users to patch their client files to a degree most of them wouldn’t be comfortable with or understand how to do 🙂

      • AvatarAcid says:

        p.s.

        Snow cover blocks work wonders for hiding this, you can get and automatically adjust the snow levels on terrain. You can have down to 1/8th of a block.

      • Sanctimonia says:

        Hmmm. I wonder if it’s possible to create a script to do all the necessary patching automatically. Maybe someone has already created such a thing (you’d think so considering the game’s nature and popularity). That’s always the one thing that turned me away from Minecraft; the damned blocks. It’s literally a 320×200 game but in 3D. Needs some super scalar-type algorithm to soften it up.

      • WtF Dragon says:

        There are some mods that dial up the shaders, which makes it look…well, still like blocks, but exquisitely pretty blocks.

      • Sanctimonia says:

        Well that’s interesting… I wonder if you can make everything use a snow layer and still have different textures. Exploit the feature, basically.

      • Sanctimonia says:

        @WtF Dragon

        Increasing the voxel density would work up to a point, but like you said everything would still be blocks at 90 degree angles. Ultimately what’s needed is something like what Gavan Woolery is using for Voxel Quest (or EQ Next, I believe). Maybe it’s still blocks dialed up to nine, but using logic similar to that of the “interconnective” tiles in a 2D game like Ultima V, a block in Minecraft could examine adjacent blocks and use a model that connects at a 45 degree resolution, or even a higher-poly block using curves like a half-circle. I’m kinda surprised something like this isn’t well-known and pervasive in the Minecraft community. Maybe the blockiness is considered an endearing quality?

      • AvatarAcid says:

        Yes, you can take advantage of the snow blocks to some degree by re-texturing them, I did it with grass once but never extended the use of it. Textures are also client side, and actually getting users on your server to use a specific texture pack, even if it looks excellent, is harder than you think!

        Scripting is possible, actually you can usually just modify your client and pack certain things up where people can just dump into their install. Until recently however, MineCraft changed versions about once a month and that was a big hassle, you’d need to change just about everything you have every version. Then you still have the challenge teaching or convincing your users not to be lazy and to update for all the cool things 🙂

        Shaders are really cool and make a nice addition to the game, and I saw the update about Voxel Quest here last week. I have yet to read into it too much, but needless to say I am pretty excited. World building is one of the reasons why I backed Shards Online too.

        As for the blocky-ness of MineCraft, I think to some it might be. I think keep in mind, MineCraft was built by a guy who really got lucky and I don’t think ever would have expected it to be popular, let alone at the scale it is at now. Why they haven’t added more “blocks” I am not sure, I’ll bet if they did though it would be a new game. Money maker.

        I for one don’t mind so much, because I was building older Ultima stuff and even for stuff like Ultima VII it seems to work out pretty well. Check a few of these out from a Serpent Isle map I haven’t worked on in about 3 years now.

        https://copy.com/QSRa2imxxIBjlxzA – Inside Monitor & List Field
        https://copy.com/ulUP0oCFH3Z2d3ES – Looking out at trees & ruins over Monitor’s North Wall.
        https://copy.com/m40aJLbZ7jJeXww7 – Naga prison in field.

      • WtF Dragon says:

        I don’t think I’ve seen these yet, have I? Are they on the SI subdomain?

    • Sanctimonia says:

      One other thing. When I was doing the u5tes3 mod and what I meant by “selectively” when applying noise to the base elevation is that you create separate layers representing which parts of the map are which types of land. So you’d create a “sand” layer, then paint with a soft brush the areas of the map that are sand. Repeat that for “hilly” and “mountainous” and “plains” areas. You can then create different types of noise for each area and use the alpha channel of these layers to control where the noise types are displayed. You could have softer noise with wide contrast for the hilly areas, harder noise with less contrast for mountainous areas, and soft noise with low contrast for the plains areas. That will add an additional level of detail on top of the base elevation but with realistic variation for different types of land. Fun stuff.

      • AvatarAcid says:

        You can do similar things, yes, I created a custom beach layer for example. That layer was applied to height x1 to height x2. Also there is a cliff layer which is applied at anything above a 60 degree angle. That is how they are applied, either for a certain height range, above or below a certain angle. These are not depicted int he image above 🙂

        The land does need some additional Terra-forming to fine tune it, but it kodenkm’s project so he will have the direction on that. I think once he gets all of the trees, shrooms, and areas worked out most of it hopefully will not be noticed!

      • Sanctimonia says:

        If you can combine angle and elevation checks that could be used to determine which areas of mountains should be covered with snow. Large angles of course would have no snow (67.5 degrees plus or whatever). I think that’s how programs like L3DT work.

    • AvatarAcid says:

      Maybe not!
      https://ultimacodex.com/2012/05/teaser-image-serpent-isle-in-minecraft-2/

      The link to the MC forum is full of broken images which I should fix up. From my migration from Dropbox to Copy(thanks to you also!) 🙂