This file is to help people interested in using the Serious Sam SDK. Serious Sam is a game by Croteam. Find them on the web at www.croteam.com Tips - (No frills) v 0.8 list of contributors so far. Email: forager@ozemail.com.au Website: forager.net Email: mharris@fgi.net Website: (none) Email: lutrosis34@hotmail.com Website: (none) Email: LanThief@hotmail.com Website:www.staticsky.com/controlzone.htm www.mourningafter.com/hollowpoint/hpp_contact.htm Email: Xavier_Online@hotmail.com Website:www.staticsky.com (under construction) www.staticsky.com/controlzone.htm www.mourningafter.com/hollowpoint Email: Website: Email: Website: Email: Website: Email: Website: ~~~~~~~~~~~~~~~~~~~~~~ v 0.1 2nd february 2001. v 0.2 2nd february 2001. v 0.3 3rd february 2001. v 0.4 6th february 2001. v 0.5 7th february 2001. v 0.6 7th february 2001. v 0.7 18th february 2001. v 0.8 19th february 2001. (posted to secure forum and to Croteam) additional contributions are welcome and encouraged v v v ~~~~~~~~~~~~~~~~~~~~~~ Feel free to add to this file and re-distribute, or place this file on websites, whatever, if you add something useful, then feel free to add your name to the list of names at the top of this file, rename the version number, and as well, add a date when you made the additions, and re-distribute the new improved file. There may be several ways to do particular things, the following tips are just to get you going, not necessarily the best method possible. There are alternative sources of deep knowledge, this is for people in a hurry! |||||||||||_________||||||||||| ******************************* TIPS for Serious Sam Editor. ESC MODE, MOVE/FIND, PLAYER STARTS, BACKGROUND ROOM ENTITY, TOUCH FIELDS, MODELS, BOUNCERS, MOVING BRUSHES, TELEPORTS, CAMERA, WATER, GENERAL NAVIGATION (forager) ESC MODE Hit ESC to switch into fly mode. This allows you to fly through the map inside the Serious editor. You can control the rate that you fly through the map whilst you have ESC mode operational, by rolling the mousewheel backwards or forwards. Rolling the wheel forward whilst in ESC mode, increases flight speed. Rolling the wheel backwards whilst in ESC mode decreases flight speed. MOVE/FIND OBJECTS To move an obect somewhere useful, select the object in entity mode, then move mouse to the spot you want the object to be, then, CTRL+double click LMB. The object is back where you need it! If you need to select such an object but it is nowhere to be seen, so it's hard to select it to move, then do the following. CTRL+SHIFT+A. That brings up an important page where all objects etc, are listed. You can select your missing item from there, then go back, and do CTRL+double click LMB, and bingo, you've located and moved the hidden object back into view. PLAYER STARTS 2/ In order to have multiple PlayerStarts, you must first assign each PlayerStart it's own Group number. Group is found in the GO/PlayerStart drop down list. When you assign a number to the group box of a particular PlayerStart, the PlayerStart is automatically renamed. Ie, Group 5 = PlayerStart 5 etc. Or, more literally expressed, Player Start - 5 -. You can assign one PlayerStart as a Quickstart. This will make you start at that particular PlayerStart. Select QuickStart and tick it from the PlayerStart dropdown list. If you have multiple PlayerStarts in place, you could put a Touchfield near where you spawn into the map, for example, and use the touchfield to transport to any particular PlayerStart, by just retargetting the Touchfield. BACKGROUND ROOM/ENTITY 3/ The Background Viewer entity, should have it's parent set, (in it's drop down item list), to the name of the room that acts as your background room. The Background room itself is nothing special. All you need to do is select the Background room in entity mode, and select and tick Background, in the Background room entity drop down list. Make sure you do not select background in the dropdown for your main mapped space, or you will have a visual feedback loop that will hurt your ego. A couple of extra tips here. Try to make sure that your background room has it's own name, say, bgroom for example. Also try perhaps to create your background room as a layer, ie, create using L, not, + on the numeric keyboard. This will allow you to be sure it is independent of the main world space. TOUCHFIELDS 4/ TouchField are those green volumes of space that are all over the place. To make a Touchfield you drop a TouchField Entity into the map, and then create a brush,(+ on the numeric Keyboard -), that brush, is automatically now a green TouchField. Touchfields are the tripwires of the Serious Engine, you assign an Entry target, and stuff happens. Simplest useage of a TouchField is to enter an Enter Target. Do this from the Touchfield drop down list. To utilise an Exit Target as well as an Enter Target, ie have two actions happen, you must first assign a Exit check time. For example set Exit check time to 5, and five seconds after the enter Enter Target has been tripped, the Exit Target gets tripped. If your desperate, you can have two or more Touchfields in the same space, and multiply your choices of events to be tripped. It's better to make your touchfields as room brushes, not solids. mmm? MODELS (basics) 5/ Models are imported into the editor via the ModelHolder entity. Click on the ModelHolder drop down list, and select model. Standard Models are imported in .MDL format. Textures for the Model are imported via the ModelHolder drop down list as well. Textures are imported in the .TEX format. You can convert .3DS Models into .MDL format within the Serious Modeller. You can export a skinable/photo of your Model from the Serious Modeller. Make your picture,and then convert it in either Serious Editor or Serious Modeller, into a .TEX file. To make your Model destroyable, you must add a ModelDestruction entity. Simply Parent the ModelDestruction Entity to the model you want destroyed, then the drop down list of the ModelHolder entity. select and tick for Destruction. A complete destroyable Model combination, consists of a ModelHolder entity, a ModelDestruction entity, and the Model iteself, plus it's .Tex skin/texture. BOUNCERS 6/ Bouncer Entity is a jump pad thing. Put a Bouncer entity in the map, and then create a brush, the brush is now a jump pad. MOVING BRUSHES (basics) 7/ A moving brush is created by adding a MovingBrush entity into the map, and then creating a brush. The MovingBrush is capable of mobility. It needs markers to tell it where to move to. To easily add marker points, select the MovingBrush, move it somewhere, and then press D on your keyboard. A marker is dropped at that spot. Move the brush again, Press D, etc, etc. You can now trigger the moving brush from a Touchfield for example, Or, you can select Autostart, in the MovingBrush drop down list. TELEPORTS 8/ Teleport entity is extremely simple to use. drag one into the map, and assign a target to teleport to, from the Teleport Entity drop down list. CAMERA (moving) 9/ For a moving Camera, you need a Camera Entity, and Camera Markers, a minimum of four camera markers is suggested. Drag a Camera Entity into the map, move it, Press D (a camera marker is dropped), repeat until happy, then assign the last Marker to Stop Moving. Now, make a touchfield, select the Touchfield Entity drop down list. Select Enter Target, assign Camera to it. when you trip the touchfield, you fly! WATER (swimming pools) 10/ The correct method to create a texture for the top of your swimming hole, is to Shift right click on the "invisable polygons" that exist on the invisable top surface of your pool. (Given that you dug a hole/room into a terrain. Press Q to bring up texture info in entity mode. Make the polygons Passable/Translucent/Portal, add some texture movement, perhaps select link? Turn Alpha transparency down, (mouseslide on the "tall" colour bar), generally frig around and after a while, you're swimming like a duck. The wrong way to make a swimming pool, but, it looks good, is to carve a hole in the earth, then add a SOLID super thin brush as a roof. Press Q to bring up texture info in entity mode. Make the polygons Passable/Translucent/Portal, add some texture movement, perhaps select link? Turn Alpha transparency down, (mouseslide on the "tall" colour bar), generally frig around and after a while, you're swimming like a duck, mmm, maybe it's more like Jesus walking on water mode.... With the above water methods, you need to select sector mode, PRESS S, and select for water, instead of air. GENERAL NAVIGATION 11/ To move an obect somewhere useful, select the object in entity mode, then move mouse to the spot you want the object to be, then, (CTRL+double click LMB). The object is back where you need it! If you need to select such an object but it is nowhere to be seen, so it's hard to select it to move, then do the following. (CTRL+SHIFT+A). That brings up an important page where all objects etc, are listed. You can select your missing item from there, then go back, and do (CTRL+double click LMB), and bingo, you've located and moved the hidden object back into view. EDITOR (getting started, housekeeping, pre-fabs, etc.) (mharris) 12/ Be thoroughly familiar with the Editor Help, particularly the Navigation and Basic Room tutorials and Keyboard Shortcuts. 13/ Before using the editor, make the various entities, enemies and textures from the game available by locating the .gro files in the Serious Sam directory, renaming them to .zip and unzipping them (with folders/directory option, to assure their components getting placed into appropriate subdirectories). 14/ Use a file naming/record keeping strategy sufficient to track what you are attempting in each revision of a world and to assure your ability to locate and restore from a previous version. One possibility is to employ/include a date based naming scheme such as YYMMDD99, where YY is year, MM is month, DD is day of month and 99 is version within the day (restarting 99 at 01 each day). If doing high volume development and/or working in a team situation, investigate purchase/use of the SourceSafe library/version management product, which the editor appears to support. 15/ Rapid experimentation and prototyping are practical, and often faster and more worthwhile than bugging someone else with questions, due to Serious worlds not requiring any compilation. One can rapidly and repeatedly edit and test, edit and test, edit and test.... as the only delay between editing and testing is the brief world load time (same as would experience in the game), which should be virtually nill if working with modest test/proof of concept levels. 16/ Responsibility/credit/blame rests on the artist, not the tool. Ruthless disciplined trial and error, planning, composition, texturing, lighting..... 17/ Temporary "work lighting" of unlit worlds can be accomplished in two ways: - toggle shadows (results in pseduo lighting in editor, but is pitch black in game) - place a single light, set to ambient type, set falloff (and hotspot?) very large 19/ Pre-fabs (buildings, furnishings, etc. to be used in multiple worlds or in multiple spots within a given world) can first be created in a world of their own (just like any other world), saved to disk and added to the virtual tree, for subsequent drag-and-place from the virtual tree into other worlds, just like the entities, textues and enemies already in the tree. To create a pre-fab, start a new world, add the first primitive as a non-room (so that it appears as a solid and the rest of the unused world is empty space, not a solid) finish building the pre-fab, then save the world. To add the saved pre-fab to the virtual tree, select an existing directory/category (or add a new one via right click menu), then insert the saved pre-fab world file (.wld) into that directory's browser palette via right click menu). 20/ If get an error message about triangularization while adding a torus primitive, repeatedly click OK and try accessing the triangularization drop down list up on the tool bar until you are able to select a triangularization and then allowed to proceed with dimensioning the primitive in the Tools Info window. If you plan to associate torus gravity with this torus, record the torus dimensions used, as some will be relevant to dimensioning the gravity. 21/ To assure the ability to undo to a specific point in time/editing, do a snapshot of the entire current world state, via Ctrl+W, at that point. TARGETING NON-UNIQUELY NAMED ENTITIES, QUICK TEXTURE COPYING AND PREFABBING SKYBOXES (lutrosis) 22) Assigning Objects to 'target' Property You'll notice in Croteam's levels that they usually don't bother giving new names to entities like spawners or lights, but they still managed to assign the correct ones in some trigger's 'target' property. How? Just Ctrl+Alt click on the object you want the 'target' to point to, simple as that. 23) Quick texturing If you need to quickly texture a bunch of polys and the texture info is the same on all of them, just texture one poly, press Ctrl-C with the mouse over it, and then press Ctrl-V with the mouse over the polys you wish the texturing to be copied to. Selection of polys is not neccesary, but if a group of them is selected and texturing info is pasted onto one of the selected polys, all selected polys will be affected. If one wants to copy only a single texture layer, use the same technique as above, but 'm' copies and 'j' pastes. As an alternitive, 'u' will paste, but will rotate/stretch the texture so that it lines up perfectly with the source texture. 24) Skyboxes Rather than go through the process of creating a skybox every time you start a new map, just copy the skybox out of an existing level, save it as its own .wld file, and then add a new folder to the virtual directory tree called 'Skyboxes,' and insert the skybox .wld into it. You can do others if you'd like as well. Now you can just drag and drop! TELEPORT AND MIRROR MARKER (LanThief) 25) Teleport Three steps - Before you get started - Quick and easy, (if you have not already done so), add all classes (.esl files) to your virtual tree. Now you will see Teleport list in your virtual tree list. One: Drag and drop Teleport into your map at the teleport-starting point of the jump . (Optional): Adjust, if you thing you need to, the height and width to accommodate the "touch-field-like" area that a player needs to occupy to start the jump. Two: Drag and drop a marker (or existing player start) in to your map and name it 'bobo'. (This will be the destination where you want to teleport to) Three: Change the target attribute on you Teleport to point to the 'bobo' Marker you dropped. Your done, now when your player enters the area of your Teleport he/she will teleport (jump) to the 'bobo' marker you placed in your map. 26) Mirror Marker How to make a better-looking Teleport (looking at your destination): Drag and drop Movingbrush into your map. Name it 'eyeCu'. Select 'eyeCu' from the [current brush] dropdown box. (Add) your "not too complex brush" to your map - with CSG. Drag and drop Mirror Marker, from your virtual tree list, into the map. Place it somewhere near your Teleport. (That you already made in (25 - Teleport) Name your Mirror Marker 'allCingEye' and change its target attribute to point at 'bobo'(what to look at) Now select "eyeCu brush" and change one of the 'Mirror' attributes to 'allCingEye'. This exposes your Mirror Marker 'allCingEye' to your MovingBrush 'eyeCu' for its polyes to use. You guessed it, select each side of your 'eyeCu brush' and change Mirror attribute on the Polygon Tab to 'allCingEye'. So that you can see through the brush, you will want to change the Blend attribute to 'Blend' on the Texture tab, and lower your color Alpha number to something like 42. Have fun, LanThief. POLYGON SURFACE PROPERTIES AND PREFABS (xavier) 27) Polygon Surface Properties (email xavier_online@hotmail.com for further assistance) A) TRANSLUCENT: Use this flag when you are want to see partially through a polygon. Make sure to lower the polygon's alpha value also. B) PORTAL: Setting the portal flag on a poly allows that poly to view through to the area on the other side. Best way to understand this one is just to experiment with it. C) PASSABLE: If passable is set, the player can move through the poly. D) STAIRS: Believe it or not a lot of people have had questions about stairs. When making a stair primitive the actual stairs will sometimes be difficult or jerky to walk up. To fix this simply select the poly's for the stairs and select the stairs flag. E) INVISIBLE: Marking a poly as invisible will not render it, good for marking areas where you want to see through to the background. F) DETAIL: When the Serious engine renders an area, it must determine Line of Sight (LOS). LOS is calculated to determine what is visible to the player and what therefore needs to be rendered. These LOS calculations can get very tricky for high polygon areas. Many times certain polys are just detail objects and don't really stop LOS and therefore things behind them still get rendered. (ie pillars, pipes, statues, crates, barrels, or any other small details) You can greatly enhance engine performance by carefully marking non-visual-block poly's with the Detail flag. G) LINK: Set this flag when you wish to link two distinct world sectors together. (ie say you have a prefab room and add it to your world as a layer,... initially you will not be able to move through the poly between your worldbase and new layer. To rectify this, simply mark the poly's on both sides as Link, Passable, and Portal.) H) OCCLUDER: Setting this flag will block visibility to anything beyond the poly. 28) Prefabs (email xavier_online@hotmail.com for further assistance) This is a great time saving technique. Say you are making a series of maps with a common structure. (ie a complex statue, bridge, vehicle, etc.) You wouldn't want to recreate the same thing in each map. One thing you can do is create a prefab. The way I do this is to create a new map and the first element I add is a marker. (Give the marker the name of the prefab you are creating) Now I add to the wld all the elements of my prefab, while marking my initial marker as the "parent." When I'm done I just save the wld file as normal. Then you can go to your virtual tree, create a new directory called "Prefabs" and within that directory, you can insert the wld file you just created. Now when you want to add that to your map, just drag and drop. 29) Changing colors on textures (email xavier_online@hotmail.com for further assistance) Ever get tired of using the same old textures? Don't have the time or ability to create new ones? Well Serious gives you a new option, change the textures primary code spectrum from white to anything else. Say you want to use a marble texture, but you've used it many times before. Giving it a little green or red tint may just give you the feel you want. To do this just select the poly, go to the texture tab and at the bottom you will see a variety of colored boxes,... select the big white one on the right side and alter away. SWITCHES, DOOR CONTROLLER, TRIGGERING, ACTIVATION/DEACTIVATION, COPIER (forager) 30/ SWITCHES A switch is really like a trigger, but it has two positions on and off. The main differennce between a trigger and a switch, is that a brush that has it's switch property selected to a particular switch can be "used/invoked" (using ENTER or whatever key is assigned for "use". Best way to build a switch routine is by having a Movingbrush,(your lever or whatever) selecting a switch for the Movingbrush, then select an on off target from the switch, to, preferably a trigger. This trigger, should be responsible for actually moving the Moving brush, as one of it's target options, as well as any further triggering required. Why? Why not just trigger stuff from the switch? well, the switch has only one ON-OFF target. And, the switch selected as a switch for any particular Movingbrush, does not automatically enable the Movingbrush to move. You need to do that seperately. Thre are other options, you could make the Movingbrush markers, do the triggering, and simply point the switch to target the Movingbrush, but, it's probably safer to simple outsource the triggering to a trigger. Again the switch is not frightening, it's just a way to get the player to be able to actually "use" a lever, or whatever. 31/ DOOR CONTROLLER Door Controller is really like a switch! Really, it's a switch which is not "used" but, instead it's volumetric. All the moving is actually done by the moving brushes that make up the moving part/s of the door. It's safest to target a trigger with the Door Controller, and let that trigger control the doors. An advantage of outsourcing to a trigger, is that the trigger can enable multiple events/triggerings to occur. Up to eight targets can be triggered from one trigger, where as, from a touchfield you can only get two things to occur. From a switch only one thing. from a door only two targets (so you can do a left right doors move routine), from an item only on target, etc. 32/ TRIGGERS Triggers are very useful. As stated above, they can send out various events/activation commands/triggering commands, to up to eight seperate targets at once. iconically they are well described. By using a trigger, you can make wars happen immediately! Push the plunger and chaos is imminent. When first learning the editor, it is easy to begin by trying to use for example a Touchfield to spawn an enemy etc, but, with more knowledge, and maybe as your ideas grow more complicated, it becomes preferable to get the Touchfield, for example, to target a trigger, and let the powerful trigger do the hard work. 33/ ACTIVATION/DEACTIVATION. Things such as touch fields, can be selected to be Active or not. When they are not active, they don't do anything. A very useful feature, is that you can use triggers/switches/touchfields/ to either Activate or Deactivate something like say a MovingBrush. 34/ COPIER A Copier entity, spawns a clone of whatever it is set to copy, when it is triggered. this is useful if you want to drop ammo out of the sky etc. Put an item you want copies of, in a room off from your main map. Then target the item from a Copier. The logic is that the (Player) doesn't actually use the source object, that you wish copies of, but consumes the copies instead. This is really like templates, but instead of spawning enemy templates, your spawning items, via the copier. If you check out the KarnakDemo map, near the background room, is the Copier master items room.