BSP Help Page
Welcome to BSP.
If you are reading this page, you have probably downloaded the alpha version of BSP. Please read the whole thing, many questions are answered.
I will be writing a brief tutorial for BSP in a few days.
Someone suggested I make these colors more "printable". Thanks for the suggestion.
Some else suggested new icons. :) I'll look at any icon bars people submit.
I have given this alpha version number 0.15 so that it is perfectly clear that this is an alpha version.
With this in mind, please note the following:
BSP Alpha Ver. 0.15
I DISCLAIM ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE SOFTWARE "BSP" AND THESE ACCOMPANYING WRITTEN MATERIALS, IF ANY. I DO NOT WARRANT THAT THE OPERATION OF BSP WILL BE UNINTERRUPTED, ERROR FREE OR MEET YOUR SPECIFIC REQUIREMENTS. ADDITIONAL STATEMENTS SUCH AS PRESENTATIONS, WHETHER ORAL OR WRITTEN, DO NOT CONSTITUTE WARRANTIES BY ME AND SHOULD NOT BE RELIED UPON BY YOU.
If this software interrupts the operation of your computer or causes data loss on your computer, I disclaim all liabilitiy for any such occurence. You understand that this is an alpha version of BSP and that the software is provided for your enjoyment "as is".
YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, YOU UNDERSTAND THIS AGREEMENT, AND UNDERSTAND THAT BY CONTINUING THE INSTALLATION OF BSP, BY LOADING OR RUNNING BSP, OR BY PLACING OR COPYING BSP ONTO YOUR COMPUTER HARD DRIVE, YOU AGREE TO BE BOUND BY THESE TERMS AND CONDITIONS. YOU FURTHER AGREE THAT, EXCEPT FOR WRITTEN SEPARATE AGREEMENTS BETWEEN ME AND YOU, THIS AGREEMENT IS A COMPLETE AND EXCLUSIVE STATEMENT OF THE RIGHTS AND LIABILITIES OF THE PARTIES. THIS AGREEMENT SUPERSEDES ALL PRIOR ORAL AGREEMENTS, PROPOSALS OR UNDERSTANDINGS, AND ANY OTHER COMMUNICATIONS BETWEEN ME AND YOU RELATING TO BSP.
This document contains:
I. What is BSP?
BSP is an editor for creating ".map" files compatible with the computer game Quake by id Software, Inc.
I highly recommend that you gather your pennies and order the full version of Quake so id can continue to produce great software.
II. What do I need to run BSP?
You will need a computer.
A. Hardware Requirements.
More specifically, you will probably want to run BSP on a computer similar to what is required to run Quake. I have developed BSP on a P90 with 16 Megs of RAM. If you have such a system, I think the program will work. If you don't at least have such a system, please don't flame me (see bug reporting below) if BSP doesn't work. I am not a commercial developer. I am just a hobbyist like you (or at least some of you). A 256 color display is necessary. I have not tried the program in high color or 16.7 M color, but I think it will work. I recommend running at the highest resolution your computer can muster in windows. My system runs at 1280 x 1024 and that is what I have used in developing BSP.
B. Software Requirements
I have developed BSP using Borland C++ v. 4.5. My computer currently runs Windows 95. However, for now, BSP is a 16-bit application and does not rely on any of the Win32 API. Therefore, I believe that BSP will run on a Windows 3.1 system. I'll try it at work and post word if this is so, but no promises for now!
I also run BSP on a computer with 16 Mb of RAM. If you have less, I don't know if it will work. BSP can use quite a bit of RAM when loading large .map files. If you have less than 16 Mb and BSP works or barfs with any kind of memory message, let me know (see bug reporting below, first).
BSP requires several Borland Run-Time Libraries to run. In particular, BSP requires the following libraries to be present (so far as I can tell):
These files should reside in the same directory as the BSP executable
Files that come with the BSP.ZIP archive:
C. Setting up the BSP.INI file
BSP uses an ".ini" file which I have creatively named "BSP.INI".
BEFORE YOU RUN BSP THE FIRST TIME, you will want/need to edit this file (using whatever ASCII text editor you want).
A typical BSP.INI file looks like this:
The entries in this file correspond to the following parameters:
III. What are the windows for?
Editing in BSP takes place in five windows:
A. The Edit Window shows a current 3D wire frame view of the map from the current camera position. If you perform an activity and this view does not update, hit the "F9" key to force a redraw of this window. The caption displays the current map being worked on. The circle in the upper right shows the current orientation of the camera view direction, in degrees.
At this point, clicking in the Edit Window only has one function. You can set the view direction by clicking in the orientation circle in the upper right. You will find this much faster than using the keyboard, especially for large levels with many brushes/entities.
This window can be slow to redraw on large maps. Bringing in the far clipping plane to about -512 or so will reduce the number of polygons which are drawn.
B. The XY View shows the current map from the top down. There are lists on the XY View to change the gridsize and there is a button to turn the grid on or off. In addition, the XY View contains the current scale for displaying the map.
The left and right mouse buttons are used with this view for performing a variety of operations depending upon which keys (or none) is/are also being held down:
C. The Entity Browser is used for modifying entity key/value pairs and also for creating new entities. The top portion of the window shows "classname" and its description. To create an entity, you would select an appropriate class. Create the brush to make the entity out of and then hit the "Make" button on the browser (or from the menu or control bar). The various check boxes are for setting appropriate flags for the currently selected entity. The key/value window lists all of the key/value pairs for the currently selected entity. The angle buttons add or modify and angle key/value pair for the current entity. The key and value windows can be used to add, edit, or delete key/value pairs from the current entity.
To add a key and value, type the key into the "Key" filed and the value in the "Value" field and hit the "Add" button. To remove a key value pair, select the pair from the list box and hit the "Del" button. To modify a pair, select the pair, type in the new value in the "Value" field and hit the "Add" button.
Clicking on the flag check boxes will insert the appropriate "spawnflags" for the selected entity. The top portion of the entity browser should contain a description of the various flags for each entity. The text is taken from id's .qc files. If you don't like it, modify the text in the ents.qc file. I'm not a .qc expert, so please refrain from asking me really detailed questions about flags and stuff.
D. The Texture Browser is pretty straightforward. Either select a texture from the list box, or click on it with the mouse. The yellow highlight will display around the current texture. There are also buttons to adjust the following:
E. The Selected Brush Window is useful for several things. First, the window is really only relevant when one brush is selected. For now, the view is fixed and looks from +x to -x (or from right to left in the XY View). If the brush is too big or small for the Selected Brush Window, use the "+" and "- " arrows to adjust the size. The "?" button displays the textures for all of the faces of the brush. The "current" face is the yellow face and it's texture is written in yellow. The list box may be used to change the "current" face.
To change the texture of the whole brush, pick a texture in the Texture Palette and hit the "b" button. (Note: If more than one brush is selected, then all of the brushes will be painted with the selected texture. You have been warned.) To change only the current face (drawn in yellow), hit the "f" button.
Finally, the Selected Brush Window may be used to move the brush up or down, or to grow the top or bottom face of the brush. For now, the mouse drag interface is a bit clunky.
To move the whole brush up or down, simply click with the left mouse button inside the brush and drag up or down. For now, you don't have a lot of precision when doing this, big moves occur. For fine up/down motions of the whole brush, use the "-" and "=" ("+") keys on the keyboard. Sorry.
To stretch the top or bottom face of a brush, click just above the top of the brush (and the click should really be pretty close to the top) and drag in the appropriate direction to grow or shrink the top face of the brush. Same goes for the bottom. Alternatively, the top of the brush can be raised or lowered with the +Top and -Top buttons, respectively. Same goes for the bottom. The increment is set by the current gridsize.
The "w," "f," and "t" radio buttons are for wire, flat and texture modes in the Selected Brush Window. You can play with them, but for now, not much of interest will happen.
IV. What features does BSP have?
BSP has so many other features, I don't know where to begin. Just kidding. BSP has enough features to allow you to create fairly complicated .map files. In fact, some of the features may tempt you to go overboard. If you go wild, you will pay when you try to build the .map with qbsp and you wait, and wait, and wait. Spiral staircases are one of these features.
Portions of BSP are based directly upon id's QuakeEd. For the record, John Carmack gave me express permission to use any of the source I wanted. BSP is modeled, in many ways, after QuakeEd. I figured their feature list was a minimum and, thus, have implemented pretty much all of that functionality. The "ZChecker" is not in BSP, though, so editing is different.
Also, if you have selected brushes in one map, and then open a blank .map or open another .map file, the selected brushes will be copied over to the new map. This can be useful.
Other features include (from the button bar):
Features on the Menu (almost all of the button bar features are in the menu):
Keyboard Features:
How does this "hits" thing work. If you try to select a floor and keep getting the ceiling instead, you need to use the 0-9 keys to select the proper brush. Any time a bare left click is made, BSP keeps track of all of the brushes the click could have selected. The "closest" is actually selected or deselected. But, up to 9 other brushes are stored in the 0-9 keys. Hitting these keys (usually you will only care about keys 0 to about 3) will toggle a particular brush on or off. If Show Hits is enabled, then the Edit Window will show the potential selected brushes in blue, along with index (key) numbers at the vertices. Use these numbers to select the brush you want. You'll have to play with this to get the idea.
V. What do I do with .map files?
Save them and then run qbsp, vis and light on them. Details for doing this can be found elsewhere.
VI. BSP crashed my system and I'm mad, how do I complain?
SAVE YOUR WORK OFTEN!!! I can't emphasize this point enough!
A. Known Bugs / Robustness Issues
Bugs fixed to date:
FIXED: 8/13/96 v. 0.11 Made bsp.ini error checking more robust to now present a file open dialog box when BSP can't find a file. Should solve most setup problems. If you are prompted to select a .qc, badtex.bmp or .wad file, your bsp.ini is not set up correctly. You should fix it, read the instructions carefully on this.
FIXED: 8/14/96 v. 0.12 If making lights, stairs or arches crashed the system b/c it didn't bring up adialog: try v.0.12, I think I figured out the problem.
FIXED 8/18/96 v. 0.15. Upon loading, the wad and world class names are displayed correctly. Cleaned up some view refresh problems. Added mirror/rotate 90 buttons. Added dialog to rotate on X, Y, and/or Z axis by arbitrary degrees. Made Selected Brush Window default to a larger view. Fixed problems with F12/brush subtraction on complex brushes (should work right now). Fixed (1/2 way :)) texture palette problem in 256 color mode (true color/high color still looks like garbage). Fixed Texture browser button "creep". Some other stuff I can't remember.
The following are bugs that I know of and intend to fix as soon as possible. Please don't send reports about these problems, unless you have a programming suggestion on how to fix the bug!:
B. How to Report Bugs
Please remember that this editor is a one man job, for a guy who has a very busy other life. Don't flame me about how BSP sucks. If you don't like it, there are/will be plenty of other options. This project started as a study of Binary Space Partitioning Trees and ended up far from their as an exercise to learn about Windows programming. The topic was new to me. Some of the bugs are from me being naive about Windows programming. Some are from me being an idiot :).
This editor is FreeWare. You get what you pay for.
VII. What features will be added to BSP?
And, I'm always open to suggestions about essential features!
VIII. Who am I? (Me, not you).
I am currently a Patent Attorney in Atlanta, Georgia. I am 28.
I went to law school at the University of Florida, my home state. I have a chemistry degree from Harvard.
I spent much of my time their, and since I was about 12 years old, programming computers. I was a computer consultant for Harvard and various organizations around Harvard for the four years I was there and for several years thereafter.
I like to play computer games, but am more interested in seeing how they are programmed.
I read alot.
I could say more, but that would be a bit pompous.
My resume is at http://www.needlepatent.com
IX. How to reach me.
Web:
http://ourworld.compuserve.com/homepages/bernier
E-mail:
Snail mail address and phone number available upon request.
I hope BSP helps you create worlds!
If you make a cool .map with BSP, please send it to me, I'd love to check it out...