Flatland Home
Blockset Zone
FAQS
Blocksets

Bset Tutorial I

Bset Tutorial II

FAQS

Bset Home

 

Spotnik

Tutorial

News

Resources

 

 

These are questions that have come up in the building block section of the Forum. Some may
have been addressed in Lemming's Tutorials. As pertinent questions arise you may find them here.

1. Do the vertices have to be defined in a special direction (clockwise, counterclockwise)?

The order of the coordinates for vertices is X,Y,Z. Rover uses a left-handed coordinate system, with (0,0,0) in the bottom south-west corner of the block. Positive X is eastward, positive Y is upward, positive Z is northward.

The vertices for a polygon must be defined in clockwise order around the front face. Use the FACES parameter in the PART tag to define whether or not a polygon is zero-sided (invisible but a barrier), one-sided or two-sided.

2. Do I need to put texture coordinates in myself?

You do not need to set the texture coordinates for your polygons. EditBset will perform this task for you if you leave them out. It makes it's best guess as to which vertex should get (0,0) so that the top edge of the texture is pointing up (or in the case of polygons that face up or down, so that the top edge of the texture is pointing north).

It is recommended that for triangles you put in the texture coordinates yourself, since EditBset may not make the correct choice. But it should figure out quads (squares, rectangles etc.) okay. Polygons with 5+ sides don't support the "stretched" texture style; EditBset will generate texture coordinates for a "scaled" texture style in that case.

3. Does Rover care what order the polygons are listed in the block?

The order of polygons in a block is irrelevant; when you add BSP trees to your blocks, that ensures Rover will render the polygons in the right order visually. For efficiency's sake, vertices that are shared by polygons should only be defined once in the VERTICES list in a block.

4. Hey! I can't manage to add that BSP tree to my blocks. I clicked on the "add bsp" button, but nothing happened!

If the "BSP tree" column of the block list has "empty" or "yes" beside each block, then it means that you have a BSP_TREE tag in your block files. You need to remove these, as well as any FRONT and REAR parameters from the POLYGON tags. Otherwise EditBset will think you have already given your blocks a BSP tree.

Adding BSP trees to blocks is not a reversible operation. It is *very* important that you keep a backup copy of your original blocks before you use EditBset to add BSP trees to them.

Why? Because part of the process of adding a BSP tree involves splitting polygons into two or more new polygons. So typically a block with a BSP tree added will have more polygons than the original block.

5. Can bsets be created and viewed offline? I have uploaded the .bset to a server and viewed a test 3dml page successfully.

Either you temporarily copy your blocksets into the flatsets folder and use a blockset tag equal to the basic.bset (you should ONLY do that for testing).

Or (the better way) you reconstruct your blockset's URL in the Flatland folder. If your URL is www.yourdomain.com/yourfolder/yourblockset.bset then create the folder structure Flatland\www.yourdomain.com\yourfolder and put your blockset in.

The easiest way, however, would be to upload your blockset to your server and then download it again by using Rover, so Rover creates the folder structure itself. Then just work in the newly created folder.

You can NOT reference your blockset directly by a local path on your HD (like "c:\blocksets"). You have to use a folder in the Flatland installation matching your planned URL.

6. I’ve added new blocks to my .bset. How do I make Rover upgrade automatically as it does for the new Flatland blocksets?

There are 2 parts to setting up a blockset update: the VERSION tag in the STYLE file, and a text file on the server that names the current version. In EditBset, there is a button at the bottom left corner called "Edit Version Tag".

Click here to bring up the version dialogue box, which includes 3 fields:

  • VERSION    
put your version number here
  • NAME          
this is the name of your blockset. the text here should be exactly the same as the file name. In other words, for village.bset, the NAME field should read "village". Not "Village" or "VILLAGE" or "spillage" or anything else.
  • SYNOPSIS   
this is a description of what is in the blockset. This text will be displayed to the user when the blockset is downloaded. For the village blockset, the synopsis says "houses, trees, sidewalks, streetlamp".

Then, the text file on the server should look something like this:

<VERSION ID="1.1" SIZE="109150"> This version of the Village Blockset fixes a minor bug with the HOUSEBASE4 block.</VERSION>

This is the current version file for the Village blockset. ID is the version number. SIZE is the size of the blockset in bytes (not kilobytes). In between the VERSION tags is a text description of what is new in this version or why the update is necessary. The file is named "village.txt" and sits in the same directory on the server as "village.bset".

Periodically, Rover will check the server to make sure that the version number of the blockset on your hard drive matches the version number in the text file on the server. If the number on the server is higher than the one on the local machine, Rover will update the blockset.

7. Can we make a single "part" out of some more "polygons"?

Just nest all the POLYGON tags inside one PART tag, like so:

<PART NAME="name" TEXTURE="...">
<POLYGON REF="1" VERTICES="..."/>
<POLYGON REF="2" VERTICES="..."/>
</PART>

There are no limits on how many polygons you can define within a single part. One caveat: the reference numbers for the polygons must be in sequence, so if you add polygons to a part then you'll have to renumber the ones that follow (This is referring to the reference numbers in the REF parameters).