Download the D3Edit files used in this lesson.

Lesson 5

Birth of a Level!

For this lesson you will need the completed room from Lesson 4.

Open D3Edit and open up your room (room1.orf)

In this lesson, we will create a level (.d3l) with your room, light the new "level" using the radiosity program, and take a test drive in Descent 3! Technically this will be a D3 level, but as a great philosopher once said "one room does not a D3 level make". We have no energy refueling center, no power-ups, and just one empty room. We will continue to build our level until it is playable on the internet and you are finally able to kill somebody within it's walls!

By the way, if you are thinking about finishing this level on your own after we've test flown it...reconsider. In this lesson we will discover that there is a "problem" with our level that if left unsolved, will make finishing the level a LOT more difficult (I'm not kidding). So stick it out for the long haul and save yourself hours and even DAYS of grief.

Okay here we go...we left off having added more textures to the room, including some light textures. As I said, the level won't actually be illuminated until you run the radiosity program. This can be done on a single room, but lighting the entire level ensures that light from one room will shine through doorways, when bright enough, and affect the lighting in the surrounding rooms. Lighting one room at a time will only light that room and will have no affect on other rooms. In order to light our level, we need to first make it into a level (or more precisely, add it into one).

As it stands our room is just that, a room. It is not a D3 level. Levels are made up of many rooms. Our file is called room1.orf. The level we will save it into will have a .d3l extension (thelevel.d3l). Even then it won't be playable yet :(

Go to File/New.../New Level - Import Room and click Ok. Find your room1.orf file and click open. Your screen will look like ex. a.

ex. a

Alright, you may be wondering "what the ???! is that green dot doing in my room?". Answer: The green dot marks a player ship starting point - every level needs at least one of these (yes your room is part of a level now!). Look at the very top blue bar on your D3Edit window. It reads Current Room View - "<none>". What happened to room1.orf?

The room you are seeing is part of a level that we have not yet named. Most levels have more than one room, sometimes dozens of them. Imagine trying to edit a room in your 2D and 3D panes with 30 more rooms attached to it. In an earlier lesson you saw a wireframe pic of my level, Abandoned. Imagine trying to pick your way through that mess just to change something in one room. It would be ugly, and that's a small level. To make life easier, rooms are edited individually - they can be selected, or made current, just as faces and verts can. You merely select the room you wish to edit and it will open in its own editing window. Our window says Current Room View - "<none>" because it is the currently opened room in our new level, which opened automatically when we created the level.

Go to the Window menu and look down at the bottom (ex. b). This is a standard Windows function that lists all the windows that are open. The selection that I've highlighted in the pic is the window view that is currently on top - Current Room View - "<none>". Selections (windows) 1 and 2 are hidden beneath window 3. Click on selection 2, Untitled.d3l - World View and you will see a 3D wireframe representation of your entire level (all 1 room of it). The top of the screen tells us we're in World View. Ok let's save this sucker before D3Edit crashes or the power goes out or something. Go to File/Save as..., name it thelevel.d3l and click save. Now go back to the File menu again and look at the selections - they aren't all the same as in the current room edit window. In fact most of the drop down menu selections are different. When you're done checking them out, go back to the File menu.
ex. b

(your menu may be slightly different)
Select Edit Level Info... from this menu and where it says Level name, type The Level. Fill in the other boxes if you wish then click Ok. Once again, go to File and this time select Show Level Stats. This window is pretty self explanatory, at least the first several entries. This is statistics for the entire mine. Click Close when done.

Looking for Trouble
Go to File and select Verify Mine. This window is EXTREMELY important - it is used for diagnosing problems within our level. Descent 3 is very touchy when it comes to the integrity of your build. When you see all zero's, then you have a perfectly engineered level, at least as far as D3 is concerned (other players may disagree heh). We will go over many of these entries as we troubleshoot problems in our own level. Are we having fun yet?

Notice the last entry in the list - BOA: NOT VALID. BOA stands for Big Ol' Array. This tells D3 what rooms can possibly be seen from what rooms. Your computer won't receive ship movement updates and other info for a player or robot in a room that can't be seen. This will help D3 run faster. If you run a level without first computing the BOA, you will receive a BOA not valid! message as the level loads. The BOA is calculated by going to File/Compute BOA Vis Table. Do this now. This will take longer to do as we add more rooms to The Level. Run Verify Mine again...BOA will be valid. Save your level.

Go back now to the Window menu ex. b. The room edit window we were at previously was selection 3, Current Room View - "<none>". But notice that selection 1, room1.orf, is still open as well! If you cycle through the 2 windows (ctrl+tab or using the Window menu) the rooms will appear to be identical, but they aren't. The green player start in one room is of course one reason - rooms that do not belong to levels can not have player starts inserted into them. Room1.orf is still just a single room, a copy of it was imported into the level and "became one" with the level. If we were to make changes to room1.orf, it wouldn't affect the room in our level/world view window. However, if we edit the Current Room View - "<none>" room, it will affect the level.

Confused? Ok let's do this. Close both of the room edit windows, leaving open only the World View window. When D3Edit asks you to save room1.orf, select No since we didn't actually make any changes to it (D3Edit will ask you anyways just to be safe). Now we are looking at our entire 1 room level. Suppose we want to edit this room in some way...individual rooms can be selected by either clicking on them until they are highlighted, or they can be cycled through using the R key. Since we have only one room, this is pretty simple :). Right-click or use the View menu and select Display current room view. Your room appears in an editing window (if not, use the Window menu), complete with player start! If you click a face and make it current (in face mode), you will see the same face selected on the room in World View. Now go to File and open room1.orf and try the same thing. Selecting a face doesn't affect the World View - it isn't part of the level. 

Notice one other thing about these 2 windows - Current Room View - "<none>" isn't centered on the gridlines! Even if you set the grid to 1 and zoom the views up close, you'll see that we're definitely not on the grid lines anymore. Earlier I mentioned there would be a problem in our level...this is it. If this is not fixed before we add more rooms, we will have big problems aligning things. We'll fix it in the next Lesson. Close room.orf.

We're getting close to our test flight! All we need to do now is calculate the lighting and save our level using the .MN3 Packager. And one more thing... I'm tired of typing Current Room View - "<none>", so in Current Room View - "<none>" (grrrrr...), go to the Window menu and select Room Properties and name your room Room 1. This is not room1.orf, let's not get confused here. Click the x thingy in the corner to close this window. Since we made a change to our level by naming the room, go to World View and save the level again.

Let There Be Light!

ex. c   (partial view of lighting dialogue)
Go to the Window menu and select Lighting. The main selections in the lighting dialogue are shown in ex. c. I will briefly explain these functions now...we will take a more in depth look in later lessons. For now I want to keep things simple so we don't get overwhelmed! And because I'm lazy.
All of these option settings will affect the amount of time it takes for D3Edit to calculate the radiosity of the level. For test runs, the settings in ex. c are fine, though they could be set to higher detail levels since the level is so small. For more serious testing purposes, the settings should be more detailed since the mine will be illuminated a bit lighter as the settings increase. When a level is ready for public release, the settings should be set for the highest possible level of detail. Lighting a big level at such settings can take hours to compute even on a fast computer!

Lightmap spacing - is the amount of space between lightmap pixels. Higher settings will produce grainier looking light effects, lower numbers produce more realistic lighting and shadows. Think of it as the "resolution" of your lighting.

Iterations - is the number of times light is allowed to bounce or reflect off of other faces. Light naturally bounces off of surfaces - that's one reason you can see light shining through an open doorway, even though the light source itself is not visible. The higher this number, the better the lighting. Light intensity gradually falls off with distance, and eventually stops reflecting. This number should be set high enough to allow all the lights to "fade out" naturally. Too low of a number will cause the lights to be "cut off" before they fade out, causing dark areas.

Ignore limit - light will not be calculated once the intensity/brightness falls below this limit. The lower the number, the more realistic the lighting will be.

Combine lightmap faces - D3Edit will try to combine 2 or more faces into a single lightmap. Smooths out lighting and saves some memory. Leave this checked.

Volume lights - the lighting in open space...ships will be illuminated according to the color and intensity of lights and will be able to hide in dark corners. With this box unchecked, the ships will always be fullbright.

Super detail - unchecked, light shines only from the center of the face. Checked, the whole face casts light. Onlu use this one for final release as it adds considerable time to the radiosity process.

Set your options as in ex. c. Down in the Entire Mine box in the Lighting window, click Count Lights. Click no (I just wanted you to see that it counts the lights). Click Light It!

Click Yes, we're sure we want to light it! The next message box is important "...This may take a few minutes to set up...", it says. If you have a large level and your light settings are high, it could take so long that you may think D3Edit crashed. Wait, and it will eventually begin calculating the iterations. If the iterations don't reach 100% then you will need to set the iterations to a higher value. Right now that won't be a problem, in fact it will be so fast you probably won't even be able to see it count. After a few seconds, depending on your computer, the process will be complete and D3Edit will tell you so. Close the Lighting window.

Save The Level. Your mine is now lit! Now just one more step!!!

MN3 Packager
A level (.d3l) must be packaged into a .mn3 file - a playable Descent 3 mission file. An .mn3 file consists of more than just the level itself. It can be used to include a "splash screen" (as the level loads in the game), you can add mission briefings, add music, plus other nifty stuff.

Go to File/New and fill in the Name (The Level) and Author(your name) fields. Click Ok. Notice in the big window that "The Level" now appears next to "Name:". Go to Action/Add level. Under Level filename, click browse and find your thelevel.d3l. Leave the other fields alone and click Ok. Your MN3 Editor screen should look like ex. d.

ex. d
The URL1 - URL5 entries are where you enter the location of your file for Descent 3's Autodownloader. These could be sites with level archives (like GameEdit.com) or your own personal web directory. We will use a few of the other functions in later lessons.

Go to File/Save as... and locate your Descent3/missions directory (mine is \games\descent3\missions\). Save as thelevel.mn3.

Close the MN3 Editor window. Oh, there's ONE MORE STEP you must take.

Note: There is only one player start point in this level so far. Playing this level multiplayer "as is" is not recommended.

Grab your Descent 3 CD-ROM, pop it in your computer, load it up, go to New Game and select, The Level.

Enjoy your new creation!!!!!!!!!

The Level - I was just dying for a cool screenshot!

Congratulations!!! You have just created you first Descent 3 level...at least part of it!!!

This is only the beginning folks. Soon you will learn to add more rooms, insert energy centers, add weapons, fog, ambient sounds, more player starts, wind tunnels. We will use the lathe function to make some wild rooms AND interior objects like pillars and fountains and much, much more!!!!!

So stay along for the ride! Besides we still have that nasty little "off the grid" problem we discovered earlier in this lesson, remember? We'll take care of it!

Thanks for sticking it out this long! Any feedback or sugestions on these tutorials is welcome.