Game Development Community

dev|Pro Game Development Curriculum

Constructor Beta9 thru Beta14

by Matt Fairfax · 10/26/2006 (9:25 pm) · 93 comments

Just to give everyone a glimpse into how busy we have been with Constructor! This is extracted from our changelogs over the last 4 months.

Since this got a little long I had to split it up. This is continued from Constructor Beta3 thru Beta8.

And no, we do not have a firm release date yet =P

Constructor Beta9 thru Beta14 Changes

Below is a list of all changes that have been made to Constructor between Beta9 and Beta14. This covers SVN revisions 782 through 999.

Vertex Snap to Grid

Brush vertices will now correctly snap to the grid when moved with the tools or the Axis Gizmo. Previously they would only move by the amount of grid spacing but not stick to the grid as drawn.

New Action Centers

Two new Action Centers have been added to the Edit->Action Center menu and Tools Form's Action Center popup:
  • World [ALT+W] - about the world's origin.
  • Custom [ALT+C] - about a user defined action center that is stored in the current scene's detail level.
A new tool Edit Custom Action Center has been added to the Edit->Action Center menu. This allows the user to change the scene's custom Action Center to any position (which is saved in a CSX file). The changes made using this tool are immediate. The tool's only button, Reset, is used to place the custom Action Center back to the world's origin.

Brush Tab Update

  • The Brush tab of the Object Properties Form now has a button underneath the parent entity's name called 'Edit Properties'. Clicking on this button will open the Manage Entities window and select the brush's parent solid entity.

  • www.rustycode.com/matt/plan_10_26_06/ConstructorBrushTabEditPropButton.jpg
  • The Brush tab of the Object Properties Form now displays the selected brushes' group number or "None" if they do not belong to a group. If the selected brushes do not share the same group then the Group field will appear blank.

Select Same Brush Owning Entity

Added a new Select->Same->Brush Owning Entity menu item. With at least one item selected this operation will select like items that share the same owning solid entity ie: 'worldspawn' or 'detail'. This works with brushes, faces and vertices.

New Sunlight Form

A new Sunlight Form has been added and may be used to modify the current scene's sun's orientation and color. This information is now saved in a scene's CSX file.

www.rustycode.com/matt/plan_10_26_06/ConstructorSunlightForm.jpg

Manage Entities Window Update

The Manage Entities window opened from Scene->Manage Entities now displays the number of child brushes for each entity.

www.rustycode.com/matt/plan_10_26_06/ConstructorManageEntitiesBrushCount.jpg

Scene Menu Update

The Scene menu now contains a list of the loaded scenes at the bottom with a check mark beside the current one. Selecting one of the scene names will make it the current scene. This is in addition to what may already be done from the Layers Form.

www.rustycode.com/matt/plan_10_26_06/ConstructorSceneMenuList.jpg

Tool Dynamic Control Update

  • A new 'color3' dynamic control has been created. It provides three numeric text edit fields representing the RGB components of a color and a small color preview swatch.
  • A new 'label' dynamic control has been created. It is used to add a single line of (usually unchanging) text.

Add Point Entity Tool Update

The Add Point Entity tool now allows for a mouse click anywhere within the 3D Views to move the new entity. This means you're not required to click on the handle to position the point entity.

Radial Clone Tool

A new Radial Clone tool has been added to the Tools Form's Create tab. This tool will make multiple copies of the selected brushes (or all brushes if none are selected) radiate about a given center. Each copy has a given scale, rotation and offset (in that order) applied in a cumulative fashion. So the second copy will be scaled more than the first, etc. When the center handle is moved or the rotation axis is changed the duplicated brushes are updated in real time. At some point this tool will also work with shapes and entities.

www.rustycode.com/matt/plan_10_26_06/ConstructorRadialClone.jpg

Array Clone Tool

A new Array Clone tool has been added to the Tools Form's Create tab. This tool will make multiple copies of the selected brushes (or all brushes if none are selected) into an array with a given number of copies along the world X, Y and Z-axis. Each copy is given an offset from its neighbors as set in the tool's interface. It is perfectly valid to have zero copies along a particular axis to build 2D and 1D arrays. At some point this tool will also work with shapes and entities.

www.rustycode.com/matt/plan_10_26_06/ConstructorArrayClone.jpg

Quantize Tool

A new Quantize tool has been added to the Tools Form's Modify tab. This tool will force the selected brushes, shapes, point entities or vertices to snap to the grid. For brushes, shapes and point entities the Group and Origin Action Centers are honored and work as you'd expect. For vertices only the Origin Action Center operates specially and is likely what you'd use most of the time. All other Action Centers behave the same as Selection ie: snap at the selection center (Axis Gizmo location).

www.rustycode.com/matt/plan_10_26_06/ConstructorQuantizeTool.jpg

Drag Empty Area to Scroll

It is now possible to drag within a scroll control's body to scroll as if the scroll bars were used. Just hold down the mouse in an empty area (one that a child content control doesn't cover) and drag. This works better in some areas than others as child controls may take over more area than appears. An example of this is the Tree View control where its width is the longest line of text which leaves empty looking space around other rows. Good Forms to try this in are the Tools, Tools Properties and Preferences Forms.

New Tabbed Container Form

A new Tabbed Container Form has been added. Using the Tabbed Container's Modify Tabs menu item on the Form's menu the user may customize the number of tabs and the Form contents of each tab. For example one tab may be the Materials Form, one is the Undo Form while a third is the Preferences Form. If the tabbed content has its own menu items they are accessible from the Form Menu when that tab is active. For example with a Materials Form tab active the Form menu contains the menu items to adjust its texture popup image preview.

The older Properties Form on the current layouts has been replaced with a Tabbed Container Form that has also been given the name 'Properties'. It has been given tabs for the Tools Properties, Object Properties, Sunlight and Preferences Forms.

www.rustycode.com/matt/plan_10_26_06/ConstructorTabbedContainer.jpg

Window Title

Constructor's window title now displays the name of the current scene.

Undo / Redo

Undo functionality from Beta3 thru Beta8:
  • Creating and deleting a brush
  • Transforms (move, rotate and scale) using the axis gizmo
  • Brush selection and deselection
  • Selection
  • Adding / Deleting
  • Grouping
  • Locking
  • Hiding
  • Transforms (rotation, scale, position)
  • Replace Shape
New Undo functionality for Beta9 thru Beta14
  • Undo of vertex and face selection
  • Undo of brush geometry changes (e.g. vertex tweaking)
  • Undo of brush texturing
  • Implemented paging of the undo stack to disk. This should sort out the memory issues of Beta 11.
  • Undo entries that have been paged to disk show in the stack as blue. Paged out redo entries are light blue.
  • Added a couple of preferences to the prefs form to allow setting undo options. You can enable / disable paging entirely and set the maximum memory usage (in kilobytes) before entries are paged out.
  • Added a preference to limit the size of the undo stack. Set to zero for unlimited.
  • When changing scenes, the inactive scene will fully page out it's undo stack if it's inactive for at least a minute.
  • Undo for entity properties

Tool Created Brush ID Compression

While working with a tool it may create and delete a number of brushes during its operation. A good example is the Hollow Brush tool and the various Clone tools. All of these transient brushes change the next unique brush ID number and you may end up with large ID number gaps from using a tool. Now brush ID's are compressed after using a tool to help with this problem. This won't affect existing brushes but only those newly created by a tool. If a tool does not support brush ID compression it may set the tool.RFLAG_NOIDCOMPRESSION() flag at registration.

3D View Toolbar and 2D Alignment Tools

The Single 3D View Form may now display a toolbar. Its optional drawing and position within the window are setup from the Form menu's Toolbar Display item. The toolbar current has four tools: Align 2D Left, Align 2D Right, Align 2D Top and Align 2D Bottom. The tools currently operate in the orthographic display modes and are relative to the current view. So for a Top view left is considered the -x Axis while the Right view considers the -y Axis as the left. These tools are limited to only brushes and do not take groups into account ie: align to the individual brush bounds.

www.rustycode.com/matt/plan_10_26_06/Constructor3DViewToolbar.jpg

Undo Form Update

The bottom of the Undo Form now displays the amount of memory used by the current scene for the undo stack and the total amount of memory dedicated to undo for Constructor. To clear the current undo stack use the trashcan button at the bottom right corner.

www.rustycode.com/matt/plan_10_26_06/ConstructorUndoFormMem.jpg

Slice and CSG of Vertex Edited Brushes

You can now Slice, Knife, Clip, and perform CSG operations on vertex edited brushes without having to worry about losing your edits. Be warned though that a vertex edited brush that is not convex will not save or export properly.

www.rustycode.com/matt/plan_10_26_06/Constructor_vertexslice.jpg

WASD Camera Controls

A new Free Movement camera option has been added to the 3D View Form. To toggle between the original Orbit camera and the Free Movement camera use the 'c' keyboard shortcut or check the 'Free Cam' checkbox under the Preferences Form's 'View Camera' section. While in Free Movement mode the right mouse button will rotate the view about the camera's location and move the camera's target along with it.

With the right mouse button held in a 3D View Form the WASD keys become active to move the camera as in a traditional FPS game. These keys work with either the Orbit or Free Movement camera modes. Holding down SHIFT will cause the camera to move 10x faster, while holding down CTRL will cause the camera to move 10x slower. These keys also work with the Rotate drag button in the top left of the 3D View Form.

Preferences Form Update

The Preferences Form has a new 'View Camera' section with two new parameters. The 'Free Cam' checkbox is used to toggle between the 3D View camera's Free Movement and Orbit modes. The 'Move Speed' text edit control is the number of meters per second that the camera will move using the WASD keys.

Prompt for Save Before Close

If a scene has been modified the user will now be prompted before the scene is closed or Constructor is closed.

Unit Conversion

All text edit controls that are based on the Dynamic Control system (the Tools Properties Form is an example) now support units of measurement. When a unit is included with a number and Return or TAB is pressed, that number will be converted to meters (Torque units). Supported unit suffixes include: mm, cm, m, km, in for inches, ft or feet, yard or yards, mi or miles. These units may be combined with the existing ability to enter an expression that is automatically evaluated. For example if the following were entered into the Build Cube tool's Center X field:
5cm + 2mm
and Return or TAB is then pressed, the field would evaluate to: 0.052

A special unit of t has been set up that will convert a number of texture units (based on the map's geometry_scale parameter) into meters. This is very handy if you wanted to size a cube to match a particular texture size or to move geometry with the Translate tool a texture's width. For example if the following values were entered into the Build Cube tool's Size field:
Size X: 128t
     Y: 128t
     Z: 128t
you would end up with cube that perfectly fits a 128x128 size texture regardless of the map's geometry_scale setting. In the above case this would produce a 4x4x4 cube with a geometry_scale of 32.

Please note that not all text edit fields currently support this unit conversion. If they do not support expression evaluation then they also do not support the conversion. Over time more text edit fields will be upgraded. Forms that support unit conversion include: Tools Properties, Face tab under Object Properties, and Preferences.

Keyboard Shortcut List

Created a Help->Documentation->Keyboard Shortcuts menu item that opens a window display all of Constructor's keyboard shortcuts. The list may be sorted by the various columns using the arrow buttons along the top.

www.rustycode.com/matt/plan_10_26_06/ConstructorKeyboardShortcutMenu.jpg
www.rustycode.com/matt/plan_10_26_06/ConstructorKeyboardShortcutWindow.jpg

3D View Camera Update

  • Changed the Orbit camera zoom system's modifier keys. It is now consistent with the Free Movement (FPS) camera. SHIFT will increase the zoom speed while CTRL will slow it down. Holding down ALT with either modifier will double or half the speed respectively. The zoom speed multiplier may be customized with the ZoomFastMultiplier and ZoomSlowMultiplier preferences with each currently defaulted to 5x.
  • The algorithm for the orbit camera zoom system has been modified to remain consistent at all zoom levels while still providing the acceleration when the camera is further from the target.

New Locked Brushes Mode

A new Preferences Form check box has been added: Lock Blocks. When checked, locked brushes behave as in the past by blocking selection by the mouse. When unchecked locked brushes now draw in wireframe in all 3D Views and do not block mouse selection. This allows for locked brushes to remain as a reference while allowing the selection of geometry behind them. By default the Lock Blocks preferences is set to off. The 'l' keyboard shortcut may also be used to toggle the locked brush blocking state.

www.rustycode.com/matt/plan_10_26_06/ConstructorLockedBrushes.jpg

New Selection Sets Form

A new Selection Sets Form has been created. It lists all of the defined selection sets for the current scene with two buttons beside each entry. The '+' button will add the selection set to the scene while the '-' button will subtract it from the scene. At the bottom of the Form is a Create button to save the current selection into a new or existing set, and a Delete button to delete the chosen selection set from the scene. To highlight a selection set to delete, click on its name in the list.

The testscenes/fulltest.csx file has been included as a scene that utilizes most of the CSX format features such as grouping, static meshes and selection sets. You may use it to try out the Selection Sets Form's features until you build your own scene that includes selection sets. When combined with object hiding and locking, selection sets are a powerful aid in Constructor's workflow.

www.rustycode.com/matt/plan_10_26_06/ConstructorSelectionSetsForm.jpg

New Selection Form

A new Selection Form has been created. It is used to select or deselect objects based on the given criteria using the same '+' and '-' buttons as the Selection Sets Form. It mirrors much of the functionality found under the Select menu and also includes some special features of its own. It currently supports:
  • All objects
  • All geometry (brushes, faces etc.)
  • All point entities
  • All static meshes
  • All reference shapes
  • All geometry that uses the chosen material
  • All objects that are part of the chosen selection set
www.rustycode.com/matt/plan_10_26_06/ConstructorSelectionForm.jpg

New Keyboard Shortcuts

  • . (period) - Will zoom in the view under the mouse pointer
  • , (comma) - Will zoom out the view under the mouse pointer

Selection Form Update

The Selection Form has two new popups. The first is used to select all point entities of the chosen class ie: light_omni. The second is used to select all brushes that are children of the chosen entity. This popup lists entities as 'name (ID)' similar to parent field of the Object Properties' Brush tab.

www.rustycode.com/matt/plan_10_26_06/ConstructorSelectionFormUpdate.jpg

UV Texture Display

First pass at a UV texture display. To try it out change one of the 3D View Form's to a 'Texture (UV)' display mode (left popup) and select a brush face on a map. The face will be rendered in texture space ie: transformed vertex distance from the two texture planes. You may need to zoom in the display to see the textured face. Still lots of work to do but it appears to be correct and operational.

www.rustycode.com/matt/plan_10_26_06/ConstructorTextureView.jpg

New Build Sphere Tool

The Build Sphere tool is now operational. The user may choose the number of sides around the sphere's equator and the number of segments that make up its height. Right now only the 'Per face mapping' texturing choice is valid and will mirror the results of Quark. The texture scale and offset parameters all work.

www.rustycode.com/matt/plan_10_26_06/ConstructorSphereTool.jpg

Default Scene Settings

New scenes now inherit their setup from the default scene. The game types for the default scene can always be edited through the prefs window. You can also edit the default scene directly in Constructor to add any other default settings, entities, brushes, etc that you wish. The filename for the default scene is defaultScene.csx and lives in the same directory as the executable.

When opening a map, the game types from the default scene will be used, but no other information will be copied from the defaults.

More Information on Constructor

If you are interested in knowing more about Constructor please be sure to read the rest of posts about it:

Deconstructing Constructor - Part 1
Deconstructing Constructor - Part 2
Deconstructing Constructor - Part 3
Deconstructing Constructor - Part 4
Deconstructing Constructor - Part 5

Of mice and men and Constructor
When will Constructor ship?
Constructor Functional Beta Ships!
Constructor Beta2
Constructor Beta3 thru Beta8

TGE-L, Constructor and TSTPro

Torque Constructor Devshot 1
Torque Constructor Devshot 2

About the author

I am a Game Designer at PopCap who has worked on PvZ Adventures, PvZ2, Peggle Blast, and Bejeweled Skies. I am an ex-GarageGames employee who helped ship TGE, TGEA, Torque 3D, and Constructor.

#61
12/22/2006 (10:27 am)
Heeeeeeeeeeeeeeeeeeello,

When, please, when.
#62
01/03/2007 (10:28 am)
Any News???
#63
01/03/2007 (10:36 am)
Probably has been asked before but is there going to be any option for level designers (or artists.. people who aren't programmers) to increase the tiles limit for the terrain along with any option to change the default player camera directly through the editor? (like making the third person camera a bit closer and straight or shifting the cam a bit in FPS view)

Please make it easy to do these two things through the editor.. :|
#64
01/03/2007 (5:08 pm)
Any updates are good updates!!!!!Please let us know where you are in progress.
#65
01/05/2007 (7:54 am)
Seeking update... (cries)... pleeeesee (/emote: begging)
#66
01/05/2007 (8:35 am)
*hands Vashner a Wii*

There There.. they will update it soon.. I think..
#67
01/06/2007 (10:18 pm)
Tosses wii into fire pit as a sacrifice to the constructor gods...
#68
01/16/2007 (1:10 pm)
C'MON GIVE US AN UPDATE!!!!!! It's 2007 already!!! Ooooooh, I get it. If you release this product then the art packs you have won't sell.......boo-frickity-hoo!!!! How do you like all the !!!!! I'm throwin' out there???? It symbolizes my anger!!!!

HAHAHA! No, but really, when's it coming out?
#69
01/16/2007 (1:26 pm)
Gentlemen!
Suffice to say that it's time to put the plan B into action.


*picks up the phone and prank calls GG office*



EDIT: The real plan B will be ready.. when it's done.
#70
01/22/2007 (10:52 am)
Man, this is going to help creating maps BIG time! Yeah stating the obvious ;)
#71
01/27/2007 (2:50 am)
Hello, I come to the news, it have you a date of exit for Constructor, make a moment when I waits for him soft.:)

Good continuation.
#72
01/29/2007 (10:24 pm)
@ Swan's post -

*crickets.............HAHAHAHAHA..............crickets.........ha*
#73
02/01/2007 (11:31 am)
any progress?
#74
02/04/2007 (2:53 pm)
In an earlier blog you said that Constructor would be fully cross-platform, and as a Mac user my map-making choices are currently pretty sad. I hope Constructor arrives soon, and runs on the Mac when it does.
#75
02/04/2007 (3:38 pm)
Full Support for the Constructor Release, a rough date estimate would be appreciated.

addikt
#76
02/06/2007 (6:45 am)
Hi matt looks gr8.When is the release taking place or can i become a beta tester.I need to be ready for it as well.
#77
02/13/2007 (10:02 am)
beginning to wonder what the torque definition of "soon" is.
#78
02/13/2007 (10:40 am)
Duke Nukem Forever 'soon' ? :P
#79
02/15/2007 (3:29 pm)
This is getting tedious, some would call it vaporware, other bad tongues would say somebody is keeping this from hitting the streets. The overall closedness from Garagegames concerning constructor is also strange, this indie-based company doesn't even let all their commercial licencees beta-test this product, instead we all have to wait for an unclear timeline. I can assure you development schedules have been remapped waiting/hoping for constructor.
It is unimaginable that Garagegames apparently considers something like constructor is not priority, while it would leverage production capacity with torque considerably.The wait seemed logical until the 1.5 release according to Constructor features that would clearly not have been supported by the 1.4 version. Now the wait and absence of communication is unexplicable.

This is an outcry: please communicate to the people that support you what is happening, are you experiencing major problems, are you bound by legal issues , is this just not a priority for Garagagames,... or is there any other thing ?
#80
02/15/2007 (5:06 pm)
@Klaas - If a product isn't out yet, you find something else that is. You don't stop development or slow it even waiting for an unreleased product to be released. Stuff obviously is keeping it from getting released. Would you rather have a very buggy application or one that you are confident does the job you want it to do and does it without tons of issues.

It's getting a tad irritating hearing all the whining about constructor taking so long. They put out TGB and in the next day or two TGEA will be out. TXE is coming along very quickly. The only things left to do are TXE and Constructor.

www.mmogamedev.info/images/imgdc_ad1.gif