Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Updated documentation.

The documentation has been updated to represent the current
state of the art.  The provisional version number of 0.9 has been
assigned.  Getting closer to release!

README: heavy updates
TODO: heavy removals!
  • Loading branch information...
commit 06fe2b7cb05207010382620e66fe69e0f98cfddf 1 parent 633a0bd
@mathuin authored
Showing with 31 additions and 44 deletions.
  1. +27 −25 README
  2. +4 −19 TODO
View
52 README
@@ -2,40 +2,42 @@ The TopoMC project facilitates the construction of superficially realistic Minec
This project relies heavily on codewarrior0's pymclevel project which can also be found on github.
-Version 0.8 includes changes to support the most up-to-date version of pymclevel (as of 2011 Dec 06).
+Version 0.9 includes changes to support the most up-to-date version of pymclevel (as of 2012 Feb 04). The new precompiled NBT module really helps!
-Recent changes include:
- * Larger areas can be downloaded from the USGS.
- * Arrays are used instead of images for intermediary data. Go Bravo!
- * Most module output moved to logger format. Quieter runs!
- * Features like ore and statistics can now be disabled.
- * The rotated-rectangle problem is fixed!
+Major changes:
-Features include:
- * Vertical range can be expanded by trimming unused elevation.
- * Specific USGS product IDs can be selected for download.
- * Ore (including dirt and gravel) is generated properly.
- * Simulated bathymetric data based on local terrain.
- * Datasets can now be downloaded directly from the USGS!
+ * The array and world code has been replaced with region-based code which improve accuracy while saving CPU and memory. The new commands to download, prepare, and build regions are documented below.
-This project includes one small dataset for testing. It was generated with the following commands:
- ./GetDataset.py --region BlockIsland --ymax 41.2378 --ymin 41.1415 --xmin -71.6202 --xmax -71.5332
+* GPGPU support has been added. Yes, your video card can help you build Minecraft worlds! This latest feature relies on PyOpenCL, so see http://mathema.tician.de/software/pyopencl for more information.
-The default spawn point is at the highest point in the dataset. The safe house is back! Perhaps someday there'll be a chest in there with everything the explorer needs?
+ * The landcover code has been rewritten to support the usage of MCEdit schematics as templates for certain areas, specifically croplands (farms) and developed areas. MCEdit is not required to use TopoMC, only to modify or replace the example schematics. It can be found at http://davidvierra.com/mcedit/download.html.
-The best way to get latitude and longitude is through Google Maps. Choose your chunk of the planet and right-click to place latlong markers in the upper left and lower right of the region you wish to model. This will give you the maximum and minimum latitude and longitude (Y and X in my model) values.
+ * The test dataset has been removed.
+
+ * The safehouse has been removed, but the default spawn point is still at the highest point in the dataset.
+
+How to use TopoMC:
+
+The best way to get latitude and longitude is through Google Maps. Choose your chunk of the planet (still limited to the United States and its possessions, alas) and right-click to place latlong markers in the upper left and lower right of the region you wish to model. This will give you the maximum and minimum latitude and longitude (Y and X in this model) values.
Next, here's what to do!
-1. Download the dataset from the USGS.
- jmt@belle:~/TopoMC$ ./GetDataset.py --region Provincetown --ymax 42.0901 --ymin 42.0091 --xmin -70.2611 --xmax -70.1100
+1. Retrieve the region from the USGS and prepare it for processing.
+ jmt@belle:~/TopoMC$ ./GetRegion.py --name Provincetown --ymax 42.0901 --ymin 42.0091 --xmin -70.2611 --xmax -70.1100
+
+2. Construct the Minecraft world based on the region.
+ jmt@belle:~/TopoMC$ ./BuildRegion.py --name Provincetown
+
+GetRegion.py has a number of optional arguments not shown above.
-2. Build the arrays.
- jmt@belle:~/TopoMC$ ./BuildArrays.py --region Provincetown
+ * Tile size can be changed.
+ The default tile size is 256x256, but it can be changed. The only requirement is that it be a multiple of 16. An example would be "--tilesize 64".
-3. Build a new world!
- jmt@belle:~/TopoMC$ ./BuildWorld.py --region Provincetown
+ * Horizontal and vertical scaling can be changed.
+ The horizontal and vertical scale, both of which default to 6, can be changed independently. The minimum horizontal scale is 1 with a practical maximum of 30. The minimum vertical scale is more complex, and essentially depends on the elevation change between the highest point in the region and sea level. An example scale would be "--scale 1 --vscale 1". Should the requested scale exceed valid parameters, the software will adjust the scale after informing the user.
-Both BuildArrays.py and BuildWorld.py have lots of options for the curious.
+ * Sealevel and maximum depth can be changed.
+ Sometimes the minimum vertical scale is too high. One way to improve this situation is to lower the sealevel from its default of 64 to something lower such as 16 or 8. The maximum depth should also be lowered as well. Keep in mind that this may have unexpected effects on ore distribution! An example sealevel and maximum depth would be "--sealevel 16 --maxdepth 8".
-One new option for BuildArrays.py is "--trim". This option should be used with "--vscale 1" for users who are willing to sacrifice absolute elevation accuracy to achieve maximum vertical scale on the surface. Essentially, "--trim" removes all the space between the minimum elevation of the region and sea level. For more details, see the source code.
+ * Elevation can be trimmed!
+ When lowering the sealevel isn't enough to reach your desired vertical scale, excess elevation can be trimmed. Elevation is considered excess if it is between sea level and the lowest point on the region. For example, if a region were selected such that its surface was between 200 and 300 meters above sea level, the 200 meters between sea level and the lowest point on the region could be trimmed. An example trim would be "--trim 200". If the trim value requested exceeds the valid limits, the software will adjust the trim value to the maximum allowed after informing the user.
View
23 TODO
@@ -1,21 +1,6 @@
A rough to-do list, mostly in the desired order:
-Allow disabling of new features
- - some folks just want pretty
- - others want quick terrain visualization
- - break world generation into phases (terrain, ore, trees, plants, buildings)
-Test and drivers for all functions
- - maybe even comments!
-Convert most print output to logging statements
- - boy this is spammy
- - especially GetDataset.py!
-Schematics and equipping the player
- - in progress
- - don't forget the bed in the safe house!
-Normal stuff underground!
- - ore done, what about caves?
- - I bet someone's done it better -- look for add-a-dungeon code!
-Clean up terrain.py
- - move terrain types into abstract routines to support more land cover types
-Put buildings in developed areas
- - need to do this without interfering with roads in the future?
+Improve test coverage
+ - ensure tests work!
+Look into hydrography and transportation layers
+ - automatically placing rivers, rails and roads would be awesome
Please sign in to comment.
Something went wrong with that request. Please try again.