Jump to content

Introduction to Understanding Forge


Twinreaper

Recommended Posts

Introduction to Understanding Forge

 

 

Forge, it's the key feature of today's Halo titles that give the end user a way to extend the life, fun and

gametypes that we enjoy everyday. But behind this great feature there is also some drawbacks and

untapped potential. In this brief post, I will do my utmost best to explain how Forge works, why certain

ideas or things won't work, and what aspects of Forge we can epect to see improved upon or built on. This needs to be said now, that Forge is NOT A MAP EDITOR!!! It more closely ressembles a map modifier, but has editing properties.

What is Forge?

 

 

To understand exactly what Forge is, it is important to understand where the idea of Forge comes

from. Forge even now, is still unknown in the fact that it may be a standalone hard coded engine

application, or just a series of MegaloScript instructions. In either way, Forge is simply put, a feature

that is a cross between GUERILLA and SAPIEN. Guerilla, is the application in which Bungie and 343i

in the past, used to create and edit tags used in the game. Sapien, is the application that allows the

developer to place objects in the map, by loading the map with basic default values and allowing you to

"fly" around.

Forge was created out of an attempt to allow a general player base, the freedom to create new maps

while not making the user feel overwhelmed. By giving us the current Forge ability, it has proven time

and time again, that the player base can make some pretty awesome things. Some of those named

things, are creations the developer never thought possible.

 

How Forge Works...really.

 

As stated above, Forge is a utility that is a cross between Guerilla and Sapien. In order to give the

end user the ability to edit maps, the developer had to find a way to allow edits to the map, without

effecting the map file itself. The way they achieved this, was by instructing Forge to load scenario

files instead of full maps. A scenario file is a single tag, that includes the layout of everything used in a

map. Everything from objets, to spawns, to weapons, to even the bsp.

Forge, at time of startup, copies the scenario file of the base map into memory. This allows the user to

update, change and dictate where and what weapons etc should be placed, without corrupting or ruining

the basic map. This is why when we load a map for editing, the map contains all the basic things we

see in a standard map playing experience.

Inside the scenario file, you find things like...

- Weapon Palette (the pre-defined weapons a user can place)

- Object Palette (same as above. Includes things like crates, fusion coils etc..)

- Scenery Palette (things like teleporters)

- Vehicle Palette (same as weapons)

Along with these palettes, there are also fields for each "instance" of each item. Forge effectivly

allows the user to add "instances" of already defined palettes.

Once the map has been edited in memory and the user is ready to save, Forge then saves the file by

name, either given or auto, then procedes to encrypt the scenario file and write in the base map

location and all other relevant fields it needs. This is how Forge knows what map goes with what

Forge variant, which is why the game loads automatically, the right map, after a variant has been

selected. Aside from simply being able to load scenario files and create new ones, Forge also uses instructions that are found only in the engine executable. These elements allow Forge to decrypt tag names, and encrypt scenario files with the proper "Public" and "Private" key pair sets required to properly "sign" a map file or tag, and make it legit or authentic for the game.

 

Forge Items

 

So now that you understand how Forge works, it is also important to understand why and how certain

objects and certain limits are a part of Forge. First thing is first, every Forge palette for every map is

different. This is because when the maps were first compiled and included into the game, the

developer included in every map, a certain amount and type of items that were appropriate for each

map. Which is why we see things like "Trees" for Ridgeline, but do not see them in maps like

Swordbase. Every item that was chosen for each map is because it just "fit" or seemed like the best

matchup. Now because each item is compiled into each map, that is why we are able to select items

like spawns, weapons and player spawns. If the developer had not included the objects and scenery

etc.. into the maps "Palette", which is in the scenario file, we would only be able to spawn more of, or

move, only the items that we see in the base maps.

The limits that are placed in Forge are pre-set to allow the maximum performance for each map.

While yes, some maps may be able to handle double what some maps may not, the pre-set limits are

what you should conscider the safe zone. Along with map crashing, there is also the issue of the host

having to constantly relay data about object placement, player placement, and every other

matchmaking data you can think of. The limit is there to protect and ensure a smooth playing

experience, not to inhibit creativity or to just be jerks.

 

Forge over Live

 

Now by now you must be thinking...hey...how come you can load a map into forge with others over

Live, but others can't join in matchmaking on Forge maps unless they have it?

This is a very important questiona nd one that I will do my best to explain. When the "host" starts a

Forge type of match that is on a basic map, the "host" relays any changes to the clients in real-time.

At no point, does the clients Xbox have to load the scenario file that is being edited. Remember, when

starting a fresh Forge match, the scenario file being used at matchmaking loading, is the stock default

one. Only after a map has been saved and exited out of, does the client have to have the variant it

created in order to join. I hope that made sense....

 

Why no custom bsp? (level mesh)

 

While the Forge system could indeed move the level geometry, Forge ahs it's limits. Whenever you

move a face, vertice or edge, the level geometry needs to be re-compiled so [coll] collision, and [phmo]

physics, can be applied to the new mesh. For example, say you did move a flat part of the map, to be a

pointy mountain. The mountain would lose collision and physics, resulting in the player falling out of

the map and nothing being able to collise with it. This is also because each vertice, face and edge has

what we call a "bounding box" with it. Only by re-compiling the level, can we get the generated and

correct boundign values to keep or produce coll and phmo.

The Forge system alone would not be able to do this on the console due to code resources and

available memory and CPU threads. Also, the Forge utility itslef would not be able to at the same

time, have the map open to re-compile it. Thus nullifying the ability to change it at all.

Why no Custom items?

As I tried to explain ealier...all items that are able to be used or spawned in Forge are hard coded and

defined in the maps scenario file. In order to add new items to a single existing map, it would require

the developer to release a fresh map with the items hard coded, or release a map with extra palette

slots undefined, and swappable to the user.

 

Why can't we have weather effects?

 

Weather is the one attribute that is most desirable by the community, and the one area in which I have

been known to be an "expert" in by the modding community.

Weather is not an object that can be placed in a map, it is a media effect, but it can be defined and

changed to different weather types even after a map has been compiled. When a map is in -pre-

development, or the 3d app phase, there are regions of the map, that are given a specific syntax, to tell

the compiler that these areas contain weather. These fields are usually labeled as "+media" in the 3d

app. When the compiler processess the level geometry it effectively tells Guerilla and Sapien in the

end, that when adding weather, this is where it is applied to.

Weather can also be applied to a map without these fields, but is applied to the whole map. So yes

weather could be easily added to a forge map, but the weather effects would be seen indoors. Not

very appealing. Also, the weather would have to be compiled into the palette for Forge to choose from.

The whole point in adding weather to a map is to give it a little extra visual. By using "+media", the

developer can decide which areas get what type of weather, and are able to additionally add different

speeds, wind and even color to the weather. using weather in Forge, would not allow you to specifiy

certain weather attributes, due to the fact that weather itself is only referrenced and uneditable in the

scenario tag. Anything weather is strictly only editable within the [weat] weather tag.

 

Why can't we make our own items?

 

Similar to the custom items above, this would require a full on HEK (Halo Development Kit) Things

like models and collision have to be compiled. They cannot be simply changed or tweaked. Take for

example a Warthog. Lets say you wanted to stretch the warthog out to make it look like a weird limo

hog. After you have stretched it out, the engine would have to recompile the collision data, and you

the user, would have to manually replace or relocate all the animation, physics and collision nodes and

markers that goe along with it. At which point, you would also have to open the animation tags, and

change the animation tags data values to reflect the model. Also beyond that, even before compiling

the altered model, you would have to re-skin the model. Remember, by strecthing things, it would also

distort the textures that the model has. In a nut shell, the Forge system would not be able to perform

this set of ridiculous requirements, to allow the end user to make custom items.

 

After Thoughts

 

Ok, so going forward, what Forge things could we possibly expect?

This section is going to be strictly a mix of my opinion coupled with prior Forge observations and

technological bounds made in the past.

Gong forward with Forge, i think the future of the feature will allow us to expand upon what we have

now. You must remember that Forge itself was simply a way for the developer to get players

intorduced to the features they use to create maps. In a sense, every itteration of Forge was changed

and built onto, to give us new things to do and new things to change. All this is not done simply

because times change, but more or less because the more they give us, the more we learn. And the

more we learn, the more likely it is, that we will be able to use future tools in the mode, that more

closely ressemble what they do and use, and to a developer standard apsect.

As for the available items, I think Halo 4 and beyond will see a huge increase in the range we are

given. Given the powerfull leaps MegaloScript made with Forge, it would not be any suprise to see

them find a way to include every item from the game, being able to be selected and placed. By this I

mean even Campaign items like Scarabs, Turret towers etc....

Also given the recent additions to games like BF3 and MW3, I would not be suprised at all, if they

included a way to place AI in Forge. Needless to say, that feature alone would be enough to want to

buy the game and create an almost endless supply of challenges.

Beyond console though, I would not be suprised to see 343i or Microsoft, offer a PC counterpart either

in terms of full game port, or at the very least, PC to Console developmental tools, that allow users to

use their PC to create content, and upload it to local console or via Live to share with the community.

I hope this post has been helpful to many of you whom do not understand Forge from a technical

aspect, and I hope it has shed some light on why things are the way they are with out current state of

Forge in Halo Reach. If anyone has anything to contribute to this post, or has any comments or

cencerns, please feel free to post them up, and I will do my best to answer them and or add them to the

explanation. Thanks for reading folks...LONG LIVE 343I.org!!!!

  • Like 2
Link to comment
Share on other sites

  • 4 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...