Monday, October 4, 2010

Overworld Progress

Sorry that updates have been slow this past week. I'm going to keep this one short and sweet. Here is the overworld progress so far. Note that the big blank green areas are actually filled with saplings that have not yet bloomed.

As far as the overworld goes there are a few problems left to solve. The major one is inconsistencies in elevation that occur in the map itself. I've shied away from doing the mountain regions yet because the elevations that are created by the blue stairs are not consistent throughout the map. I plan on tackling this issue this week and mapping the mountainous regions of the overworld by taking some liberties with the map design itself. Also look forward to redstone water switches for dungeon doors. The other issue in the overworld is going to be dungeon "depths" that I've started to encounter. For example dungeon 02 is on an elevated surface in the game world, but I'm going to have to map it deeper than the first dungeon. I think the later dungeons are just going to have deeper and deeper stairways to go deeper into the map to avoid dungeon overlapping. Hope this holds you over and expect more updates later this week!

Monday, September 27, 2010

Dungeon 01 - Part 2

Meant to post this yesterday but got distracted trying to conquer the world in Civ V. I got another good chunk of overworld work done this weekend. A good friend of mine let me borrow a spare monitor he had lying around so I was able to have my reference overworld map open on one monitor while I did the modeling in another. This greatly increased my productivity and I was able to slam out some zones with ease.
Zooming out makes things a bit funky looking but all these zones are done.
You can't tell from the screenshot, but all the trees are planted in the tiles that need them. You can see that the dungeon one entrance has been completed. I decided to take a little break from working on the overworld to get started on the first dungeon.
A little crooked bust mostly complete.
I decided to make the dungeon in the sky and then cut/paste it underground. This was a lot easier than trying to model the whole thing underground. Creating the dungeon was very simple; I created an empty room to start and then copy/pasted it to form the dungeon. I left the ceiling off while I did the various blocks and such and then copy/pasted the floor and nudged it up to create the ceiling.

I wanted to work on a key system this weekend but I need a little more work with redstone circuits. The idea is going to be to give the player gold bars in place of keys and then have a water/wood switch system to activate the dungeon doors. Another issue that came up is the size of the dungeons themselves. The zelda world does not obey the laws of physics; the dungeons would end up overlapping eachother if they were actually undergound. I plan to remedy this by making the dungeons progressively deeper into the ground. I'm going to continue to work on the overworld this week and try and get a key system in place before the weekend.

Friday, September 24, 2010

Creating a new zone

In this post I want to go over the method I use to create a new zone on the map. I'm going to be doing a fairly complex mountain segment, but fortunately MCEdit can do some of the heavy lifting for us. The first step is to isolate the zone that we want to create. Each "zone" is 16 blocks wide and 10 blocks high. In my world each block is represented by a 2x2 game block. This means that each new zone will be 32 blocks wide and 20 blocks high. The first step is to select the 16x10 area on the overworld map that we want to re-create.
First step is to choose a zone to map.
As you can see I partitioned the world into nice manageable chunks by using the grid tool and selecting certain zones to recreate one at a time. The next step is going to be to set up a new section in MCEdit that I can work from, and to set up the 32x20 ground area.
Where the new section will be going.
Select one of the zones corners.
Use the nudge tool to create the 32x20 zone and then fill with sand.
The next step is going to be to create the rock formations that are in the original overworld.
The end goal.
There's no real magic here. Simply transform each 1x1 block into a new 2x2 block and then raise it 8 blocks. Let's start at the left hand side.
The first block.
Fill one column with air to create the staggered look.
Now it's time to let MCEdit make the job a little easier. We can select the formation we just created and use the clone tool and then flip the block to mirror it. This creates the first two blocks in the overworld, and we can see the same structure in other parts of the zone. After we clone and mirror this block we will select the new structure and clone it a few more times.
Flip the block to create the second section of the map.

Cloned a few more times.
The next step is going to be to create the rest of this half of the zone and then clone and flip to complete the zone.

This half is done, select it all and clone/flip.
Almost there just add the final wall.
Another one bites the dust.
Hope this post gave some insight on the basic methods I use to create the zones. I feel I'm getting pretty comfortable with MCEdit so knocking out the rest of the overworld is mostly just going to take time. There are a few more issues that I'm going to have to deal with down the road like dealing with world elevations, but  I'll cross that bridge when I come to it.

The Reddit Effect

I think the image above speaks for itself. Thanks for all of the interest you've shown in this project! This is a real big motivator for me to make sure I keep making steady progress on the the conversion as well as this blog documenting the progress. I plan on doing a lot of overworld work this weekend and possibly move into the first dungeon by Sunday. I have some interesting ideas on how I'm going to do dungeon keys and want to get some tests done this weekend to see if it is viable. I also plan on making a post either tonight or tomorrow describing the methods I use to replicate the overworld in MCEdit. Again, thanks for the support!

Thursday, September 23, 2010

Welcome to the Jungle

So now that I've got the basics of the editor under my belt I decided it was time to try and solve one of the first design problems of the mapping. A lot of the overworld is covered in trees; therefore I had to find a way to recreate these levels in the game. The first attempt was in creating my own trees using the tree trunk and leaf blocks. This approach had two problems. The first being the tree looking very "artificial". I created a 2x2 tree trunk and manually added leaves. The following is the result and looks very um... un-tree like.
This um... just won't do.
Not only is the tree ugly as sin, but after loading it up in game the leaves start falling off into saplings. As you are most likely aware, if you chop down a tree in game the leaves will eventually start to fall off and disappear. Apparently there is some sort of attachment relationship that happens when a tree goes naturally in the game vs making one manually. So with this idea quickly scrapped it's up to the next best thing. We will create a tree farm and let them grow naturally. Easy enough let's create the pattern in the zone beside the spawn and see what occurs.
This should look familiar
After letting the game run for a nice 8 hours while I go to work I come home to the following.
Success!
Welcome to the Jungle
I would say this is mostly a success. However, there are still a few minor issues that need to be worked out. For one, it seems like it is difficult to grow saplings directly next to each other and have them grow into trees. I never got a solid 4x4 block tree. The largest one I managed to get was a 2x1 tree. The first problem is that growing the trees this way I can't exactly replicate the overworld map. However, I think that this should work out fine in the end. The 4x4 block trees look a little bulky and I like the look of the 1x1 block growing into a tree much more. The other problem is the fact that the southern border of the map has an area that is blocked off by trees, and these do not create a solid wall to contain the player in. This can be remedied by manually adding in tree trunk blocks to fill in the gaps and create a proper wall. Another minor issue is sometimes the leaves would be a bit aggressive and actually block your path; this can be fixed with some simple pruning. Overall I'm happy with the results and it's time to keep chugging along on the overworld.
Things are looking good so far!

Tuesday, September 21, 2010

It's dangerous to go alone!

So after the first disaster  of my collapsing world I fired up MCEdit with the foolproof plan of building a world on solid ground. I start off by filling a large area of blocks with stone. 4.4 million blocks later and I have a pretty good area to start working with. The first task is to partition a 32x20 patch of ground to represent the very first area I'm going to reproduce. In the overworld map the ground looks like sand throughout the whole map, but I figured I would go with grass for the green areas of the overworld map and sand in the desert and mountain regions. After we have our partition out it's time to build some walls. For now the walls are going to be completely vertical but after things are all said and done I'm considering tapering the walls to give a better overall style. After a couple of strategically paced rectangles we have something similar to the spawning zone.
Spawning Zone
The Original

Now that we have the main layout for the starting zone done it's time to implement the first cave. This is where another tool comes in handy when editing maps; MineEdit. MineEdit will allow me to edit the inventory of my character so I can have diamond tools and materials that can be used to shape my landscape in game rather than doing everything through the editor. After I've made a change in game I simple save and exit in Minecraft and then reload the map in MCEdit. I found this useful for making the entrance to the save since it helped to see how the entrance and stairs down would jive rather than making it in the editor and hoping for the best. After hollowing out the entrance I jumped back in the editor and added the empty space for the cave and then saved and loaded in Minecraft to add a chest with a very special item inside.

After a little more tinkering I'm able to get the second section of the game world complete. I ran into a couple of issues here. I tried to make the green blocks out of cactus at first but I guess 2x2 cactus blocks are unstable because they would explode after a couple of seconds (hence all the cactus in my inventory). Also in the original design I had the rocks set up as the "dirt" block but it looked pretty fugly for the grass area so I changed it to mossy cobblestone using the replace tool in MCEdit.
Things are looking good so far.

Collapse

I fire up MCEdit and am greeted with a pretty self explanatory menu. It has options for opening either world 1-5 of my Alpha worlds, creating a new world, or opening a world in another directory. It also has a brief overview of the keyboard shorcuts that are necessary for performing the basic functions of the editor. I slap N with vigor to fire up a new world and am greeted with a nice giant layer of bedrock, cool. I start randomly trying to move around the game world and start trying to use the various cryptic options on the bottom of the screen. Seriously look at the following screenshot and try to figure out what any of the options actually do.

What the? I don't even.
After a bit of tinkering and frantically clicking around trying to figure out what anything does I decide it's time to go back to the Minecraft forum and decrypt all those options at the bottom of the screen. The most useful option would be the selection tool. This allows you to select areas of blocks to work with and perform various operations with them. For example you can select a structure, clone it, manipulate it, and move it to another location. I said in my previous post that I was worried that MCEdit would not end up being useful since it could only manipulate entities in the game world and not create new ones. Fortunately this means you can modify air blocks and fill them with the block of your choosing. This allows you to create any rectangular structure of pretty much any size. I'm starting to see that MCEdit is going to be able to handle all of my needs for creating my overworld so I get started on my first attempt at creating a flat ground slate to work from.

Using the Legend of Zelda map as a reference I see that the ground looks pretty similar to sand in Minecraft. Easy enough; I'll simply create a large slate of sand at around ground level to work from. I create a block of sand about 200 units wide, 100 units long, and 4 layers deep. I start working on some overworld features to get a hang of MCEdit a little more and after a while I started to get the hang of things. The most useful tool is probably the Nudge tool since it allows you to manually move the selection blocks around the game world instead of trying to position them correctly with your mouse. Mouse selection is somewhat wonky and the ability to move the selection areas manually is an invaluable tool. After I have a little bit of the game world mapped out I fire up Minecraft and am eager to see how my new creation looks in game.

Hmmm... my client seems to be running incredibly slow. I'm getting around 1-5fps when I'm usually at a steady 100. I'm thinking that maybe some flaw in my design has caused the game to suffer a severe performance hit or maybe the map editor is a memory hog and it's causing a slowdown. I quickly shut down Minecraft and close the editor and my other open programs and try again. Still seeing the same performance issues, but I decide to let the game run. Maybe it's doing some world generation or performing some operations on my new world chunks I've created. Soon I realize what has happened. I see the ground collapsing right before my very eyes. I forget a pretty simple concept in Minecraft; sand falls if there is only air beneath it. My new giant sand slate had started to completely collapse as soon as the world loaded. I load the map into MCEdit and see that all I had created was gone. Lesson learned; build on stone.