1. Preface
  2. World Geometry
  3. Editing Resources
  4. Adding Resources
  5. Scripting
  6. Appendix


World Geometry

Section A1 | Creating a world file

To create a new world, or a level, open up Serious Editor and click on File->New->Document.World. You will be greeted with this screen (image 1). Don't worry if it doesn't look exactly like the screenshot shows.

[image 1]
image 1

Section A2 | Moving around

Notice the dark lines. Those are the coordinate lines and they meet at (0, 0, 0). The positive part of the X axis is to the right, positive Y axis is up, and positive Z axis is pointing back.

Let's create a primitive for Sam to stand on. We can do this by pressing INSERT on the keyboard. Make sure the mouse is inside the map view(perhaps even click on it). You should be seeing a green cube.

To move the cube around, we can hold down CTRL, grab and drag one of the arrows, or grab and drag the square, experiment with it. If you press and hold right mouse button, you will be able to rotate the cube by 15 degrees and it will be shown how much you have moved the cube if you are to translate it. Press CTRL-z to undo, if you so desire. If you want to manually enter the coordinates, press Q, that will show up the Tools tab, in it change X, Y and Z values, H P B are rotations, stretch will not do anything at the moment, because the cube is not actually solid, it's an Editor model, it doesn't show up in-game.

Section A3 | Creating some geometry

Now, to actually make ground of sort we need to switch to Mesh Editor. To change the current editing mode to Mesh Editor press E while the cube is selected, it needs to be selected so the Editor knows we are editing that specific cube. Now go to the left side-menu that has just changed and press the Create tab, in it select a primitive, preferably a box, now drag a box in the map view. Once some shape is formed, you can use the arrows to morph it more, or use the Tools menu, by pressing Q, and going to 'Box guide'->'Box size' and changing the size parameters there, play a bit with those settings, not just size. Once you are done, make sure the platform is actually below the point where 2 axis meet (0, 0, 0) so Sam will not fall into the void. Press D to drop the current tool (Tool.PrimitiveBoxTool). Notice that we are still in the Mesh Editor. Press E again. Now we are in the World Editor.

To test the map, press T, to test the map from current view in the Editor, press Shift-T. Note that we didn't set up a spawn point, that's why the player spawns at (0, 0, 0), that's the reason we had to make sure the platform is at a correct location.

Make sure you are in the the World Editor when pressing T, otherwise you will do something you probably don't want to, press CTRL-z to undo if something bad occurs, and always check the console for information on what you are doing and what's happening.

If Sam immediately falls down, that means that the mesh you created goes a bit too much over the point where the 2 axis meet, lower the cube down either in World Editor, or in the Mesh Editor. Note that if you change it in the Mesh Editor, the origin stays where you put that cube in the first place, that means if you move the mesh a lot and want to rotate it in World Editor, you will rotate it over a point that's far away from it. You can change the position of the cube, that has now disappeared, by going into the World Editor and pressing Q, in the Tools tab you can manually set its position, or by holding CTRL and grabbit those arrows.

Section A3 | Saving the map

Since this map is really well designed, we need to save it! Press CTRL-S to save the map and all of its resources. Navigate to "Content/Serious Sam 3/Levels" then press F7 and name a directory, go into it and save the map as... "bestMapEver.wld".

Section A4 | Free look

Nice! Now let's see our glorious map in the editor, can we do that? Of course we can! Move your mouse to map view and press ESC. You can now use W, S, A and D to move and mouse to rotate the camera. Use the mouse wheel to change the speed of translation.

Some other ways to move the camera is holding space and holding Left Mouse Button and dragging the mouse around.

To focus on what's currently selected, press A. If nothing is selected it will focus on the whole map. Note that when you focus on a certain object the grid gets smaller, so the objects you move can be translated more precicely (it has no effect on rotation). That points us to the next useful feature, changing grid gap.

Changing grid gap can be used to have more or less detailed translation when moving the objects around. To increase the grid gap press CTRL-space-LeftMouseButton or CTRL-space-RightMouseButton to decrease the gap size. Note that if you increase the grid size the camera will zoom and transalte to the pointed location(where mouse is pointing) while when decreasing it will only zoom out.

Section A5 | Texturing

It's dull for our platform not to have a texture, so let's make things right!

Start off by going into the Mesh Editor (in case you forgot, press E while the ground is selected) and making sure you use Polygon and not Vertex selection. To do that, click on the button labeled Polygon in the down-left side on the map view. Now select all faces of the mesh. Note that you can also achieve this by pressing '+' on the numpad, press '`' (tilde) to deselect everything, this is useful because you should always deselect everything once you are done using a tool, that is when drop a tool.

With those polygon faces selected, press SHIFT-S, this will bring up a Mapping Tool window (image 2), it's used for UV unwrapping, we need that for textures. For now just press the Normal tab and press OK. Now the mesh is ready for texturing!

If no polygons are selected Mapping Tool will actually UV unwrap all the polygons.

[image 1]
image 2

Now, still in the Mesh Editor, make sure you can see a tab named Layers, if you can't press ALT-1 (not on numpad, but a key above Q, W...). Once you click on it, expand the Polygon Maps section by pressing a little `+` that's left of the text. Here we see all surfaces that our mesh has, for now it only has one and it's unnamed, hence it's called Default. Press on "(none)" for the Default surface. Press New->ShaderPreset. Now add a new configuration by pressing the yellow `+` button next to Configuration field, that's the first field below the Default surface. If you can't find it, expand the Default field by pressing the little `+` next to "Default" text. Now there is a Shader field inside the Configuration field. Press "(none)" on the Shader field and press Browse. Select Standard. This is what you will probably do a lot, so remember it. There are a lot of options for the newly created shader. The one we are interested is called Base Texture. Press "(none)" for the Base Texture field, then on Browse and navigate to "Content/SeriousSam3/Textures/Generic/Ground/", here you can select one of the ground textures. Once you are done, look at the field below Base Texture, it's Base UVmap. For Base UVmap select Texture, or however you named the UV map when you pressed SHIFT-S, by pressing a little down arrow to the most right side of the field, if you can't see it you may have to scroll the window a bit. Press ESC to drop what you are typing. To preview what we've done, press Smooth Shaded on the top bar in the map view, then select Shader. This will show us how it looks with shader applied. It looks good to me. The final touch is to add a material, so we can hear Sam walking on it and have some bullet holes when we shoot at it! To add a material press "(none)" on the Material Attributes field and navigate to "Content/SeriousSam3/Databases/Materials/", here you can find an appropriate material for the texture that you've applied. Once you are done with adding a material to the mesh's surface, press E to go back into World Editor and witness your ground with a texture that you've applied!

This may seem complicated at first, but once you do it a couple of time it will be a lot faster, don't worry. For now you can fiddle around with the shader settings. As an exercise add a normal map. That's just a texture that adds a bit of a bump to the shader. Normal maps have a sufix _NM. For example, inside "Content/SeriousSam3/Textures/Generic/Ground/" there's a texture named "Concrete_001b_NM", that's a normal map, and should be used in the Normal Map field in the shader. Technically you can use any texture as a normal map, but that generally doesn't give you good result, but there's nothing stopping you.

Note, you do not have to have polygons selected to change their shader. We had to select them so we can UV unwrap them, so we can apply textures to those polygons.

Press CTRL-s to save your amazing level, do this often!

The first video shows how to UV unwrap the ground polygons and apply a texture. The second video shows how to apply a material to our belowed ground.

Section A6 | Removing unneeded polygons

To remove a certain polygon, select a polygon in the Mesh Editor and press DEL on the keyboard. Make sure you are actually selecting Polygons and not Vertices in the bottom-left corner of the map view.

Tip, to deselect/select multiple polygons, hold SHIFT and press the left mouse button on a polygon.

Section A7 | Editing vertices manually

A lot of times you want to change how the mesh looks. We don't need to make a completely new cube to start with again, we can just edit the existing vertices we have.

To cannibalise our existing vertices, go into the Mesh Editor and make sure you are selecting vertices by pressing Vertex in the bottom-left part of the map view, then press NUM_1, that's 1 on your numpad. This will change the map view. The top-left is Top view, labeled 1(image 3), the top-right view is a 3D view, labeled 2, the bottom-left view is the Back view (3), and the bottom-right is the Right view. Start with grabbing vertices in the Back or Right view and translating them so their Y coordinate matches the bold black line(that line represents one of the axis), do this with all the vertices. Notice how when you select a vertex in the Back view, two, or 2, vertices are selected in the 3D view, that's because they have the same X coordinate. If you want to select just one vertex, and they have the same coordinate on one axis, you can select them in 3D view or some other where you can clearly see those 2 vertices that have the same coodinate on one axis. Now you can play around with the new skill, do whatever you want with the vertcies.

Keep in mind that you can also use SPACE-LeftMouseButton to move the camera in these new views as well.

[image 3]
image 3

Keep in mind what is currently selected! It's a good idea to deselect everything once you are done with a certain part of editing. Deselect everything by pressing ` (tilde).

Section A8 | Cut up Polygons

Now let's make some more complex geometry for you amazing level. Let's introduce the Knife tool!

Select the ground(while in World Editor) and go to Mesh Editor. While in the Mesh Editor, select a polygon and press K(it doesn't seem to matter wheather or not the mouse is in the map view). This will give us the Knife tool. You can now change the grid size if want(read section A4) and make some cuts by draggin the mouse, preferably in the Top view, since our polygon should be visible in the Top view. It's generally not a good idea to do cuts in the 3D view, but you can try. Now the polygon will be split into two(2) smaller polygons. Now you can go into Vertex selection and move those new vertices! Keep in mind that the vertices where those two polygons meet are shared, which means if you move it, you will affect both polygons.

Press D to drop the Knife tool. Or any tool for that matter.

Section A9 | Duplicate Polygons

Let's create some walls and ceiling. First go to Mesh Editor while the ground is selected and select the polygon that's not the slope we had created previously, if you're following along that is. Press CTRL-C then CTRL-V, this will duplicate it, now translate it away so we can see it. Rotate it and move the vertices around so it looks like a wall. Do that a couple of times.

Press SHIFT-F to flip the polygon's normal. This will cause it to face the other way. Use it to create walls. Select and translate the vertices by hand if it's needed. Make sure to UV unwrap all the polygons again, since we did create some new ones(Section A5).

Now save the master piece! Press CTRL-S