Mapping for Dummies

From BiaSDK
Jump to: navigation, search

Introduction

You've found the SDK, and want to make a Brothers in Arms Chapter map, that plays like the game you love. You want to show up with your squad to fight against German Soldiers that >you< have laid out in >your< map. All this on a map in which you have placed, buildings, trees, fences, grass. Against soldiers equiped with weapons that you've decided to give each of them. And finally with a squad of guys you want on your teams, carrying the weapons you want them to have.

So how do I; a guy who knows nothing about the SDK start?

Background

First the BrothersInArmsSDK is a piece of game development software, which has been modified to help YOU make a variety playable Brothers in Arms Maps. The BiA:SDK is the UnrealED Engine software program, which the folks at Gearbox have tweaked to make mapping in the Brothers in Arms environment simple and possible. I said simple, because the Gearbox programmers, developers, artists, prop makers, etc. have taken all the fruits of their labor and given them to you. Yes given them to you, right on the game disk!

Yes you have at your finger tips, every tank, building, rock, tree, bush, weapon, truck, on that disk. But that's not all; you have ready-to-go over 10 American Soldiers, every character from the game. You have every weapon seen in the game ready-to-go. And you have German Soldiers in several uniform styles ready-to-go. Any one of these would have taken you many hours to design and put together. Chances are you would have needed help from other people more skilled than yourself.

So you're probably asking yourself, is this something I can really do? The answer is of course YES. You don't have to know much to make a fairly nice map. All that is required is your imagination to make a challenging and fun map.

And you can do all of this stuff without using or understanding much of the other things discussed on this website. You can certainly read and learn the other stuff, but you can get by quite nicely not knowing much of it.

Terms used

The names used for tools and other things you'll come across can be confusing and throw you off. For example the pros create cubed shape environments using "brushes" which have nothing to do with paint brushes or brushes at all. Just about every prop you see in the game is called a static mesh. Next come actors, triggers, triggeredscripts, etc. So before we get started here is my plain-speak definitions.

Brushes

  Resizable Wire Cubes in which your gamespace map resides. 

Terrain

  The Wire Floorboard for your map 

Terrain Layer

  The color, and 3-D deco (grass) you play on 

Path Nodes

  The Highway Marker grid system. Red Cube Diamond Markers 

Static Meshes

  These are basically the props, buildings, trees, crates, barrels etc. 

Volumes

  Resizable Zones which are used to actived or "trigger" something when something or someone entered the "zone" 

Triggers

  These are basically On/Off switches which send signals to the game's central command to excute some event of your choosing, or canned events. 

Triggerscripts

  These are the written instructions telling the centeral processor what you want done. Most of what you'll need to map, a pretty action packed game is already available, and you can simply copy and paste them into your script. 

Actors

  These are things that do something, most have a physical look, but have moveable action when placed in your map. Others are action affects, like smoke or an explosion. It's a big term, because Triggers and TriggeredScripts are consider Actors as well. 

Properties

  These are mini-switches inside Actors, Triggers, Volumes etc. These mini-switches are gifts from the GearBox developers. Because rather than you having to program things, you have pull down menu choices, that you for the most part simply select from a list of choices or you simply type into, like the the name for the unit number for a group of GermanBots, or weapons to be assigned. 

Skybox

  A larger Area in which your actual playing map fits inside, who's walls and ceiling have been painted, i.e. texturized with clouds and sky. This is something you could do yourself, but to tell you the truth, it isn't necessary to make one for your map, because you can simply use a one of the many already done by the Gearbox folks. 

Getting Started

First you must understand that the SDK is a fully functional piece of software that you could make just about any PC game of your choice. If you had the skills you could create your own props( called static meshes) and bring them into your game environment. The SDK being a fully functional game making piece of software, means it can do a lot of things which have aleady been done for you by the Gearbox team. You could spent a lot of time learning things, but why, they have already done the work for you. There is no need to re-create the wheel, unless you want too. But the purpose of this tutorial is for the guy who wants to experiment and make a map that works and plays, without starting from scratch, and who doesn't want to deal with programming. . . just yet.

When you first open up the SDK you'll see a lot of tool icons at the top and left side of your screen. Most of them you don't even need. Also you'll see that big blue area that looks like outer space. That's where the pros start to make a new game. But again we don't need to start there, because we're going to use things that have already been done for us.

Explore a fully functional Map

All the maps that come with Brothers in Arms are in the directory

C:Program Files/Ubisoft/Gearbox/BrothersInArmsEiB/Maps

Each Map is a power pack collection of all the items in a Map. Every time you go to bring up a map, the SDK will ask you "Save Change to ..."; this is a safety check, do you want to save or not save changes. Unless you're working on your own map, or have saved a copy of a live map under another name, always click "do not save changes".

So now lets load up the map called: Sample_SI_Combat.gbxmap

FIGURE 1
65 SampleSICombat.jpg

Note: -You won't see the white pathway grids, you need to turn them on.

This map has all the basics, without being to busy looking. The first thing you'll realize is this looks like a playing field, but where are my guys, and what are all those Godzilla Heads doing here? What are the light switch boxes for? What are the Wire Rectangular boxes for? Why are my guys these little icons wrapped up in the American Flag? What is the Green Shield Circle thing for?

Before we go any further, go up to the upper right hand corner and click the black joy stick icon. This will start up the game with this map for game play. Once you play the game you will start to see the cause and affect relationship of what you see on the SDK screen versus what you see in actually game play.

64 UnrealEd 19.jpg

HINT: when done playing your working map, and you're ready to return to your SDK map, hit the "windows" key ( next to the [Crtl] key ) and you'll see a white game log screen. Type "exit" and the Brothers In Arms Game will close and you can go back to your SDK: working map. You can also of course exit out the Game Play mode, just like your playing the normal game. But when testing your map, you'll find yourself going back and forth. So this way a quick way to get back your work screen.

So what is different between the working map and the one you played on? Well first of all, those things you saw in the SDK don't show up in the game; Why? because those icons are markers to help you visualize your game design setups. Secondly the walls of your SDK Map have a strange gray checker board gray pattern, but in game play it has been replaced with a nice blue sky and clouds. Finally those icons of Soldiers are live action guys with weapons running around, and the squad based controls and fire functions work just like in the normal game.

Also those things that look like cube zones, are those "volume" things I mentioned. Each one has a name and a function. Those zones are called Combat Volumes. Anytime you or one of your squadmates enter a zone it causes a unit (two guys in this game, but you can have up to three Bots in a Unit) to start a flanking move to another position on the playing field. Every position on your map is marked by one of those Red Cubed Diamond things you see all over the map. These are called Path Nodes. The Light Switches (triggerd)shoot out a message that is trigger every time the zone is entered. The Godzilla Heads are Traffic Cops that receive and decide what the Bots are to do over and beyond their normal programming.

Even without the Combat Zones, Light Switches, Godzilla Heads, the game plays fine. The Germans would move, fire, talk, and die. Their movements would be limited in distance, but they would function fine, and they would appear to be thinking and firing on you. It's just all this extra stuff allows you to control and set-up play action in your game.

You could click on and highlight the switches and hit delete, and wire cubes and hit delete, click on a tree and hit delete, and then save the map as Sample_SI_MyMap. Then go play it! Notice how it looks different and plays different?

Exploring the Static Meshes

Without static meshes (props) you would have a flat blank playing field. These props are "static" meaning they're lifeless, they are called "meshes" because they are wired meshes, on which colorized graphic skins have been applied to make them look like buildings, crates, trees, etc. This takes countless hours of work, just to make one item. As part of the SDK, Gearbox has given you a complete set of all their props, for you to use in your map layout.

In the Sample_SI_Combat.gbxmap, you can see all the props; there are walls, two squared blocked buidlings, and the trees. When you move your pointer onto one of the trees and click-it, it becomes flourscent green. That static meshes is now active for you to move, twist around, raise, lower, or tilt. All that you need to do is:

 1. Click the static mesh
 2. Hold down the [Crtl] key (keep it down) this will activate, i.e. bring up the rotational control globe.
 3. To Move the Mesh: hold down the RightMouseButton, drag the mouse
 4. To rotate the Building-&-Wall for example, click the "blue" rotational ring, and then click the LeftMouseButton, and move the mouse, and watch the Building rotated in a circle. (The RightMouseButton still works in moving the tree over the map horizonally.)
 5. Hit the [Delete] key to remove a static mesh. 

FIGURE 2
65 SampleSICombat.jpg

But, you want more items; you want a building or house, a fence, some barrels, etc. Where do I get those? What are my choices?

Every gbxmap file, contains static mesh file groups.usx; each of these groups contains the individual static meshes you are looking for, i.e. building, trees, houses, crates, etc. Here is a complete listing of item available for you: Asset List: All Static Meshes in EiB - list of StaticMesh assets include in Earned in Blood For the most part all the static meshes are normal and available to you. But there are two groups which are of no present value to you; those are the skybox static meshes and the crossfade static meshes. These are used to make the 3-D environment look that way it does. But since we won't be creating our own skybox, we don't need to be concern with them. Further more, they aren't props like buildings, houses, etc.

So you know how to move a static mesh, where to find a complete list of the static meshes, so you can make a laundry list of the items you want. Now where to you get them?

To get and place a new building, house, tree, crate etc. do the following:

 1. Look at the top of your SDK screen for the icon that looks like a an archway (See Figure 2)
 2. Click this static mesh browser "archway icon", or you can click [View]-[Show Static Mesh Browser] 

This will bring up a new browser window which allows you to open up static mesh files, and look in and tour the available meshes for each USX mesh group. Each Game Chapter has a collection of those meshes used, plus there are several universal USX mesh groups that have common things to all maps. Now lets bring up a house.

FIGURE 3
68 StaticMeshBrowser.jpg

 1. Click the open file folder icon, this brings up the list of files
 2. Click the file named s_D015_1130_bookends.usx
 3. Click the [All] button to list out all the static meshes in this file
 4. Click the first mesh, called BE_house_01a 

Now using your mouse over the graphic view area, you can pan around the image, using the CenterMouseButton, or using the Left or Right mouse buttons you can rotate in and out, or left and right.

Note this static mesh of a house is now active, and placeable into your map, by the simple fact you have clicked it for viewing. Now close or reduce this window, and go back to the map. Put the [+] somewhere on the map you want the house to go, and right click that spot. Up will come a dialog box with one choice that appears as:

Add Static Mesh: 's_D015_1130_bookends,buildings.BE_house_01a'

Click this, and Bingo! you have just placed your first prop into a map.

Creating an Empty Map Environment

This is the area that causes people the most problems. Because without an empty map, you'll be out of luck. Also without a nice set clouds and blue sky, your map under real playing conditions will look pretty basic. Creating a nice Skycover (Skybox), is no easy task.

So what is my solution? Why make one then; just use one from an existing Game Map, and then simply strip it of every standing prop, volume, trigger, German Bot, American Bot, etc. excluding the Terrain Floor Layers, Terrain Info Icon and the Cube. For example here is the finished map from Abandoned Streets called MP_AbondonedStreets.gbxmap PLEASE note, if you want to eventually share your final creation with other people over the internet you SHOULD START with a SP (Single Player Map) - I used an MP Map for demo purpose here. You can change an MP map to a SP but for know remember you want a SP Map if you intend to share your map.

FIGURE 4
69 AbandonedStreets.jpg

Now here is that same map with the static meshes deleted

FIGURE 5
70 AbandonedStreets2.jpg

It takes some time, but one by one you can completely strip all standing objects, and end up with a completely stripped down map. I would immediately save this file as Sample_MyEmptyMap. Also you should have started this whole stripping process working with a copy not a original of the AbandonedStreets.gbxmap Map.

FIGURE 6
71 StrippedMap1.jpg

Now the next task at hand is to get rid of the all dark spots, which are shadows left from all the removed buildings and trees. You do this by rebuilding the Geometry and Lighting. Click the icon on the top tool bar.

Now you have a completely empty Skybox with a terrain floor. The only problem is the terrain floor, still has the original textured floor coverings. In this map there are four different types (Layers). These need to be taken off, down to the lowest layer, so that you can do what you want with your map's floor. This does NOT mean "deleting", layers.

Terrain Floor Cleaning

This area of the SDK can be a little tricky, as the Terrain tool takes up most of your visible screen space. You can move it off screen a little to help things out a little.

But before starting, here are some overall Terrain mechanics. The Terrain floor is actually a static mesh like item. It is actually a flat mesh, with colored graphic tiles replicated on top. To give the illusion of roads, you simply color different sections of the map, colored layers that can be applied. The layers have an order.

For example in the map AbandonedSteets.gbxmap, there are four layers. The very top layer is Road (Tan colored dirt), then Road B (Cobble Stone), followed by Grass, and then finally Dirt(Mud). These layers have and order. So you must strip these down to the lowest layer, i.e. Dirt-Mud.

Here is where it gets a little tricky, you can chose any layer and actually paint it on the surface, but there can't be a higher up layer on top, if you want to see it. Also the higher weighted layer appears on the bottom of the Terrain Layer Section. So the bottom layer in the tool is the top layer on the playing field, I know it is a little confusing.

So lets start, by bringing up the Terrain Editing tool, by clicking the mountain icon on the left tool bar.

FIGURE 7
72 StrippedMap2.jpg

To start our process of repainting the surface, we want to click a few things first, before painting anything. The most important thing is to be [1] in the Layer Section, and [2]One of the color layers is active, has been clicked, and is highlighted in a olive drab like color. Make sure it's active, it is very easy to forget in your excitement or when you are moving quickly in your mapping process.

never start painting anything until setting up first.

Painting with the terrain floor active ( Terrain Tab clicked rather than the Layer Tab) can make holes right through the floor of your map. You can fix them, but just be aware. Also you can be in the Layer Section, but still have the terrian tab's Terrain Map active. Watch out.

The Tan colored layer (called Road) is like the Queen in Chess, it covers and shows over any other color. It's like white paint; it covers over any mess of paint. Those other colors are still there, you've just covered over them. So when you want any of the other color layers to show, you will have to remove the tan color first. So it is best for our purposes to strip all the layers down to the final bottom layer, which is Dirt - mud. As stated before stripping doesn't mean deleting. You are only removing layers from the screen. They still are active and available anytime you want to add, some contrast, roads, etc.

To do this you remove the color you see. So if you see any Tan Road, then with your mouse and the Painting tool, you would do that following:

 1. Hold the [Crtl]key down, and holding it there
 2. With the mouse, LeftButton put color on, RightButton takes color off 

It's like stripping paint off old furniture that has been painted four times. As you strip off one color you may see several colors underneath. Once you have removed Road-Dirt, next remove the Black Road B-Cobble Stone. Follow this by removing the Green-Grass. Now you are left with the lowest color layer on the Terrain floor, Dirt-Mud. Now save your file!

Now you can plan out your map, and where you want roads in the country side, or cobble stones for any towns you may being setting up. You can remove layers and add others, but this requires a little more knowledge. Again we're making the best map, with the least amount of brain power being consumed.

But there is something left? You still have a lot of 3-D grass all over the place. Is this a static mesh? you can't click it, so you were unable to remove it during the big stripping job where you removed buildings, houses, trees, walls etc.

The 3-D grass is a special layer of its very own, and can be worked with using the Decorations tab. It works the same way as the other layers, make it active, and then use your mouse to remove the grass for now. Later you can add it back where it looks good in your map.

Stage Design, Preparing for your Actors

Now you're ready to start things rolling. But first let's set up a simple combat situation. And to start, lets add some cover props for you and the GermanBots to hide behind. A good place to find a variety of cover props, is in the static mesh file s_military_de.usx. Once there look at the covergroup block of static meshes.

Next lay out a small section of pathnodes around the area of where you plan on putting the GermanBots. You don't need to put them as the FPS will be going as you don't need them to move around, only the BOTS do.

Laying down a grid pattern of path nodes is time consuming but not very difficult. Some people will make a small section of path nodes, and then copy and paste them, like a stamp pad. But it's just as easy to place a bunch of them, and then put them in a nice grid pattern.

FIGURE 8
73 PathNodePlacing.jpg

To place pathnodes, simply use your [+] marker and right click on the terrain floor. This will bring up a dilog box, and then click Add Path Node Here. Repeat this about ten or twelve times, don't worry about how nicely placed they are, we will clean that up next.

Before we clean-up the path nodes, and little bit of SDK options are in order. Since we are working in a 3-D environment, the SDK gives you three viewpoints, [T]op, [F]ront, and [S]ide. You can switch viewpoints by clicking, [T], [F], or [S]. Another option is to turn off and on the Static Meshes, and the Terrain Graphics. If you hit the [W] key, the Static "W"ired Meshes come and go. Hitting [W] key will make them disappear and re-appear. Likewise with the [T] Key, for Terrain Graphics; hitting the [T] key will remove the terrain floor temporarily. Hitting the [T] key will bring it back.

FIGURE 9
74 TopToolBar1.jpg

Top, Front, and Side Views - The 3-D Views - the Geometry, PathNode, and Light rebuilding icons

So when working with your maps floor, you can go to [T]op view, turn off the Terrain graphics, this will display the SDK graph paper grid underneath. Then by using the grid, and clicking each PathNode, and then holding down the [Crtl] key you can drag each PathNode to a exact spot on your map's floor.

When you click a PathNode, the yellow distance ring appears, and when you hold down the [Crtl] key the moving directional arrows appear. When this is done, you can move the PathNode in any direction by holding down the LeftMouseButton, and dragging the PathNode to the desired positon.

If you click the PathNode on either the green arrow, or the red arrow, that direction will lock, indicated by that directional colored arrow becoming bold. From that point the PathNode dragging is lock in one direction or the other. When this happens click the problem arrow, and you should be fine. Otherwise just click another PathNode and come back.

FIGURE 10
75 PathNodeCleanup.jpg

After you're done, hit the [T] key to restore your Terrain floor graphics, and clikc the Textured 3-D viewpoint. What ever viewpoint you pick it will be spelled out to the left. Look at the Figure 8, this is a Top Viewpoint, and it says Top. Look at any of the 3-D Viewpoints, for example Figure 5, it says Textured. Be careful there is a Dynamic Light viewpoint, which is very similar to the Texture viewpoint but it shows you map in darker light. You'll think your map's light and/or colors are off.

Like in a Motion Picture, the director adds and places actors in his scene. Likewise that is what we will be doing. First, lets add YOU into your own map's environment. To do this we will pick and place, a gbxplayerstart actor. There are two playerstart actors, one appears and is available on the dialog box every time you right click on your map's floor. Look at Figure 7, you see Add Player Start Here. This one looks and works like gbxPlayerStart, but it doesn't have all the property functions that the Gearbox enhanced version has. You want the gbxplayerstart; and there is only place to got; that's the Actor Classes browser. In the top tool bar, click the chess piece "pawn" icon.

FIGURE 11
76 ActorBrowser.jpg

Now you just go back to your Map's floor, right click it, and you'll see the option to "Add gbxPlayerStart Here". You can do the same thing and add a GermanBot as well. Go to the Actor Classes Browser and find a click CharacterSpawnerGermany, this is the primary actor for adding all your GermanBots. Once active you can return to your map's floor and add three GermanBots to your game. I say three, because if you add more than three without assigning them to a Unit, the fourth, fifth etc BOTS will be blind, and won't be able to see or detect you.

Now that you have done this you will see two icons which represent the GermanBots positions and your Player Start's postion. If you click on each BOT or PlayerStart, you will see a player cage, or in the case of the GermanBot, the rotational globe. You will also notice a thin red arrow as well. This arrow is the direction you or your GermanBots will be facing at the start of game play. You can also of course left click your mouse, and drag the soldier to any position on the map.

FIGURE 12
77 GermanBot01.jpg

Now place the GermanBots behind the wood crates, and move yourself behind some cover as well. Then rebuild the pathways see Figure 9, the icon is just to the left of the Geometry/Lighting icon. Then go to gameplay mode to see what you have created.

Outfitting your Players with Weapons and Clothing

Now things get fun, because for each group of three GermanBots you will create a unit. Each solider's attributes i.e. properties can be accessed and changed. Each GermanBot comes equipped with one rifle and one grenade, just as you come equipped.

To change or make active the property window for any active item, all you need to do is hit the [F4] key. In order to change your equipment, click the playerstart icon, and then the [F4] key. Then the property window will appear. From here go to the +gbxplayerstart option, open it and then go an open the [+]RequiredEquipment option.

You'll see a list of all the assigned equipment. To add more grenades, click line #1 copy and paste gbxInventory.UsableUSHandGrenade, down a line. Do it several times, and you will start the game with four grenades rather than the standard one grenade. The same works for your GermanBot, but the [+]RequiredEquipment field in under Char Pawn.

All the available weapons:

American (US) gbxInventory.WeapUSM1_ (remember that last underscore)
* gbxInventory.WeapUSM1Carbine * gbxInventory.WeapUSThompson * gbxInventory.WeapUSBar * gbxInventory.WeapUSM3A1 * gbxInventory.WeapUSSpringField * gbxInventory.WeapUSColt1911_ * gbxInventory.WeapUSBazooka

German (DE)
* gbxInventory.WeapDEK98_ (remember that last underscore) * gbxInventory.WeapDEMP40_ * gbxInventory.WeapDESTG44_ * gbxInventory.WeapDEFG42_ * gbxInventory.WeapDEP38_ * gbxInventory.WeapDEPanzerfaust

What about that MG42 submachine gun? This is a standing weapon that your GermanBots can be told to used. To setup and make a fully functioning MG42, read the following Tutorial Creating a MG42, by Botman.

One problem in dealing with all these screen markers (sprites), is they are so small to work with. So we want to make them appear a little bigger for your screen work. To make any of them appear a little larger, click on the item you want to make larger, and then hit the [F4] key. This will bring up the property dialog box. From there click and open the Display property. Look for Draw Scale 1.00000; and change the 1, to a 2. This is the same technique you will use to make individual Path Node appear larger when you need to mark a specific spot on your map.

The next thing is to pick the soldier uniform type you want for your GermanBots. In the EiB maps, you can only pick one style per map. You can use some scripting to program things, but that is beyond simple mapping. There are four German Soldier types to pick from. The easiest way to set this up is with the global "Level" setting for your map; hit the [F6] key. From there go to the Unit's property screen. Then you can change the BaseUnitSkillLevel to one of the following:

 1. SKILL_Novice
 2. SKILL_Intermediate
 3. SKILL_Advanced
 4. SKILL_Veteran 

FIGURE 13
78 GermanBot2.jpg

German Unit Management - Units

Well you've placed three GermanBots in your map. But in order to place more, you will need to start assigning them into groups of 1 to 3 Bots. Also you can only and should only have no more than 15 Bots on active at any one time, plus you and your AmericanTeamBots. This will involved delaying the birthing or spawning of other GermanBots, at different stages during the game. Something that will be explained later. (See Step 9 Below)

You should come up with some consistent way to name all the units for each combat battle in your map. You may also want to have special unit naming for an MG 42 or and mortar teams.

Here are some ideas for units groups in a map with four Combat events:

  * UnitDE_101
  * UnitDE_102
  * UnitDE_103
  * UnitDE_104
  * UnitDE_105MG
* UnitDE_201 * UnitDE_202 * UnitDE_203
* UnitDE_301 * UnitDE_302 * UnitDE_303MG * UnitDE_304
* UnitDE_401 * UnitDE_402

But there is problem, while you can place all your units into the map, you can't start gameplay with 50 GermanBots all sitting around waiting for their turn to do battle with you. If you start the game with 50 GermanBots in your game you will basically freeze up. So with each battle, you're going to have to either make sure all of each CombatBattle's GermanBots are dead, or you're going to have to destroy them, with a script. Also with each new CombatBattle, you need to spawn them into your map in stages.

In order to do this your going to need to learn to use some the Gear Box supplied Triggers, and connect them to VolumeZones, with a simple Script (Triggered Script)

One final thing, in order to make use of these triggers, you will need to assign your GermanBots to a Unit Marker.

FIGURE 14
79 GermanBot03.jpg

Triggers, Volumes and Triggered Scripts

This area is the heart of GermanBot manipulation. This can be something real easy, like you creating an event in which one of your German Units will perform a flanking move, to fancier events. We will be sticking with simple Triggers, Volumes and Triggered Scripts to achieve the basic of moves.

Triggers

You will find many Triggers in the Actor Classes Browser. And in order to just see Triggers, click and expand the +Triggers' directory

FIGURE 15
80 Dummie01.jpg

You will find many triggers, some are basic, while others are specifically design to do some specific or canned. While there are many of them, many share the same graphic icon. For our needs, we will make use of four of them.

gbxTrigger (Plain Light Switch) gbxMessageTrigger ( The one with the envelope) gbxExplosionTrigger ( the one with the explosion ) Counter ( The one with 1, 2, 3.)

These can be used with, or with volumes. Each one is triggered, either by walking on one in game play, or into a Combat Volume Zone, that has been linked to that Trigger. Think of these trigger switches as bear traps, when ever you step on one, it will cause your planned event to occur.

The nice thing about the gbxMessageTrigger and the gbxExplosionTrigger is they don't need for you to find or write what-to-do scripts. The Gearbox programers made them self contained power houses. For example you can place gbxExplosionTriggers around and make a mine field. The gbxMessageTrigger is excellant for creating flanking opportunities for your GermanBots. Together with a simple script called a TriggeredScript, you can setup the spawning of each separate Combat Battle in your map.

Those that don't require Triggered Script, do require you to set-up the properties correctly, and to properly and consistently label and names things.

The assigning or attachment of Volumes insures that your trigger traps are triggered. But in the case of the gbxExplosion, it works with and without a volume. But because the switch icons are not visable in game play it's hard to find and trip them. So the programers fix things to allow you to make them visable. This can be done in the [F4] Properties for that Trigger. Open Advanced and set the bHidden to "False".

Volumes

Next thing you need is a "Volume". Volumes are a piece of Geometry; and as such, you need to remember to rebuild "geometry" before your triggered event will occur. You can actually set up everything properly and the nothing will happen; simply because you haven't rebuild the geometry.

Volumes are easy to work with, but troublesome to create. I say troublesome because of the way the SDK's brush system works. The easiest way to bring a Volume in, is two simply bring up two session of the SDK, and open the map Sample_SI_Combat.gbxmap, and copy and paste one into your map, from there you can copy-n-paste another one when you need it.

The SDK Brush system? What the heck is this? What you call your Map; the actually area you play in, is only taking up a smsll space in the Mapping Universe. Your Map is actually a rectangular cube, in a bigger universe. Also in that Universe is the Skybox. Your map and the skybox where created with the Cube Maker. The Cube Maker is this thing they call brushes or BSP (Binary Space Partitioning).

Look at Figure 16, below. Notice how relatively small your map is, in comparison to either the total Universe or the Skybox. And then look for the Cube Maker (BSP Brush), it's so tiny at times it is very difficult to find. In order to find it, go to [T]op view and Zoom-In and Zoom-Out using your center mouse wheel. While you Map and the Skybox appear separated, that is disconnected. In game play the skybox will end up being "over" your map. Your map will end up playing and looking like it is inside, and underneath the Skybox umbrella.

FIGURE 16
81 MapUniverse01.jpg

So now we have found the cube maker now what? Click it and move close to your map, just outside the boundaries of your map. Check both your Top view, and Front view placement, to make sure it is actually within your Map's Cube Rectangle. Because if you are just looking at the Aerialized Top View, without cross checking against the Front view it may not show up in your map, even though from the Top view it's dead on Top. That's because it's over your map, but it's 5 miles high in the sky above; so in 3-D you don't see it, but in Top view mode, it seems to be right there.

Now that you have moved it close by, now you can resize it using the Actor Scaling tool. So click the Cube Maker, so it is active red. Then click the Actor Scaling tool. The holding down the [Crtl] key resize the square to a nice rectangle, using your left and or right mouse button. The LeftMouseButton will expand the cube left and right. The RightMouseButton will make it tall or short.

FIGURE 17
82 MapUniverse02.jpg

Now you have a Volume in its infancy. You need to choose the Volume type. In our map making project, we will need to use a Plan Volume, Blocking Volumes, and Turret Volumes (used in the MG 42 set up ). So click or make sure your rectangle is red. Next go to the Left tool bar and click the Volume Tool ( See Figure 17). This will bring up a dialog box with over 20 volume types listed. We just want the plain "Volume" volume, so click it. Nothing seems to have happened, even though you just clicked volume. But now when you hold down the [Crtl] key and move the Rectangle, you will notice it laid an egg, it leaves a Rectangle, that's your newly created Volume, that you can use as a Combat Zone in your map.

FIGURE 18
83 MapUniverse03.jpg

Once you get your new Volume onto your playfield properly lined up both Top and Front view, you can resize it with your mouse fairly easily using the Actor scaling tool. Where things can get messy are when you want to re-size it taller, or move the volume all together. You really have to train your Mind vs. Hand to resize and move, otherwise the SDK rectangular box can change into some strange twisted shapes. So it's better to simply copy one volume over and just re-use it, for now.

Triggered Script

With a [Trigger]+[Volume] you can accomplish some things. But add to the mix a Triggered Script you can accomplish all the basic maneuvers, plus if you can find some "code" that does something you like you can copy-n-paste it into a Triggered Script of your own.

FIGURE 19
84 BasicScript.jpg

This is a simple single action script. You can take out ACTION_TriggerEvent('SpawnME_1'); and replace it with ACTION_DestoryActor('German_01');, and now you have two scripts. In the above example each of the GermanBots with and Event-Tag of SpawnME_1 would be spawn, i.e. brought into the game. When the triggers is set off, the instruction ACTION_TriggerEvent('SpawnME_1'); comes into play action, and the action statement is carried out. To see a long list of ACTION_XXXXX('XXXXXX','XXXXX) statements go to Botman's TriggeredScriptReference. He has provided many of the most common ACTION Commands, and there formats.

Triggered Scripts run the range. Some are very simple to understand. Others have multiple scripts nested into one Triggered Script. They all have the same basic layout. Some Triggered Script sit until called upon, others you need to call out the Triggered Script by it's given name.

In Brothers in Arms R2H30, the flanking move involved a complex script, in which the trigger would send out multiple code numbered messages, which in turn the triggerscript determined, based on which code number came in how the various German Units were to move.

Then the Gearbox programmers, eliminated the need for a separate Triggered Script. They did this by incorporating the parameters into the body of the property options of the gbxMessageTrigger.

It is very nice that you no longer need elaborate scripts to do one of the most important functions in Brothers in Arms gameplay. But if you obtain just a basic understanding of the script coding and the basic code statements you will find it very useful and not beyond your abilities to incorporate them into your Maps.

FIGURE 20
85 TriggeredScript01.jpg

Flanking Movement for German Soldiers

Now it's time to learn how to set-up a Flanking maneuver. Once you can set-up one Flanking move of three Bots in a Unit, you can apply the same approach to several units. And with the knowledge of how to spawn GermanBots, you can insure you're not overloading your map with too many GermanBots waiting for you to show up.

Simple Flanking Set-Up The things you're going to need

 1. Plain Volume
 2. gbxMessageTrigger (LightSwitchwith the envelope)
 3. TriggeredScriptSIManager (Godzilla) You just need one per map.
 4. GermanBots
 5. UnitMarker Actor
 6. Pathnodes 

Most of the set-up involves the gbxMessageTrigger Properties.

First open up the properties for the gbxMessageTrigger. We will be working with two properties [1] Events and [2] gbxMessageTrigger.

Expand the Events property and give the "Tag" a name. This will be the same name you will be using for the AssociatedActorTag in the Volume's properties. So you may want to use a name like CombatZone102, or CombatZone1, or CZ1.

Next is a series of property set-ups. Lots of clicking but it all works out.

Expand the gbxMessageTrigger property. and click the [add] button. Next, its a little bit tricky. Drop your cursor to the gray area, and click the dead gray area. This will pop-up a "list drop down" arrow, and a [New] Button. From the drop down chose gbxMessageSI, and then click the [New] Button. This will establish a new Message. The SDK will make it's own naming assigments.

The SDK has now added a new message [+]property. Expand gbxMessageSI, and up comes, m_GermanUnits. This in turn will bring up two buttons to the right. Click the [Add] Button. WOW, a whole lot of properties show up. There are several of these properties we will be working with. They will deal with what GermanUnit is to be assigned the Flanking duties, and what PathNode marker is the destination of any flanking move.

The first one is to flag, mark or assign the GermanUnit you want to do the flanking move. While many other properties will have you type in a name of your choosing, the GermanUnit name or tag this time will be assigned by the SDK using its own naming approach.

So now click Unit_DE, which will bring up still more buttons. You want to click the [Find] Button. This will change your + cursor into a <? cursor. Move this cursor over your Green Unit Marker for the Unit you want assigned the flanking duties; and then click it. The SDK will give the Unit a name like Unit'myLevel'.Unit1 all on its own. You don't do anything. The numbers my not make any sense.

Next is to assign or tell the system what PathNode# is to be the destination of the flanking move. This PathNode, needs a ID Tag. What we call(Tag) this PathNode, will be the same name we will later go and give the actual PathNode, as it's Event-Tag name.

So to assign or tell the trigger what PathNode is the lucky winning of the assigment, we need to open yet another property. This time it's the +m_Movement property. So go ahead and expand it, which yes gives you some more buttons. Click [Add] which will give you another set of property options.

We're almost done! We need to now click nmPathNode, and click the [Add] button. This will give you a spot where you type in the name of your special PathNode.

Also change the fScore, to something higher. This will raise the level of importance central command (AI) will give to this flanking move.

Finally change the Main Trigger Property; set the Trigger-Trigger Type > to TT_PlayerProximity

FIGURE 21
86 FlankingProperties.jpg

Note: The "Button" are high by one line, caused by screen print operation

Now all that is left is to go to the Volume's volume property and give the AssociatedActorTag a name which matches the name you used for the Event Name when you first started with the gbxMessageTrigger

And finally so you can keep track of what PathNode is the special one. Open up the PathNode's properties [F4] and expand Display, and make the PathNode's display size a "2". ie. "DrawScale". This will make the Node larger than the rest and make it easier to spot.

And last but not least, rebuild Geometry. Volumes are Geometry and if you haven't done a rebuild, your Flanking move may not be working even though you did everything else correctly.

Spawning German Soldiers

As mentioned before you can't have 50, 60, 70 GermanBots sitting around waiting for you to show up. You can't spawn that many at the start of every game, you freeze up and slow down you FPS (frames per second) Therefore you bring the GermanBots into the game as they are needed, and your old BOTS have completed some early combat encounter.

Things your going to need

 1. Plain Volume
 2. gbxMessageTrigger (LightSwitchwith the envelope)
 3. TriggeredScriptSIManager (Godzilla) You just need one per map.
 4. GermanBots
 5. UnitMarker Actor 

First you need to plan your spawning action. You not going to spawn 15 or 30 guys all at once, each one of your major battle encounters needs to bring in, spawn GermanBots in a organized manor.

For each individual GermanBot set each bot's bWaitForTrigger, from False to True. This delays the Bot's spawning until the trigger event ocurrs.

Next, for each GermanBot give them all the same Events-Tag. In my example I called the tag Spawn DE_1. You're going to be bringing in several groups of GermanBots, so you may have name like SpawnDE_201, SpawnDE_202, etc. You need to come up with your naming logic. Many errors are caused by typo's in your naming and tagging of things.

Next you need to bring in your Volume, and find a good place to put it. Remember you're NOT going to trigger all these BOTS into action, all at once. So think about where your placing this Volume, and how big it will be. After placing your Volume, do a [F4] and change the Volume's volume property. In the Associated Actor Tag field give the Volume Zone a name. In my example I called it SpawnCombatZone.

Next piece of information is courtesy of TheJay a modder on the Gearbox website. His approach uses the gbxMessageTrigger, which eliminates the need for you to put together a TriggeredScript. Here again like the Flanking Move above, we will be using the Message center built into the gbxMessageTrigger. Only this time it will be simple, plus you already have experience dealing with the property options screen.

First open up the propertied dialog box, and set the Events-Tag field to the name used in your Volume. In our example, that would be SpawnCombatZone. This makes the connection of the TriggerSwitch and the Volume. Next we need to add a new message, assign the event, and associate it with the German Unit to be spawned. In turn the German Unit is connected to Each GermanBot by the Events-Tag name.

FIGURE 22
87 Spawning01.jpg

Most of this process was explained in how to make a Flanking Move, so this explanation will be relatively short. So open up the properties in the gbxMessageTrigger. Add a new gbxMessageSI, and then from there add a m_GermanUnits. From here do a Find, which will change your + cursor, to a <? cursor. Click the Unit's Green Marker shield.

Give the German squad an Events-Tag name, that is the same as Events-Tag you gave each individual GermanBot. Next go to the nmEvents option and enter SpawnDE_1 for that field. Again this is the same name used for each GermanBot, and the Green Unit Marker.

If you have other squads too spawn, you can repeat the process, and just a second, third, fourth, etc, for your other GermanBots you want to bring into the game

Dealing with Tanks

<need for tutorial here>


Back to Main Page