Editing Category:Map Making

Jump to: navigation, search

Warning: The database has been locked for maintenance, so you will not be able to save your edits right now. You may wish to copy and paste your text into a text file and save it for later.

The administrator who locked it offered this explanation: Server migration

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
BZFlag uses its own map file format, [[BZW]] (BZ World). BZW files are text based and contain a list of objects and map options that are read by the [[BZFS]] server.  
+
[[BZFlag]] uses its own map file format called the [[BZW]] file. [[BZW]] files are text based and contain a list of objects and map options that are read by the [[BZFS]] server.
 +
 
 +
== Map Creation Methods ==
 +
[[BZFlag]] has several well practiced methods for the design of maps, from simple text editing, custom editors, to exporters for 3D modeling software. While basic dedicated map editors, such as BZEdit, can often only create simple objects, 3D modeling software can create complex custom [[mesh]] objects, but have a much steeper learning curve.
 +
 
 +
=== Dedicated Map editors ===
 +
Dedicated [[BZFlag]] map editors (i.e. written specifically for graphically editing [[BZW]] files) generally go by the name [[BZEdit]]. There are a number of versions of [[BZEdit]] that have been developed over the years, some of them sharing code, some of them not. Each editor has its own level of support for various map features. At this time there is no custom editor that supports every feature of the [[BZW]] format. In general, these will only support simple map objects such as a [[box]], a [[pyramid]] or a [[teleporter]].
 +
 
 +
Editors supporting [[BZW]] 1.10 features
 +
*[[BZEdit]]
 +
*[[BZEditWin32]]
 +
*[[BZFed]]
 +
 
 +
Editors supporting some [[BZW]] 2.0 features.
 +
*[[iBZEdit]]
 +
*[[pyBZEdit]]
 +
 
 +
=== Blender ===
 +
The [http://www.blender.org/ blender] 3d modeling application features a plug-in called [[BZWTools]], which enables blender to read and write the [[BZW]] file format and to create [[BZW]] specific objects.  This is the preferred method of creating and editing [[BZW]] 2.0 map files. Tutorials on using blender (not specific to BZFlag) can be found on the [http://www.blender.org/tutorials-help/tutorials/ blender web tutorials] pages.
 +
 
 +
=== Wings 3D ===
 +
[http://www.wings3d.com/ Wings 3D] is a good modeler to use if you're new modeling. It has a much smaller learning curve than Blender, although it doesn't have as many features. There is also a plugin (which you can download [http://trepan.bzflag.bz/wings3d_to_bzw_1.1.tar.gz here]) created by trepan which allows you to export objects to a [[BZW]] file.  It is not widely know that you can export a bzflag map from the actual bzflag client in .obj format.  To do so, you must connect to a server hosting the [[BZW]] map you would like to download and type ''/saveworld -o "mapname.obj"''.  This will allow you to then import the .obj file into [http://www.wings3d.com/ Wings 3D] and edit the map.  Then you can use the  [http://trepan.bzflag.bz/wings3d_to_bzw_1.1.tar.gz exporter] created by trepan which allows you to export objects to a [[BZW]] file.
 +
 
 +
=== Creating BZW files via scripting or trivial programming ===
 +
Several of the existing BZFLAG maps are created using a trivial application custom created for the purpose of generating each map.  The application/program consists of print statements that output BZW file primitives (boxes, pyramids, meshes).  This method, using Perl, visual basic or C, allows re-use of the print statements with variables, for relatively fast creation of nearly identical objects.  Once a coder creates a box primitive, for instance, another box can be created with a simple call to the same set of print statements but with different size or location arguments.  The sets of print statements are then collected by the coder to create a library of available primitives (box, cylinder, fancy-teleporter, cage) that can be used again and again.  The library of primitives may then be used to create additional maps but without all of the original work required to make the first map. 
 +
The flaws in using this method compared to a graphical modeler or even bzedit are:
 +
representation of the work are not available without first launching a bzflag client to look at the map; 
 +
Errors in the library or in calls might make the map unusable but with only visual basic, Perl or C compiler output as a clue; 
 +
The map is created in a text and syntax intensive process that may not be tolerated by many otherwise creative individuals. 
 +
 
 +
The advantage of this method is that the library is relatively easy to improve compared to bzedit and new features of bzflag are easily applied.  In addition, the ability to replicate structures in a for-next loop context allow for repetitive or stepped structures with more rapidity than other mapping methods.
 +
 
 +
=== Editing by Hand ===
 +
The last method of creating maps is simply coding them by hand as text files using the raw [[BZW]] structures. This is still one of the most common ways that people create and edit maps, and can be very fun and challenging. This is easily done in any text editor, for example NotePad on Windows, and TextEdit on Mac OS X.
 +
 
 +
Most maps made by hand tend to be fairly simple, though experienced mappers have made some extraordinary maps in this way. The reason for the popularity of the 'hand made' approach is partly because of the simple structure of the [[BZW]] code, but also the fact that, until recently, there were no graphical editors available for operating systems like Mac OS X.
 +
 
 +
A detailed explanation about creating a map 'by hand' can be found on the [[Editing by Hand]] page.
 +
 
 +
Maps that contain 2.0 objects (such as [[mesh]]) tend to have been either completely made in a text editor, or partly modeled in 3D modeling software, and later manipulated in text format.
  
 
[[Category:Server]]
 
[[Category:Server]]

Please note that all contributions to BZFlagWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BZFlagWiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)