Torque Game Builder 1.7.5 Released!
by Matt Fairfax · 04/30/2010 (6:06 pm) · 38 comments

I know it is a photo finish but we have delivered on our promise to deliver TGB 1.7.5 by the end of April and TGB owners can now download it from their account pages.
As Eric mentioned earlier this week, this release was primarily focused on stability and compatibility. Early in the process we enlisted the help of one of the leaders in the TGB community, William Lee Sims, to help us merge in the various bugfixes the community has posted (mostly centered around Windows Vista and Win7 compatibility). We also got a hand from LUMA to merge in the various fixes and improvements they have made to the base engine for iTGB over the last year as well as helping to bring our OS X compatibility up-to-date. Rene Damm also stepped in and contributed a variety of fixes from his personal work in TGB and Melv May even managed to slip in a few fixes earlier this year when no one was looking. Last, but not least, we merged in a number of extremely useful stability fixes from a few of our Commercial level customers.
Everyone who contributed to TGB 1.7.5 made a critical difference but I do want to particularily call out the efforts of Scott Burns and the new Fullsail QA department. These guys put some long hours into what I know had to be tedius work at times and their attention to detail really helped to make this release polished. Not only that, they managed to do it while gathering hardware and software and putting together a new compatibility lab. I am really looking forward to working with them more and I think it is going to make a big difference in all of our products!
I am excited to see what people do with a more stable and up-to-date TGB =) Enjoy!
The nitty, gritty details!
Improvements:
- Added Visual Studio 2008 projects and solution
- Made Con::evaluatef() safer
- Upgraded all Xiph libs to latest releases (Ogg, Theora, Vorbis)
- Upgraded audio system to use OpenAL 1.1
- Console now resets the function offset so the stack doesn't continue to grow unnecessarily
- Added Source Rect support to t2dScroller and t2dStaticSprite objects
- Added AlertYesNo dialog box support
- Added support ping-pong animations
- Added animation direction controls (ie. forward or backward playback)
- Support for non-unicode string buffers / t2dTextObjects
- Support for bilinear filtering on t2dTextObjects
- Support for integer pixel snapping on t2dTextObjects
- Support for 16bit image maps / textures
- Better checks / logic on particle saving in the editor
- Added outputting of bitmap name when a t2dImageMapDatablock is destroyed but still has references in order to help track down the other references
- SimSets can now have a class and superclass
- Added pointInRect() to RectF and RectD
- Minor modification to destroy resources rather than unloading textures during texture zombification
- Modified image-map so that it removes any bitmaps created during frame compilation
- randI and randF handle degenerate and inverted intervals
- TorqueGameBuilder.exe and TGBGame.exe are now DPI aware. (Per msdn.microsoft.com/en-us/library/dd464660(VS.85).aspx, manifest warnings can be safely ignored)
- Made the TGB window smaller on the Mac so that it won't be hidden by the top menubar
- Polish/cleanup pass on the documentation to make sure it is up-to-date

Fixes:
- Made ResManager::isValidWriteFileName() handle blank/empty filenames properly
- Updated all references to www.garagegames.com to www.torquepowered.com and removed any defunct links
- CodeBlock::exec() now protects against a NULL currentNewObject in OP_ADD_OBJECT
- AbstractClassRep no longer leaks field validators during initialization
- Made sure that the line buffer is terminated before using it in a string function in TelnetDebugger::processLineBuffer()
- Fixed a potential infinite loop in TSShape::fixupOldSkins()
- Made sure that Torque defines a proper set of delete operators to match its overridden new operators
- TiXmlDocument::Parse() now correctly handles a null result for LinkEndChild()
- GuiParticleGraphCtrl and GuiGraphCtrl ConsoleMethod's now correctly check against the MaxPlots constant when determining if a plotID is valid
- GuiMLTextEditCtrl::handleMoveKeys() no longer skips the final line when pressing the down or end key
- Zip entries are properly deleted if they are unable to be inserted into a ZipArchive
- Telnet debugger and console now properly protect against trying to use an invalid socket
- Unicode Win32 API handling fixed (affects all file I/O involving non-ANSI characters in file names)
- Several Theora video playback problems fixed
- Made sure all va_start()'s are properly matched with a corresponding va_end()
- Fixed memory leak in LangFile
- Added code to handle a NULL return from getOwner() in many of BehaviorInterface's functions
- Namespace::~Namespace() now properly uses dFree() for mUsage
- Fixed bogus delete/memory leak in loadObjectStream()
- Removed extra printf parameters from GFont::dumpInfo()
- TextureManager::loadBitmapInstance() now correctly checks to make sure the ResourceManager returned a GBitmap
- handleMasterServerListResponse() no longer leaks PacketStatus's
- GuiControlArrayControl::resize() no longer leaks memory in the form of the sizes and offsets arrays
- CTRL-Z no longer unintentionally deletes the contents of a GuiTextEditCtrl if it is done while dragging a mouse
- The UNIX version of Platform::isSubDirectory() now properly closes the directory in case a subdirectory doesn't exist
- Added better protection/tests for uses of dynamic_cast's
- Fixed several SnowLeopard/GCC4.2/XCode/OSX Build errors and issues.
- Fixing osx framework linking issues with OGG
- OpenAL OSX Framework issues with compiling linking *Broken Symlinks
- GFont destroying now decrement texture handles correctly
- Scripts are now correctly informed that no master server is found if that is the case
- Fixed a potential crash in the t2dSceneWindow picker
- Fixed a crash in GuiTextCtrl::setText() if the font is NULL
- Added missing PROFILE_END() in GuiCanvas::renderFrame()
- Fixed possible endless loop in the Windows FileDialog::setDefaultPath()
- Text in a GuiMLTextCtrl now correctly reformats itself on a resize.
- Memory is now freed when an audio profile deleted and streaming OGG stopped (torquepowered.com/community/forums/viewthread/96713 and torquepowered.com/community/forums/viewthread/53220)
- The mouse over graphic no longer used when the button is inactive
- Case is preserved when setting text on a button
- Fixed various collision-detection issues
- Fixed issue with referenced textures when image-maps were resurrected
- EventManager's isRegisteredEvent ConsoleMethod calls the matching C++ function
- GetScheduleDuration() and GetTimeSinceStart() now return the expected values
- GuiTextEditCtrl's selectAllText function correctly selects all text
- TGB more stable in regards to all window switching operations
- We now process the world-limits earlier during the update phase to make sure that tick-destination gets correctly updated when a world-limit collision occurrs
- Removed the problematic _WIN32_WINNT define so that TGB will compile cleanly on Visual Studio 2008
- Reordered the Xcode architectures so that it will default to i386 instead of ppc out of the box
- Made sure we aren't leaking memory from the dynamic_cast fix in DynamicConsoleMethodComponent::_callMethod()

Notes:
- Changed Xcode projects to use system OpenAL; dropped pre-configured support for OSX 10.4 in Xcode project (OAL does not ship with 10.4)
- Game Builder Torsion project renamed, and uses proper version of TGB 1.7.5 Tools.Torsion
- Dropped Windows 98 support
- Removed support for Visual Studio 2003
- Installers now remove the TGB AppData info since it was causing issues
- Removed the old collision-time separation clamping
Known Issues:
- Reloading a project may cause the toolbar to render improperly (restarting should fix this)
- Drag and drop for asset importing does not function on Macs
- Compiling in Xcode under ppc fails from time to time
- Selecting a config datablock does not fill in class fields
- Script-based File I/O outputs the to the GaragGames folder in the user's Roaming AppData
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.
#2
04/30/2010 (6:35 pm)
Great job everyone!
#3
04/30/2010 (6:50 pm)
great work guys.
#4
I am actually surprised to hear you still have PPC support. Wouldn't it just be better to drop it? I don't think anyone actually uses it, and I think it will be alot more simpler to support only i86 processors.
04/30/2010 (7:16 pm)
Good job!I am actually surprised to hear you still have PPC support. Wouldn't it just be better to drop it? I don't think anyone actually uses it, and I think it will be alot more simpler to support only i86 processors.
#5
PS: I confirmed that it is Luma and not LUMA. The precedent was set by someone (Mich?) looking at code comments and seeing //LUMA
:)
04/30/2010 (7:31 pm)
Excellent work guys! Great blog (as usual) Matt! PS: I confirmed that it is Luma and not LUMA. The precedent was set by someone (Mich?) looking at code comments and seeing //LUMA
:)
#6
04/30/2010 (8:03 pm)
Awesome blog Matt. Enjoy everyone!
#7
04/30/2010 (8:12 pm)
Sweet!
#8
04/30/2010 (8:18 pm)
Yay, my motivation to start using Torque again went up!
#9
04/30/2010 (8:38 pm)
Awesome! I'm jealous ;)
#10
Also I need to mention to everyone that when you install 1.7.5 make sure to delete the AppData from the previous version. If AppData generated by 1.7.4 still exists you will still see certain bugs.
04/30/2010 (8:38 pm)
Well done everyone! And since Matt can't thank himself I'll do it for him. Matt did a great job fixing the few bugs the guys here at Full Sail were able to find. Not too mention Mich conquering the pile of doc fixes quickly that the guys had cataloged during his vacation.Also I need to mention to everyone that when you install 1.7.5 make sure to delete the AppData from the previous version. If AppData generated by 1.7.4 still exists you will still see certain bugs.
#11
Awesome work!
04/30/2010 (9:35 pm)
Haha, great to see the Behavior Playground and Shooter are still chugging along :) Brings back some great memories!Awesome work!
#12
04/30/2010 (10:11 pm)
This looks great! Congrats on the deadline and the hard work!
#13
QA department!... that's music to my ear.
04/30/2010 (11:16 pm)
Awesome GG. You guys hit the target date and released a polished product...impressive. QA department!... that's music to my ear.
#14
Having said that, the hard work from the guys at Full Sail University ( and Scott, our on-site eyes and ears ) is leaps and bounds above where we've been.
You will notice a steady increase across all of our products.
05/01/2010 (12:22 am)
@Johnny -before we get too excited about the QA, I do want to caveat that the QA bar is currently on it's lowest rung for quality. It's a new group, in a new lab, using new procedures. We will be able to increase their ability to scrutinize reject releases once we can fully work them into our development life-cycle (which includes getting QA involved earlier than what we are doing now).Having said that, the hard work from the guys at Full Sail University ( and Scott, our on-site eyes and ears ) is leaps and bounds above where we've been.
You will notice a steady increase across all of our products.
#15
05/01/2010 (3:09 am)
One word, EPIC!
#16
05/01/2010 (7:21 am)
installed
#17
Afternote: I forsee a minor patch to rectify some screen resolution problems.
05/01/2010 (7:42 am)
Hooray! Downloading as I type this. Any news on what's next - TGB 1.7.6? T2D?Afternote: I forsee a minor patch to rectify some screen resolution problems.
#18
05/01/2010 (8:53 am)
Hope drag and drop finds its way to the mac.
#19
05/01/2010 (10:20 am)
this version is still based on opengl? or can use directx?, or only when you launch T2D (estimate date?)
#20
05/01/2010 (4:14 pm)
@Javier - See http://www.torquepowered.com/community/blogs/view/19347 for your question. 
Torque Owner Will Zettler
Digital Lightstorm Game Studio
Will