CherokeeBlackjack's right, mapmaking isn't as hard as it might look, in fact, I dived in immediately after I downloaded FFEdit and I was used to mapmaking in only after about half an hour. Also, none of the maps on FXForce used 3dsMax at all, unless you count the ones that used the small_blank terrain made by Aphex.
Here's a mini FAQ for a start.
1. What do I need to make a map?
Well, technically the only thing you need is FFEdit, (available here) but I highly recomend an image editing program that can edit tga files, (either paint shop pro, or photoshop, get photoshop if you can afford it, if you can't get paint shop pro) and a hex editor (I use this). If you want to make terrains and objects from scratch, you need 3ds Max and the character studio add on, which will add up to a total cost of 5,000$. You'll also need to practice for a while to be able to make something good, and this isn't required for map making (if you do get 3ds Max, be sure to get 3ds Max 5, since 6 won't export Freedom Force mesh files).
2. How do you get started making a map?
Note: doing what's explained here will not allow you to edit any objects the map already has
Well, first open up FFEdit and select the Mission tab. Click the new button. Use the new folder button to create a new folder for your map, and open the folder, then click open. Now click browse next to the Layout file box and select the layout file for the terrain that you want. If you selected the file for an ingame level, uncheck the Markers and Scenery checkboxes under the Mission Markers box, and check the Layout checkbox. Now select everything except _impobj_0 and delete them. This will remove all the objects the map already has. If you had left them, you wouldn't be able to edit them in the in game editor, and they wouldn't behave like regular objects. Now click in the name box and type in a name for your map. You're now ready to begin actually making the map.
3. Is there anyway I can edit an ingame map and keep the objects with it?
Yes, but it's a bit more complicated. There's a file in the data folder called missions.ff. Make a copy of it and rename it so it's missions.zip. This will change it into a zip file. Open the zip file and unzip it. You might have to use the winzip wizard to do this. Now go to the folder that you unzipped it to and find the folder for the map that you want to edit and copy the mission.dat and mission.mg files and paste them into the folder for your custom map. Now open up FFEdit and load the mission.dat file in your custom map folder. Change the name, and you're ready to star making the map.
4. How do you use the level editor?
To start it, click the Edit In Game button at the buttom of the FFEditor. This will open Level Edit. It's a modified version of the FF engine, and all graphics and sound settings you have for FF will be applicable here. The camera controls are the same as in FF, which if you don't know, you really shouldn't be reading this. Click on any object to select it, and you can move it by clicking and dragging. Hold down the Z key and move the mouse left and right to rotate it. Hold down the X key and move the mouse up and down to lean it forward or back, or in some cases left or right. Press H to turn \"Snap to Terrain\" on and off. What this basically means is whether the object changes it's vertical level to put itself on top of other objects and terrain as you move it. If it's on, it does that, if it's off, it remains at it's current elevation no matter what the terrain or object elevation. Hold down Shift and move the mouse up and down to change it's elevation. What really happens, actually, is that it moves the object nearer or farther to the camera, but since the camera in FF is always overhead unless you use the Free Camera cheat (which works in the level editor, by the way) so it's basically the same thing. Press Delete to delete the selected object. Now comes the fun part, adding objects. Press the C key, and the create menu opens. There are Seven tabs:
Add a Character
Add a Positional Marker
Add a Light
Add a character is used for adding characters and custom objects Positional Markers are used for mods and for danger room maps Lights, are, well, Lights Finally, we come to the directories. These are where all the objects are. Area Specific contains nearly all of the objects, Characters contains the Turrets, FX contains the Vine trap object from the Pan levels and the Light from the shadow's lair level, and Vehicles contains the Cars, Trucks, Buses, and the rest of the Vehicles. When you open up Area Specific, you will see several subdirectories, these are organized from what kind of maps there were used for. Objects found in City maps will be in the City subdirectory, and objects found on the Robot Factory map will be in the Robot Factory subdirectory, etc. Look around a bit to see what's where. To add an object, go through the subdirectories until you see something like object_name.nif. Double click on that and the object will be added where you are looking at (or, if you have Free Camera enabled, where you were looking at when you used the cheat). Press Spacebar to add another of the last object that you added. Use the object controlls refered to earlier to move and rotate it. Look in the FFEditor documentation for any controls that I might have forgot.
5. What are positional markers for?
Positional markers, well, mark positions. They are used for mods to define positions on the map that will be used during scripting. They are also used for Danger Room maps to define player and enemy spawn locations. You add a positional marker by pressing C and double clicking on Add a Positional Marker. It will look like a white transparent sphere with an arrow inside it. You can rotate and move it like any other object, and you can adjust the size of the sphere by holding down the right mouse button and moving the mouse up and down, but you won't need to do that for danger room maps. Select it and press the N key to rename it (this also works with any other object). For a dangerroom map, for it to show up on the list of dangerroom maps, it needs to have the following markers on it:
The squad markers are actually for multiplayer, they determine where each of the player's squads will spawn. Skirmishspawn determines where the player's squad will spawn in a dangerroom game. The rest of the markers determine where the enemies in a dangerroom game will spawn. You could add all those positial markers and rename them manually, but this can be very time consuming. Instead, why I do is what I call the merge dats technique. What you do is you find another dangerroom map, preferably one that uses the same terrain as your map and you copy it's mission.dat file. You put the copy in a different folder and open it in the editor. Now, select everything except the dangerroom markers and delete them. Set everything in the Layout File, Texture Dir., and Name boxes at the top to the same as your map. Go to the options tab and click the merge dats button. Select the mission.dat of the map that you're creating to write to, and the copied mission.dat that you just made to read from. Open your map, and the dangerroom markers should be there. Open the Level Editor and move the markers to where you want them. You may need to use the Free Camera Cheat to do this.
6. How do you do retexturing?
There are two ways. The first way is you change the texture directory. Above the Name box in the upper left corner is the texture dir. box. It should have \"library\\area_specific\\_textures\" in it if you haven't changed it already. Change _textures to something else. Now open the area_specific folder and create a new folder named what you changed _textures to. Now copy the textures for all the objects and the terrain that the map uses to here (you're going to have to have unzipped art.ff earlier for this, do the same thing that I told you to do with missions.ff if you haven't). Start Level Edit and look around to see if you got everything. If you missed a texture, the parts of the object or terrain that use that texture will appear white. If you did miss something, open up the nif that the object or terrain uses in a hex editor. Search for tga to find out what textures the object uses (remember to get the rubble textures if you have any buildings on the map). Now that you have all the textures in the folder, open the ones that you want to change up with an image editor and change them to what you want. It helps to have skinning talent for this. The downside to this technique is that you have to have the texture of every single object the map uses in the folder, even if you don't want to change all of them. This takes up a lot of space. The other way requires a hex editor. You need to copy the object and terrain nifs that you want to use different textures, and put them somewhere in the Freedom Force folder, preferable in a subfolder of Area_Specific for the objects, and the art/library/terrain folder for terrains (be sure to include the other nifs used when you destroy the object in game). Now open the copies in a hex editor. Search for tga and change the name of the textures it looks for, note that the new texture that it looks for has to be the same length as the old one. Now copy the original texture of it, paste it into area_specific/_textures and rename to the texture that the nif now looks for. Open it up with an image editor and change it to what you want. Now you're going to have to make a custom object using the nif, or make a level.txt using the terrain (IGTTL).
7. How do you use lights?
Lights are used to apply specific lighting to a certain part of the map. You don't actually need lights, as without them the level still looks ok, but lights can be used to add effects to a certain part of the level. To add a light, press C and double click Add a Light. You can move it like other objects and position the light where you want. You will be able to see a visible difference as you move the light around the level. You can also edit the colors of the light. First go into your image editor and play around with the color settings until you find the color that you want for your light. Now select the light and go to the marker details box in FFEdit. You'll need to have the layout checkbox under the mission markers box checked for this to work. In the Marker Details box, there are 4 textboxes designated Rot. These control the colors of the light. The top one is red, the next one down is blue, and the third one down is green. Copy the color settings from your image editor to this and you now have a colored light. Also, if you add a negative to the front of the color settings numbers, you will get a \"light\" that creates darkness. Try it.
8. How do you use custom objects?
First, you need to create a template for the object. Start FFEdit and go to the Templates tab. You'll see a list of existing templates on the left and a template info box on the right. I'll explain the template info box first. At the top there are 3 boxes, Name, Class, and Material. The Name is exactly what it sounds like, the object's name. Class dictates whether it's an object, a vehicle, a building, a powerup, or a number of classes of characters. Use object for most custom objects, vehicle for when you want to use a character mesh as scenery, and be sure to not place any vehicle nodes near it unless you intend it to drive around. Use building if you've built an object that you planned to use as a building in 3ds Max (refer to the Art documentation that came with the Editor for how to make custom objects, buildings, etc. in 3ds Max). Material sets what the object is made of, you should be familiar with this if you've ever created a character in FF. Under those 3 boxes is the Example Nif box, which you use to set what nif the object uses. Click the '...' button next to it to browse to the nif, or type in the location if you want it to use an ingame .nif (which you can't browse to). The attribute overrides boxes determine the properties of the object. Click the drop down button on any of the boxes to select a property, then type in a number in the text bos to the right of it. The 2 properties that have to be set for any object are Mass and Health, which both do exactly what you'd expect. Note that the Mass number will be modified in game by the material that you set. I don't know what the exact modifiers are, so if anybody does know, can you tell me? There are a whole lot more, see the editor documentation for a list of all of them. I'll talk about 4 notable ones. The first is MinHealth, this makes the object stop taking any damage once it's health reaches the set number. MinForce dictates how hard it is to move that object, the bigger the number, the more force is required to move it. Setting it as -1 makes the object immovable. Physical sets whether the object can be interacted with. Finally, Flyover sets whether the object's name, health, etc. will show up when the mouse it put over it. Setting it as 0 makes it basically indistinguishable from the terrain in game. At the bottom, there are 5 boxes. The Arg ones are used for objects with special scripted commands, the Arg2 box dictates the name of the special command the object has, and the Arg3 box dictates what scripted function is called when the command is activated in game. The Skin box dictates what skin the object uses if it's set as a character or a vehicle. The Explosion box dictates what, if any, area attack is used when the object is destroyed. To create a custom object, either find an existing template with properties similar to what you want, rename it and then Save, and modify to what you want, or create a new template from scratch with the New command at the bottom. Now, create a character with the same name as the template, and you can add it in the ingame level editor.
9. How do I use a custom terrain? This is less complicated then using a custom object. First, you need a terrain nif (refer to the Art documentation for how to make them). Place this nif in a subfolder in the art/library/terrain folder. Now, if you already have the level.txt, extents.txt, and lights.txt files, place them in a subfolder in the ar/level layout folder. If you have hex edited a terrain file to use new textures and thus don't have those files for it, copy the files from the original terrain. Now open the level.txt file in Notepad and change the location of the terrain nif to the location of the new one. You can now set a map to use the layout files you just created using the Layout file box.
10. Is there anyway to create custom indoor levels without 3ds Max?
Yes, there is. I call this the Walls and Fog technique. Be warned that this is extremely tedious, though. To begin, you need to create 2 objects. The first is a wall object. Set the example nif to library\\area_specific\\underground\\shadows_door\\shadows_door.nif if the map is going to use a different texture folder, or a copy of that nif hexed to use a different texture if you're going to use ingame textures for the rest of the objects. Now, for the attribute overrides, set minhealth to whatever health is, minforce to -1, and flyover to 0. The second is a fog object that you'll use when the existing ones are too big to be used. Create a copy of the nif of the robot parts box used in the Mr. Mechanical base level (the really big crate). Hex the copy to use a different texture, and make the new texture all black. Now rename the fog_of_war template, save, and then set Example nif to the nif that you just created. Now create a map using a copy of the small_blank terrain hexed to use 2 textures (like the terrain used with the Sky map by Gengoro). Place the walls to layout the rooms, and then put in the fog to get rid of everywhere else. Use the Room_1 object under the area_specific/robot_factory directory to get rid of any large areas (make sure you change it's elevation so it's level with the top of the walls first), and then use the custom fog object you made to get rid of the rest (again, remember to change the elevation so the top of the crate is level with the top of the walls). You now have an indoor map, you can now place the rest of the objects and other things in the map.
10. How do I create ground fog?
Note: place other objects before this, as you will end up selecting the ground fog whenever you try to select an object below it. First, you need to add the clouds either from Pan's Island or from the Empire State Building levels. They will appear very far below the terrain. Now turn off Snap to Terrain, click and hold on one of the clouds, hold shift, and raise it up so it's about level with the terrain. Next move it over so it passes through the terrain, from there you can adjust the altitude further if need be.
11. How do I create water?
There are 2 techniques. The first is what I call Cloud Water. Basically, you add a bunch of ground fogs in which are textured with a water texture. You can find this technique in most maps which contain water. I have never figured this out, so if Gengoro or Ewzzy would like to elaborate on it, please do. The second is what I call Sky Water. You take a sky wall object which is textured with a water texture and rotate so it's on it's side, then place it. I use this technique in my Volcano map (though in that case it's lava, not water). Thanks to Dr. Mike for unkowingly teaching me this method in one of the maps for his Strangers mod.