The Making of Mt. Kurek - Part 1

Written by Jeff Walters

Introduction -

Mt. Kurek originally began as a kind of practice level to show my brother how to make levels, after the sequel to my first level 'The Great Escape', called Echo Base didn't pan out. This was due to the fact that the ideas I had for it were too close to those seen in Adam Shane's 'Evacuation of Hoth'. First called Project: Mt. Tantiss, the level was originally to be based on Timothy Zahn's trilogy 'Heir to the Empire', but this all changed after I hooked up with Matt (Stills), David (Arandle), Rhys (Copeland) and GenKyle(Justin Pegg). I changed the level's location from Mt. Tantiss to Mt. Kurek as what we had planned for our four-part level series was not really related to the situations described in Zahn's books.....the level was still set on the planet Wayland though.

In the level I tried to pack in as many new features and special effects as the game could possibly manage without breaking down. Many of the effects took an incredible amount of time, INF code and most of all patience to create. Due to the complexity, I decided to do this 'Making of....' article series so that future level creators will be able to create their own special effects based on those seen in this level. I originally was just going to do a single one-off article on the 'Making of Kurek', but after sketching a list of all the effects to be explained and the amount of INF code I'd have to interpret - I decided to make it a two part series.

Line

1st Sequencer Charge Explosion

Overview - This occurs after the player plants the charge in the Cloning Facility's storehouse. Once planted there is a twenty second delay and then it explodes turning the storehouse to an inferno, and shaking the foundations of the mountain. Several seconds later the storehouse and part of the corridor nearby begin to collapse. The tremors caused by the explosion also cause some other minor cave-ins and damage in various other parts of the facility.

Cave-in
Cave-in!

Now, lets examine how the explosion was done step-by-step (NOTE - Knowledge of INF code is required.....this is for DF level authors after all. If you don't understand a lot of the terms used below, you can go *here* to find out).


Sequencer Charge - INF CODE

Sequencer Charge planting -
When you place the charge you are really sending a 'dummy' elevator called seq0dummy to it's next stop (see code to left). The trigger also causes the wall where the charge was planted to scroll in such a way so that it looks like the charge is actually flashing.
Seq0dummy - INF CODE

The 'dummy' elevator seq0dummy sends the Complete elevator to it's next stop to show that the player has completed one of the mission objectives - this will be reflected in the player's PDA.

Seq0osc - INF CODE

It also triggers an elevator called seq0osc, which is the elevator which causes the sequencer charge to continue to flash continously by using a loop. Seq0dummy also triggers two other elevators seq_placed and countdown1. Seq_placed is a simple elevator that triggers a text message telling the player that the charge is placed. Countdown1 is the elevator that enacts the timer of the charge.

Countdown1 - INF CODE
Countdown -

The countdown elevator (countdown1) uses timed stops to simulate a fuse for the charge. When the fuse reachs ten, the elevator counts down on the screen by using special triggers that activate a dummy INF trigger called Textdummy thus triggering the countdown text messages (ie, ten, nine, eight.....). On the last stop the elevator sends seq0explode to it's next stop....seq0explode being basically the control elevator for the explosion.

Seq_placed - INF CODE

Explosion -

Once Seq0explode is set off, so is the explosion. On it's first stop this INF elevator plays the explosion sound, starts the ground shaking, triggers an elevator which plays a rumbling sound, gives every sector in the blast area the property such that the player is damaged and turns certain adjoined walls into burning walls of fire.....quite a big stop. The walls of fire are created by having certain adjoined walls show their mid-texture....this is done by sending a set_bits message to each of these adjoins (see code)...the mid-texture of these adjoins is obviously a texture of fire (lava.bm actually)...these adjoins also scroll (by using scroll_walls INF elevators) to make the explosion look more real.

Textdummy - INF CODE

Many sectors in this level are 'slaved' together so that you only need a small amount of INF code. An example is the way in which rooms shake through out the level due to explosions and/or eruptions. In actual fact only TWO sectors (cavepass1 & landing) have the INF code to make the floor shake, but dozens of other sectors are 'slaved' to them so that whenever those two sectors' floors move - so does the all the slave sectors....it's not as difficult as it sounds. Anyway, that is how all those rooms shake during the explosion without miles of INF (Cavepass1's code is shown below).

Seq0explode - INF CODE

Cave-in -

For a few seconds after the explosion there is just the fire the player has to deal with. But when seq0explode reachs it's final stop it triggers a systematic cave-in starting at seq0room - the area where you first plant the charge. Seq0room's roof collapses triggering a cave-in sound when the ceiling hits the floor, at this point it then triggers a dozen other sectors to collapse and so forth. It is similar in principle to when you push over a domino and it pushes over others.

Cavepass1 - INF CODE

In the end a 'wave' effect of cave-ins is created starting at the blast center and ending part way down the corridor outside the storehouse. I won't list every cave-in sector's INF code - just the first one (seq0room) as the others are relatively similar in structure.

Seq0room - INF CODE

Other Damage -

The explosion also causes other damage through out the facility. This damage occurs at the same time as the cave-ins. There are several roof and wall collapses in the central entry area to the mountain. Most of this is done in the same way as the cave-ins (ie, just move_ceiling elevators), but in two cases morph_move elevators are used to move collapsed rock into sectors after the cave-in.
Damage

This is shown in the diagram to the right. The two sectors labelled 1 & 2 are the morph_move sectors. Where that are currently is where they start the level. Once the explosion is triggered, these two sectors move to where the arrows point to. These sectors would now appear as rubble to the player. There are other ways to do this, but this is, in my opinion, the easiest and best.

Roofdown1 - INF CODE

The INF code of one of the morph_moves, Roofdown1 (#2 in the diagram), is to the left.


If you delete any code by accident, just click reset.



Line

VUE Effects

Overview - This section will describe the various VUE effects seen through out the level. What are VUEs? They are the special files that makes the Crow land/takeoff or TIE fighters zoom around......basically they contain co-ordinates that tell an object where to go or which way to face, etc.

Crash 1Crash 2
The shuttle spins down out of the smoke.... ...and explodes on impact.

The Shuttle Crash -
Crash

This event occurs when you're making your way back to the Crow after the Volcano erupts. As you enter a specified passage, you hear a noise, and then a shuttle appears spinning out of the cloud of ash and rock. It explodes on impact and there are only a couple of survivors that the player has to deal with.

Crashtrig - INF CODE

The crash sequence is triggered when the player enters a sector called Crashtrig (#1 in the diagram to the right). Entering this sector sends an INF dummy elevator called Canyon 2 it's next stop. If you look at the INF code for the trigger you may wonder why the 'next_stop' message has the number 131072 after it. This is because the code for Canyon2 actually contains two INF elevators......one with event_mask 65536 and one with event_mask 131072......by adding 131072 to the end of the 'next_stop' message of the trigger you will only be sending the elevator with the 131072 event_mask to it's next_stop, without effecting the other elevator (65536) at all.

Canyon2 - INF CODE

Anyway, back to the crash sequence. Canyon2 sends a 'wakeup' message to the sector Lavariver3.....this is where the 3DO of the shuttle is located. The 'wakeup' message tells the object to run the VUE it has assigned to it. Canyon2 also triggers an elevator called Crashsound.

Crashsound - INF CODE

On it's first stop, Crashsound triggers 'incoming.voc' which is the distant whine of the shuttle's engines. The first stop also triggers a text message saying 'What's that noise...' Stop #2, a second later, plays 'crash.voc' which is the noise the shuttle makes when it spins into the ground. The third stop is reached at the same time the shuttle hits the ground. On this stop the explosion noise (ex-big-2.voc) is played and a wall of fire appears in front of the player by triggering the 'Show adjoining mid-texture' flag of an adjoin (see above pics). This is the same principle seen in the walls of fire in the first sequencer charge explosion. The fourth stop just triggers the explosion sound again to simulate a secondary explosion. Stop five clears away the wall of fire and also allows the player to enter the sector 'Survivors' (#3 on the map) by clearing away the 'cannot walk thru wall' flag.

Survivors - INF CODE

Why can't you enter Survivors till after the Shuttle crash? This is because by entering Survivors you trigger generators (see INF code to right) that make Imperial troops/officers appear near the crash site......it wouldn't look good if the survivors appeared before the shuttle actually crashed!

Lavariver1 - INF CODE

After triggering the appearance of crash survivors, the player comes out into sector Lavariver1 (#4 on the map). By entering Lavariver1, the player sends a master_on message to the INF elevator in Canyon2 with the event_mask 65536 (see code above)......if you remember from before, this was the elevator of Canyon2 that wasn't triggered. Anyway, the master_on message simply 'prepares' the INF elevator for use, much in the same way in principle as turning on your computer.

Lavabank - INF CODE

Next the player will enter Lavabank1 (#2 on map)....this is where the shuttle crashed. Entering this sector will send Crashsound to it 's next and final stop. The last stop of Crashsound triggers the elevator in Canyon2 with event_mask 65536 into motion. This elevator triggers three text messages to display on the screen. The messages basically say how Sate Prestage was not in the wreckage and must have escaped.....each message remains on the screen for three seconds. These messages form the last part of the crash sequence.

If you delete any INF code by accident, just click reset.


Holo
Mini Y-Wings & TIEs duke it out.

Holographic Battle Scene -

This is the part in the control room off the corridor leading to the reactor inside the cloning facility, with the mini TIE fighters and Y-wings dog-fighting above a starfield.

I got the idea for this from Paul Nemesh's TIE Defender Base, in which he used the 'scale' property of VUEs to make large 3DO's look like minature holograms.....I just used in on a grander scale so it looks like a holographic battle involving many fighters. The red and blue laser beams seen flying around in the battle were done by creating the beams as FMEs and then linking them to VUEs.




Holo
The biker patrol.

Scout Bike Fly-by -

This is one of the first FX scenes in the level and occurs as soon as emerge from the caves with the water flowing through them. Once in the open, a pair of speeder bikes come to life and zoom past overhead to begin a patrol.

This effect is simply done using VUEs. Though the speeder bike with rider is a WAX not a 3DO, using VUEs in this way can be quite effective if you do it right. The difference between using WAXES and FMES with VUEs compared to 3DOs is that you cannot really control the yaw (or facing) of the object, so it can look quite odd. In this case though, the bikes fly right over you, not giving the player enough time to see anything other than what they are supposed to see, ie, the front of the bike. If the player were given more time to get, say, behind the VUE object before it goes.....the bit facing you would STILL be the front of the bike. Even if you used a WAX with many frames for side, back, etc....there is still a problem (no idea why). Anyway, as said before, because I did not give the player any time to change location, it works perfectly......the low light of night also helped.

The VUE is triggered when the player enters the outdoor part of the river. It triggers a dummy elevator which then sends a 'wakeup' message to the sector containing the two speeder bikes and also triggers another dummy elevator that plays the speeder bikes sounds.....I've not included the INF code this time as the sequence of elevators/triggers works similarly to the shuttle crash, just not as complex.



Clone
A partly formed clone Jedi disappears upwards....

Clone in Chute -

This effect is seen near the end of the level near where the third charge is in the Jedi cloning area. A circual chute is seen rising out of the ground and down from the roof (see pic to right). Every few seconds a partly formed Jedi clone appears, rising out of the bottom half of the chute and ascends out of sight.

This is done using VUEs like with the speeder bikes, only this time a FME is used instead of a WAX. There is no INF code used at all in this effect, as the VUE does not need to be timed because it repeats continuously.




Other VUEs -
There are many other VUEs in Mt. Kurek that haven't been mentioned as yet. The Crow landing/taking off and the TIE fighter entering/exiting the hangar are both simple and have been done before, as has the minature rotating TIE fighter 3DO in the hangar's control room.

The falling rocks and debry that accompany the explosion are a new effect, but they will be looked at in part three of this article series, when I look at the eruption as a whole.


Line
Sign 1
The bed onboard the 'Castlereagh'.

Assorted Other Features

Use of 'signs' in normal texturing -
One thing I discovered in making this level was that 'signs' on walls can be used for much more than just switches, posters and animated bms. Consider the picture to the right of the bed located aboard the courier ship 'Castlereagh'. Notice how I used 'signs' to make the bed look like it has a proper sheet and pillow. I did this by making the 'sign' of the exterior walls of the bed, the same texture (grey) as the floor of the bed sector....then I just aligned the 'signs' so that it looks like a proper sheet tucked in halfway down the side of the bed.

Same with the pillow...I made the 'sign' texture of the pillow sector's exterior walls the same as the top of the pillow (white), then just lined them up right so that it looks like a pillow sitting on the bed. The end product is a realistic looking bed with a sheet and pillow.

Sign 2
A detailed control panel.

Another example of using 'signs' to improve texturing is shown in the picture to the left. The picture displays a detailed computer control panel that has been pieced together out of three different textures, iwfuel8.bm (1), iwframe1.bm(2) and iwcomwl1.bm(3).

The control panel is also made up of two walls, as two signs are used and you can only have one sign per wall. Anyway, both walls have iwcomwl1.bm as the top texture. The wall on the right has iwfuel8.bm as it's sign and the left hand wall has iwframe1.bm as it's sign. I then mixed around with the alignment of all these textures until I got it to look how I wanted.

Using signs in these ways is a great way to give rooms extra detail and make every control panel look unique, by using different texture combinations or by aligning the textures in different ways. Once you get the hang of using 'signs' in this way, it becomes incredbily easy to create detailed rooms.


Dummy INF Sectors
A part map of Robotics Facility.

Use of 'actual' sectors as INF dummy sectors -
The final thing I will look at this issue is a great idea I came up with to reduce the number of sectors in a level that has NO downsides at all. This is by using 'actual' sectors as dummy INF elevators. What the hell am I talking about?

Well, most levels have around 15-30 (or more) sectors that you never see in the game, as they are used specially for INF elevators. Most of the original Lucas Arts levels had dozens of these sectors that you could see on your map but never visit (use LACDS in the game and look for clumps of triangle shaped sectors away from the main map). To the right is part of the map for the Robotics Facility showing some dummy INF sectors.

Anyway, when I started to run out of sectors making Kurek, I got to wondering that these INF sectors were really going to waste.....especially considering Mt. Kurek had so much INF code that I had over 50 dummy INF sectors! My solution was to use *actual* sectors that the player visited in the game as these special INF sectors.

The main problem I had to deal with was that I obviously didn't want the player to see these INF elevators move - it wouldn't have looked good if the player was walking along a rock ledge and it suddenly started moving up and down like an elevator. I got around this by making the elevaotrs move only a unnoticable amount of distance.

Consider the example below. On the left is how the code of a typical dummy INF elevator looks. On the right is the same elevator, but with the distance traveled between stops changed to only 0.01. You still have to be careful where you use this though, cause if you put the dummy INF elevator in the wrong place, a player with a good eye might be able to spot that something has moved or changed - particularly if the elevator has many stops. This is pretty unlikely, but as added insurance I'd use outdoor sectors - as no-one will notice if a river or ledge has moved up/down 0.01.
Before - INF CODE

After - INF CODE



If you delete any INF code by accident, just click reset.