BZEditWin32 provides a graphical representation of the BZFlag world, and tools to place various objects in it. It has tools to create and edit the basic objects that were supported in BZFlag version 1.7. These include:
BZEditWin32 is still in use today by some map makers who prefer the a more simple editing interface then the one provided by the BZTools blender plug-in.
BZEditWin32 is written in C++ using the Microsoft Foundation Classes or MFC. Development began in 2003 as a simple BZW map viewer but evolved into a full blown map editor shortly after. It was written by Jeff Myers as a way to get back into the BZFlag community after he found that it had gone open source. The current application shares it's world loading and editing system with the Linux based BZEdit. Active development on the project stopped in 2005 with a set of bug fixes made by Daniel Remenak.
The BZEditWin32 codebase is included in the BZFlag CVS repository as the bzeditW32 module.
A number of requests have been made to port BZEditWin32 to other platforms, namely MacOSX. The use of the MFC framework prevents easy porting of the code. The iBZEdit projects have attempted to create an OSX native editor. A cross platform rewrite of BZEdit was started, and is included in the tools module of BZFlag CVS, but was never finished.
The last binary version is also available on the BZFlag SourceFORGE downloads page.
Compiling and building
BZEditWin32 can be built with the Microsoft Visual C++ compiler, version 5 or later.
Controversy and confusion
When first written, BZEditWin32 did not see wide use or acceptance by the BZFlag Community. It was not until nearly a year later did it begin to see real use. At that time the author had stopped active development of the project due to lack of interest. This lead to a large group of users who wanted a windows based BZW editing tool, but had to deal with the bugs and inconsistencies of the initial versions of the editor. The largest complaint was dealing with a bug that would cause the editor to "eat" a map when an object was deleted, causing it to save out an empty file, loosing the work of the user. After hearing about the resurgence of use, the BZFlag developers worked to fix these major bugs, and make the application usable.
Additional confusion lies with the fact that BZEditWin32 only supports editing of the basic "1.10" type objects. It was not updated to support the extended map objects that were added with version 2.0 of BZFlag. This includes Mesh objects, Textured Materials, and Physics Drivers. A number of new users are unaware that BZEditWin32 was written before these features were added.
Replacement by blender
- Object creation tools.
- Mouse Modes
- Main view area
- Element Filter and List
- Group List (not working)
- Current Element Name and Type
- Current Element Size and Position
- Current Element Rotation and additional data
- Element Apply Remove and Duplicate buttons
The basic idea behind maps is adding and arranging various objects to make a fun and exciting play field. BZEditWin32 only supports 4 types of visible objects:
Looking around the map
To navigate around the map, you drag with the right mouse button. A simple right drag will rotate the map. Holding down the Shift key while right dragging will move the view along the floor plane. Holding down the
Ctrl key while dragging will move the view up and down in Z (height). The wheel on the mouse is used for zoom control.
As shown in item 2, the preset view buttons will take your view back to any of the preset views. the Z+ button will take you back to the top view. Y+ and Y- take you to the Front and Back views, while X+ and X- take you to the Right and Left. The button labeled ISO will take you back to the initial isometric view that the application starts up in. The "X0 Y0" button will take your current view and just center it around the middle of the map (the all mighty origin)
Item 1 points to the Object Creation tools, these buttons are used to add new objects to a map. Click on one and a new object of that type will be added to the map. Each button is a different type of object, from left to right Box, Pyramid, Teleporters, Link, and Base.
The element list shown in item 5 consists of 2 parts. The larger part will list the objects that are currently in the map. Each object has a type as show by an Icon to the left of the item, and each object has a name. The simple box image (figure b) shows a map with a box and a teleporter. Clicking on an item in the list will cause it to become selected. An item must be selected before it can be edited. Objects can also be selected by clicking on them when in selection mode. Above the list is the Element Filter. This pull down menu allows you to have the Element List show all the elements or just ones of a specific type. This can be helpful on large maps.
Item 6, the group list, was never implemented in the software, and is hence unused.
Items 7 through 10 show the Element Inspector, this is where the most of the object editing is done. Here is where you enter the size and position of each object, in addition to other features that some objects may need. Every object EXCEPT for a LINK has a Position, Scale, and a rotation.
Position is where the center of the object is on the map, and is specified as a set of 3 coordinates X,Y,Z that represent the horizontal, vertical, and depth position of the object. For X and Y the position of the object is measured to the center of the object. For Z the position is measured to the bottom of the object.
Scale is how large or small the object is. Each axis can have a separate scale. so you can make long skinny objects and tall fat objects, or what ever you like. For X and Y the scale is measured from the center of the object out to the edge of the object. For Z the scale is measured as the total height of the object. This means that if a Box has an X scale of 1.0 then it would be a total of 2.0 units wide. For teleporters the width tis defined as the Y scale *2 plus the Border * 4. The X scale defines how far out the transparent "field" sticks out from the teleporter centerline. See below for more on the border.
Rotation is what angle the object is spun around at. In the second picture above, the selected box has a rotation of 45. All rotations are around the Z axis, and are in degrees.Teleporters have an additional data item called the "Border". This is the size of the yellow and black striped part of a teleporter. It can be any value from 0 to the Y scale value. It is also recommended that your X scale be less then or equal to the border. For some stupid reason the teleporter will always have 2 extra borders added to its Y scale, seems silly but that's just the way it's done. See the Anatomy of a Teleporter image for more info
CTF Bases have all the data for a box, and additional field called Team. This represents a team ID from 1 to 4 or Red, Blue, Green, and Purple.
Links do not have positions or scales, but do have a "to side and a "from side". These sides tell the game how a tank can enter one teleporter side, and come out another. The link always goes one way, From into To.
The apply button will make the selected changes to the map and show them on screen. To remove an object use the remove button. There is also a button that will allow the quick duplication of an existing object.
Item 3 shows the mouse mode buttons, they put the software in various input modes. The modes are ( from Left to Right) Select, Move XY, MoveXZ, Rotate, and Scale. In select mode, a left click will select the object that is under the cursor. Move XY mode will allow you to drag the currently selected object around in X and Y, while Move XZ allows the same just in X and Z.Note these features do not use the current views rotation properly so they are only useful in the top and ISO views. The Rotate mode allows you to use the mouse to change the rotation of the current object, and scale allows you to change the objects scale, in X and Y on a normal drag, and X and Z if the Shift key is held on the drag.