
What's New?
Tile Layer Editing in the Level Builder
Tile layers are now editable and viewable from within the Level Builder. This means that you can drop a tile layer on a scene and use either the quickedit or the right-most widget on the object to edit it. There are a variety of tools that you can use for editing your tile layers and you can save them off as different names, add scripting, assign collision polygons, and more.
Selection Tool
The selection tool in the layer editor (accessible from the quickedit tile layer toolbar) will allow you to select individual tiles, or double click to flood select a group of them and you can apply changes to any selection using the 'Apply to Selection' button in the quickedit. You can also shift+drag to do rectangle selection of a group of tiles.
Paint Brush Tool
The paint brush tool allows you to paint directly onto the layer with the currently defined brush or settings of an unsaved brush that is defined in the quickedit panel. This works much like the original tile editor painting and should be fairly self-explanatory.
Eye Dropper Tool
The eye dropper tool will allow you to drop from any given tile. It will grab all properties from a dropped tile and apply them to your current brush setup in the quickedit. It will get collision information, custom script and other relevent data from the tile.
Erase Tool
The eraser tool, when selected, will clear tiles that you click on.
Wrap Indication and Layer Collision Creation
The tile layer editor will display a translucent red rectangle around any areas of a tile layer that are wrapping when you are editing. This is to show you which areas you can change and which are simply duplicates from wrapping options. You can also do a normal collision polygon edit on a tile layer and it will automatically chunk out the collisions onto the proper tiles so that they match what you've created as shown above.
Editor Add-On Support
With 1.1.1, resources have been expanded upon to allow drop-in add-on functionality to the Level Builder and tools set. An addon is simply a folder with special scripts inside of it that is placed in $installPath/tools/resources/resourceName that will automatically be loaded upon startup. As an example of this functionality we have prepared a floating Layer Management window addon that you will be able to download from TDN soon! It provides a new menu item and shortcut (ctrl-l) to toggle it on screen and will show up as follows. This means that if you've got a modification you've made to the Level Builder that is all script you can easily give it to your friends and they can then instantly use your cool add-on the next time they start TGB. All currently active add-ons are listed in the about dialog for TGB.
Layer Y-Sorting Support for Isometric Games
Layers may now have a sorting mode assigned to each of them, including sorting by Y and -Y axes. This allows you to do isometric style games where a player may need to at times be rendered in front of or behind an object depending on his Y position and the sort point for his object. The sorting modes for each layer may be changed by clicking on the scenegraph (on no objects) and in the "Layer Management" rollout.
UI and Workflow Improvements

Smaller, More Space-Saving Layout
We received feedback from lower resolution users that the Level Builder consumed a large amount of space and left them feeling as if they didn't have much of a scene to work with. So with this in mind, we streamlined the appearance using smaller fonts and graphics to allow it to correctly run at lower resolutions and display even MORE data at higher resolutions.
New Button Appearance
There was also a lot of confusion about buttons on the interface so the buttons have been tweaked to appear more like buttons, making them easier to identify and more inviting to click on!
Play Preview Linked to Design Resolution
The play game option of the builder has now been linked to the design resolution at which your level is designed. This was because of feedback indicating that designing something for 800x600 while running the builder in a 16:9 Aspect Ratio resolution was causing stretching of sprites and overall confusion and dissatisfaction while playing your game. TGB now sets the screen size to the design resolution that is specified when playing your game and then back to its previous resolution when you return to the editor.
Many more
See below for the full change list.
Version 1.1.1
Released Aug. 9, 2006
Full Change List
- Added default config datablocks to image maps and animations.
- Any static or animated sprite created with the create tool with an image map/animation that has a default datablock defined will be created with that config datablock.
- Added dropDownList quick edit field type.
- Managed Brushes.
- Added Y Sorting code from Tom Spilman.
- Made Object Library trash work with 3D shapes, tilemaps, and effects.
- Resolved issue where writing fields with greater than ~1000 length would crash the engine.
- Debug modes set in the editor are applied during level testing.
- Play and Pause buttons added back to play level window to pause/resume a level while testing.
- Added design resolution to t2dSceneGraph quick edit.
- On test level, the resolution of the window is set to the design resolution.
- The aspect ratio to maintain during scaling operations is now based on the aspect ratio at mouse down, not the aspect ratio when shift was pressed.
- Converted all cases of GL_LINE_LOOP or GL_LINE_STRIP that had a large amount of verts (crash in D3D) to GL_LINES.
- Updated LevelBuilder to display in the title bar the level you're currently editing.
- Upped sidebar frame's minExtent from 240 to 270 to accomodate always having viewable the quickedit fields.
- Fixed particle effect and tile layer auto-saving on level save.
- Object library is only refreshed after all layers and effects have been saved, rather than after each one. Much faster.
- Saving the selected objects (cut/copy or File->Save Selected) now writes out a t2dSceneObjectSet so objects aren't grouped on paste/load.
- Layers and effects are reloaded when done testing a game and returning to the Level Builder.
- Disabled blending during debug rendering so debug boxes don't use src/dst blend factors.
- added removeTileLayer function to t2dTileMap.
- made tile layers properly dereference themselves when they're moved from one tilemap to another.
- Fixed particle editor editting wrong effect issues.
- Fixed particle editor emitters after save.
- Removed RIGID from world limit options.
- Object library no longer reloads every time the level is tested.
- Object library rollouts maintain state during refresh.
- Added accelerator keys to openProjectDlg.
- Added Dictionary Insert linking to self assertion (Core Stability Checks).
- Added double object register assertion to registerObject (Core Stability Checks).
- Constant force and velocity are now zeroed on objects when attached to a path.
- Moved particle effect/emitter edit graph buttons to bottom of the Particle Effect/Emitter Rollouts they belong to.
- Fixed project resource dialog so it reflects the correct loaded resources and allows loading/unloading of more than one resource at a time.
- Fixed bug in guiListBoxCtrl where items couldn't be selected after they were removed and re-added.
- Fixed camera position not getting set when placed at 0, 0.
- Made SimObject::save use getDataField instead of Con::getData so it properly uses protected field functions.
- Changed link point and mount node handling.
- Link points are also reference counted now.
- Objects are always mounted to link points now (though they are still referenced via mountOffset).
- Fixed bug where mountID and mountToID dynamic fields weren't being erased after saving.
- Added delete notifies to t2dPath to ensure deleted objects aren't referenced.
- Fixed mountID dynamic field problem. Fixes issue with objects being mounted to the wrong object and with mountID showing up in the dynamic field list in the level builder.
- Levels no longer reload in the level builder every time the level is tested.
- Modified GuiTextEditCtrl to only select all text when the box is double clicked.
- Removed opening same project restriction.
- Made triangles legal in the poly edit tool.
- Added functionality to t2dTileLayer to automatically chop up a custom collision polygon into the correct polys for each tile.
- Made animated sprites and tile layers show in the correct aspect ratio in the object library.
- Made tile layers editable by the collision poly tool.
- Revised tilemap tutorial to use the new tilemap editor.
- Added "Cancel" to the options dialog.
- Resolve issue where the preferences dialog and toolbar options wouldn't be always synchronised.
- Added onObjectDeleted and onObjectResurrected callbacks from the levelBuilderSceneEdit.
- These are used to manage the deletion and undoing of deletion of persistent objects.
- Fixed some resolution problems with the options dialog.
- Applied this fix from Tom Spilman.
- This fixes the pasting in debug builds.
- Added buffer to guiColorPicker so that the extreme values can always be picked.
- Fixed rotation accumulation problem with mounted objects.
- Fixed rotated layer rendering in object library.
- Fixed TypePoint2F and TypePoint2F vector precision problem.
- Fixed the extreme slowness of the paste operation.
- Fixed config datablock undoing.
- Disallowed the use of mouse axes with bindCmd - this was crashing the engine.
- Removed old tile editor.
- Fixed potential buffer overflow in setConfigDatablock.
- Fixed bug in guiCheckBoxCtrl where it didn't set correctly with "true" or "false" strings.
- Removed group size > 1 restriction from level builder.
- Groups of size 1 are only inspectable when selected from the tree view.
- Added notification for when layers or effects are changed and the level is being saved.
- Added "onChanged" and "onSaved" callbacks for layers and effects. These are called from various different places whenever a layer or effect is edited.
- Added save management for layers and effects.
- Allowed setting a target camera zoom for a mounted camera.
- Added "shutdownProject" call to onExit so projects are properly cleaned up when the engine closes.
- Added globalTileMap persistence when using a t2dSceneGraph to load/end levels.
- Changed file dialogs so they are popped from the gui before they call their callback.
- Fixed weird scroller rollout problem when creating a new image map.
- Removed Launch Tile Map Builder from the menu.
- Increased margin on object library rollouts so objects can't be picked from collapsed rollouts.
- Set Full Optimization on Release Build .NET 2k3.
- Fixed Intellisense Formatting Borking Codeblocks in guiFormCtrl.
- Fixed Rendering Issue in TabBook.
- Updated Platform::Process performance fix to correctly account for focused and non-focused windows.
- Fixed improper return value in scenegraph console method.
- Revamped UI to take better advantage of ScreenSpace on smaller resolutions.
- Updated Object Library panels to auto-collapse on refresh if they contain no objects.
- Updated Sidebars to properly distribute space between themselves and the tab books.
- Resolved issue where Image Builder was always applying CellWidth/Height over specified Cell Row/Column counts.
- It now performs properly by having the last edited one take priority of the two.
- Double clicking an object will now open the edit pane of the sidebar.
- Added the concept of a default tool to the level builder.
- Fixed left right edit adding undos when it shouldn't be.
- Added newLayer.lyr to the object library.
- When mounting with the mount tool, object's will snap to the center of other objects.
- Fixed bug in guiT2DObjectCtrl where flipped objects wouldn't render flipped.
- Added an editable drop down list quick edit field.
- Fixed crash when flood filling a large area on a tile map.
- Removed unnecessary datablocks from TGB project.
- Made Tile Layer editor toggle grid visibility to off when editing a tile layer (double grids are bad, especially when they don't line up.)
- Telnet Debugger fix for Tom Spilman.
- Updated Resource Finder to Enum Tool Resources (Addons).
- Updated resolveClampCollision with tom's precision fix.
- Fixed nasty bug in SimObject::setDataField regarding protected field functions using the console string stack.
- Merged in Linux 1.1.1 Build Changes from NfoCipher.
- Added Linux 1.1.1 Binary.
- Added a getPlotIndex function to GuiParticleGraphCtrl.
- Made Tile Layers opacity tweak on layers that are NOT the currently editing layer. (25% for layers under our layer, 10% for layers above it).
- Double spaced the RSS news listings.
- Modulo on negative numbers supported in scripting.
- Mac platform updates merged in from TGEngine.
- Made packagingUtility status dialog close button activate upon packaging error.
- Fixed tile map collision poly editing issues.
- Removed Dead Rollout Code..
- Change the mainScreen.gui to display a black field, instead of a bitmap.
- Made newLayer.lyr default to layer 0 instead of 30.
- Added layer filename display to tile layer quick edit.
- Made non-preloading images not show up in the link image map creator.
- Made selections persist across level tests.
- Modified setSelectedPoint in guiParticleGraphCtrl to set more appropriate values.
- GuiParticleGraphCtrl improvements:
- AddPlotPoint() now returns the point added or -1 if there is an existing point at that time.
- Added a new method and console method "isExistingPoint" to check if a point exists on the graph.
- GUI - Fixed Error in default control render where 9 sided bitmap arrays were not being rendered properly.
- Updated Rollout to greatly simplify it's code and fix some issues.
- Now uses better rendering scheme composing of a collapsed and expanded bitmap setup instead of one that serves as both and causes problems.
- Updated Rollout Graphic.
- Changed default font size from 13pt to 14pt for readability.
- Reasonable Particle Limits for Effects and Emitters.
- Full Screen/ Non Full Resolution Fixes.
- $levelEditor::DefaultCameraSize now specifies default camera size for levels and origin is aligned on grid.
- Animated sprites play their animation when clicked in object library.
- QuickEdit Mask type has select all or none buttons.
- Fixed particle graph point selection upon deleting a point.
- Added reorderchild to SimSet.
- Added some new aspects to guiParticleGraphCtrl.
- Selected point's color is inversed.
- Added a setSelectedPoint consoleMethod.
- When you remove the last point it will now properly selected the previous point.
- Added unlocked button to layerManager view.
- Abstracted editor menu creation so resources can modify them.
- Added floater window support.
- Added TGB Insider Gui.
- Added delete hotkey for erasing selected tiles.
- Added mouse dragging for drawing/selecting/erasing tiles in the drag rect.
- Added a size object to layer button.
- Made objects on hidden layers unselectable by the selection tool.
- Added layer hide/show and lock/unlock buttons to t2dSceneGraph Quick Edit.
- Made setRenderMasks optionally include Groups, instead of requiring them.
- Added pick Layer/Group functionality to levelbuilder scenewindow.
- Updated Editor Profiles to no longer use Arial Bold.
- Updated SceneView to support render/lock setup for layers.
- Hooked up frame thumbnail picker to tile editor.
- Made brush settings revert to defaults when deselecting a brush.
- Resolved issue where Click-Create from the create panel was not respecting frame numbers.
- Implemented Telnet Debugger fix from Tom Spilman.
- Implemented TileMap Camera Shake fix from Tom Spilman.
- Added New Trigger/SceneObject/Path graphics.
- Fixed actionMap::bindCmd so it works with joystick pov.
- Set noCursor on the play level gui so users can hide their cursor when testing.
- Added safeguard against blank filenames for layers and effects.
- Added "None" to tile map editor image option.
- Added Array Support to Gui Inspector.
- Updated Platform window to fade in over 200ms (Requires Win98 or higher).
- Updated Platform::initWindow to peek messages between initialization steps to resolve "Not Responding" issue when you click on the window during startup.
- MSDN states that Windows determines an app to be hung when
- It's not in startup and not waiting for input.
- Hasn't peeked any messages in 5 seconds.
- Updated TileLayers to allow specifying of "-" as a layer name to clear the stored layer name. (Copy/Paste a layer and set layer to "-" to have it reset its name but keep the pasted data).
- Added object sort point tool.
- Fixed Scenegraph QuickEdit update on level change.
- Made test level gui a modal dialog instead of adding it to the scene window.






