Bsp making        

Making A Quake III BSP File


What is BSP

BSP is Binary Space Partitioning, a popular algorithm for drawing a scene. The algorithm offers efficient culling and collision detection. I am not a 3D Programmer so I won't detail the constructs of the alogorithm, but I will focus on its ability. BSP is very helpful for making an interior scene with collision detection and a lightmap, making the scene look more real without destroying your computer resource.

Making your own BSP file

Before making a BSP file, you are required to have Quake 3 installed in your hard disk. The purpose of this tutorial is to help you make your own ..BSP file from your favorite 3D program. If you do not have one and you do not want to be a 3D Artist but rather a programmer or tester, skip every step and go straight to step 4

Step 1: Which 3D program use first to make a scene for BSP?

Because each 3D Artist has his favourite 3D modelling program, so this Tutorial do not force you use any 3D program...Use what program you have to make your scene.
For example, you can you 3DSMax, Maya, XSI or some open source 3D programs such as Blender or Wing 3D to make your scene. However, your scene must follow these rule:

+ Avoid making a model too complicated, if not, you will have problem in exporting file later
       + Do not mapping your scene because you will use quake 3 shader later, so mapping now is not necessary
       + Do not model with any concave polygons.
           - Note, a model with a concave polygon has some interior angle that is greater than 180 degrees

Image

  • Illustration from Maya help file


Conv_hole.jpg
So, a model with a hole easily leads to concave

This scene is made in 3DSMax

Scene_max.jpg

Step 2: Export to a quake .MAP file

Step: 2.1 Either Use AC3d

After making your scene in your favorite 3D Program., export the whole of your scene .3DS or .OBJ (most 3D program support these types of file so you should not worry)
Download AC3D from www.ac3d.org , you have 14 days free to use it and if you like, get it because you CAN really model with it and its price is not too high.

Ac3d.jpg

In AC3D, import your .OBJ or .3DS file and make a simple step, export to quake .MAP file

Step: 2.2 Or Use Blender

You should be able to import a variety of formats into Blender (a free modeling tool). GarageGames has a MAP Exporter for Blender. Copy the export script into your Blender scripts folder. Usually found here. C:\Program Files\Blender Foundation\Blender\.blender\scripts

Step: 2.2.1 Set Blender Default User Scene

01_make_bsp.jpg

The default blender scene contains a box and a lamp. I prefer a clean scene. I also like a 3d view and the outliner panel. The outliner shows any bones and the names of the subgroups to keep things organized. When you get the layout you want, hit Control-U to save the layout. This will be the initial state for opening Blender in the future.

Step: 2.2.2 Import OBJ

02_make_bsp.jpg

Blender supports a bunch of formats for importing. I use the OBJ format because most apps that I use support it. I.e. Blender, Modo, ZBrush.

Step: 2.2.3 Export Valve 220 Map File

03_make_bsp.jpg

Ready for export. Export as a Valve 220 Map file. Thank Vincent Billet for creating the export script. GarageGames provides some nice tools to convert this .DIF file into a BSP file.

Step: 2.2.4 Convert to a Quake Map File

You'll need a copy of QuArK6 (Quake Army Knife). Import the Valve 220 .MAP file and export a Quake 3 .MAP file. This .MAP file should be ready for GMAX Tempest.

Step: 2.2.5 Get Map2Diff Plus from GarageGames

You need to get a copy of Map2Diff Plus. Put the map2dif_plus.exe somewhere in your path. Make sure you read the Map2Diff Plus Tutorial.

Step: 2.2.6 Convert Valve 220 Map File to a GarageGames DIF File

When map2dif_plus.exe is in your path, run the (map2dif_plus.exe test.map) command. This will create a .DIF file. This .DIF file is ready for the Torque Game Engine.

Step 3: Refine .MAP file with Q3Radiant

Note from Skinhat:
I couldnt find 'q3radiant' on www.qeradiant.com. Seems to be have been replaced by gtkradiant therefore the text below is wrong. My suggestion is to download q3radiant from: http://www.3ddownloads.com/qeradiant/Q3Radiant.

Your .MAP file export cannot be used yet. You will need Q3Radiant, (not GtkRadiant) to refine it to the Quake 3 .map file.
You can download Q3Radiant for free. You will need Quake 3 installed to point Q3Radiant to a working Quake 3 engine. Just download a copy of the Quake 3 Demo so that when you launch Q3Radiant you can point the dialog at C:\Q3Ademo\quake3.exe. And now, its time to open your Q3Radiant and import the .MAP file.

Re-save the scene to a .MAP file. You can nearly touch the final .BSP now. This step allows Tempest to read the .MAP file

Step: 3.1 Use Either The Quake 3 Demo

The default installs to the C:\Q3Ademo folder. So that means you'll want to do a custom install of Q3Radiant which should install to the C:\Q3Ademo\Tools folder. You'll want to unzip C:\Q3Ademo\demoq3\pak0.pk3 into the C:\Q3Ademo\baseq3 folder. If you want to use your map in the Quake3 Demo, you'll need to move the files from C:\Q3Ademo\baseq3 into the C:\Q3Ademo\demoq3 folder.

Step: 3.2 Or The Full Quake 3 Version

Step 4: Gmax, Tempest and Export to .BSP file

At this time you have had a Quake 3 .MAP file and this is the the finalization. In this step, you will need Gmax and Tempest from TurboSquid. Remember to read gmax_tempest_install_guide.pdf. It is very important document. Gmax and Tempest Game Pack (Quake III) are free, however, it requires you to register.

Now, run tempest and config your quake 3 folder as the install guide and open your map file

Your map file will not include material. It take a little time to map your scene. Open any .Shader file in quake3folder\baseq3\scripts and add these script to define your material


textures/mywall
      {
            {
                  map textures/base_door/toto_wall.tga
            }
            {
                  map $lightmap
                  rgbgen identity
            }         
      }




with textures/mywall at header is name of your quake 3 shader and textures/base_door/toto_wall.tga is the path to the texture file (in quake 3 folder)
Now, open that shader in Shader Navigation in your tempest program and you will see your texture. Choose your object that need to be mapped and simple click on your new shader.
Map all your level, if you want to dig more in quake 3 bsp shader, read the shader manual at http://www.idsoftware.com/business/techdownloads/

Gmax.jpg

Mapping all your level and at a new entity info_start_player for your level can be test in quake 3 arena.
At this point, you also can add quake light to make a light map to your level. Practice a lot and you will find tempest is great for making BSP, and you can really start to make your scene with tempest with quake 3 brush (however, this is a tough thing to model scene with only box and cylinder and I myself want to model in my favorite 3D program).

The most important thing to a bsp file is: prevent leak, that means there are no *leak* in your scene. To avoid it, create a box brush that big enough to contain all your model and the press *cgs hollow* it. Your scene can not leak now

After mapping and lighting, compile it to make your own BSP, use full complile and your BSP is full VIS and lighting now.

To test your new bsp file, you must save your scene in Yourquake3folder\baseq3\maps and run quake, in console mode, type

sv_pure 0
          map name_of_your_bsp_file

Test your map before give it to your programmer, and he will be happy with your file. Remember when handing these files to your programmer

+ BSP file
     + baseq3\scripts\yourfile.SHADER
     + baseq3\textures\your_texture_folder

Conclusion



This is my scene that was made in Ogre by my programmer (sometimes I think he is a god when making these kind of awesome program file )

End.jpg

If you have a better way, just forget this tutorial and make your own BSP :-)...This way is too complicated, I think sooo, shighnnnnnn

© Ghostlake114