Mentionable 1.5 Improvements
by Michael Perry · in iTorque 2D · 07/28/2011 (9:26 pm) · 67 replies
Greetings all. As another dev day winds down, I look back at the code that was written. So far, people seem pretty happy with the improved input system, which is really encouraging. Each release brings a big feature or change, but sometimes it's the little things that make people cheer. What you will not see is a big blog focused around the following list of subtle improvements. I thought you might want to see these to bide some time between now and the next release. Existing users will probably understand this a little better, which is why I made a forum post instead of a blog.
1.5 final will ship without this problem. iT2D project files will now be .it2dproj (little i before everything, right Apple?). While I'm at it, I will be changing the name of certain executables, templates, registry entries and plist files to make sure this is a much smoother installation on both Windows and OS X.
1. Mass selection removal (already in the second preview). You can multi-select entries on both sides to add or remove datablocks.
2. Organization. I'm still dabbling here, but I hear everyone loud and clear. The dialog is just fine for something like RainyDay, which only has three or four datablocks. However, the presentation does not scale well with dozens and dozens. There is no real ordering of the datablocks or clear separation. I have a couple of ideas I'm kicking around, such as a "Sort by" option and explicit separators (of some kind) between types.
2. Semi-auto management. I do not want to go overboard here, but I do think there is some room for helping users out with adding level datablocks. My initial approach will be to automatically add image and animation datablocks for anything in the level when the play button is pressed.
These changes have made developing iTorque 2D a lot easier for me, so there is some merit in revealing them ahead of time. This is the kind of stuff that doesn't get the marketing treatment for an engine release, but I love it. If I think of any other subtle improvements, I will list them in this thread. I'd really like your feedback, so don't hesitate.
File Association Changes
Most long term iTorque 2D users know a golden rule when installing a new version. Uninstall everything else first. This includes Torque 2D and previous versions of iTorque 2D. Why? Well, they all share the same executable names and project file extensions. If you double click a .t2dproj on Windows, there is a good chance you might launch the wrong editor. Imagine my development environment: one trunk and five branches of iTorque 2D, plus the Torque 2D repo trunk, plus installations of the final products. It's a real PITA, but you know that.1.5 final will ship without this problem. iT2D project files will now be .it2dproj (little i before everything, right Apple?). While I'm at it, I will be changing the name of certain executables, templates, registry entries and plist files to make sure this is a much smoother installation on both Windows and OS X.
More Editor Shortcuts
Simple, but a major time saver. I have removed the Visual Studio 2005 button from the Project tab. Two new buttons have replaced it. One will take you to the Xcode project for the OS X runtime, the other will open the new Visual Studio 2010 solution.Improved Level Datablocks Dialog
The introduction of level datablocks was smart. A great idea worth extending. The following three key improvements are on my radar for the 1.5 final. They are not solidified, but I have high hopes:1. Mass selection removal (already in the second preview). You can multi-select entries on both sides to add or remove datablocks.
2. Organization. I'm still dabbling here, but I hear everyone loud and clear. The dialog is just fine for something like RainyDay, which only has three or four datablocks. However, the presentation does not scale well with dozens and dozens. There is no real ordering of the datablocks or clear separation. I have a couple of ideas I'm kicking around, such as a "Sort by" option and explicit separators (of some kind) between types.
2. Semi-auto management. I do not want to go overboard here, but I do think there is some room for helping users out with adding level datablocks. My initial approach will be to automatically add image and animation datablocks for anything in the level when the play button is pressed.
Macro Reduction
Can anyone name all the macros that can be toggled for the various optimizations and feature add-ons for iTorque 2D? How about the list and the explanation? Yeah, not great. I already mentioned this in another thread, but I'm going to start eliminating certain flags and preprocessor definitions that are no longer useful. A prime example is Use Multi-touch. There was definitely a purpose to this flag previously, but this is actually a surefire blocker to using the improved input system. This is just one example. The list will grow as I continue evaluation.Source Code Stripping
There are quite a few source files that carried over as far back as the original Torque 2D days. Anyone use the turrets or foliage system in iTorque 2D? Didn't think so. I'm going to eliminate what I can, including the example components that no one seems to know exists. These will be taken out of the engine, but provided as downloads in tutorials that show C++ behaviorsThe Common Folder
I started my own personal project on the side. The first thing I did was gut the the game's common directory. From my IRC discussions with other users, I'm not the only one. It took very little time, increased load speed and is generally easier to parse. This is not an actual task or anything I planned for the 1.5 final, but this change could make a great Saturday morning improvement.These changes have made developing iTorque 2D a lot easier for me, so there is some merit in revealing them ahead of time. This is the kind of stuff that doesn't get the marketing treatment for an engine release, but I love it. If I think of any other subtle improvements, I will list them in this thread. I'd really like your feedback, so don't hesitate.
About the author
Programmer.
#2
07/29/2011 (12:03 pm)
These kinds of forum posts are very useful. Thanks.
#3
07/29/2011 (12:21 pm)
Phew, glad you liked the post. I was hesitant to even post it. I'll keep updating it then =)
#4
this is great news; Visual Studio 2010 is a major improvement compared to VS 2008.
07/29/2011 (12:43 pm)
yes, these posts are very usefulQuote:the other will open the new Visual Studio 2010 solution
this is great news; Visual Studio 2010 is a major improvement compared to VS 2008.
#5
07/29/2011 (4:52 pm)
Sounds good, can't wait!
#7
07/29/2011 (10:07 pm)
Culling the old junk code out of the project would be really nice. It started out as such a quick port from TGB that nobody's really taken the time to remove unnecessary features.
#8
Base Hierarchy

Scripts Directory

Additionally, a lot of my changes have almost made commonConfig.xml worthless...which means it will most likely go away along with the XML loading/saving code that depended on it. This is due to a sweeping cleanup of all the preference variables that are not used for iT2D development.
08/04/2011 (2:17 pm)
Alright, the cleaning of the common folder ended up becoming a mandatory task. While working on Universal App Support, a lot of what was in common got in the way or made my life difficult. I am still changing code to make this work, but here is where I'm at right now:Base Hierarchy

Scripts Directory

Additionally, a lot of my changes have almost made commonConfig.xml worthless...which means it will most likely go away along with the XML loading/saving code that depended on it. This is due to a sweeping cleanup of all the preference variables that are not used for iT2D development.
#9
08/10/2011 (2:00 pm)
Regarding any improvements to the level_datablocks window, being able to stretch it out so that the names can be fully read. often I have thisThingB1234ImageMap and thisThingB1237ImageMap... in other words, the title of the datablock can not be fully seen.
#10
@All - In case you haven't seen, we are going to implement Daniel's performance boost (posted here).
As far as presentation goes, this is a WIP. However, this achieves the performance boost by default. Additionally, this does not break previous projects/objects and provides control over this optimization (for those of you who are actually using GL_ALPHA_TEST):
08/12/2011 (12:28 pm)
@rennie - That's a great suggestion!@All - In case you haven't seen, we are going to implement Daniel's performance boost (posted here).
As far as presentation goes, this is a WIP. However, this achieves the performance boost by default. Additionally, this does not break previous projects/objects and provides control over this optimization (for those of you who are actually using GL_ALPHA_TEST):
#11

Note: This is not a screen from an actual demo, just shows some sprites we are going to have for different ones
We will be using some art from Torque 2D for one of the demos, but the rest are getting the full attention of our art department.
08/19/2011 (12:16 pm)
Demos are gonna get an overhaul to contain quality art, useful code and show old and new features:
Note: This is not a screen from an actual demo, just shows some sprites we are going to have for different ones
We will be using some art from Torque 2D for one of the demos, but the rest are getting the full attention of our art department.
#12
- FIXED: Edit Polygon button in the quick edit tab now opens the selected object. Previously, you could only edit the polygon of a selected object using the pop-up menu in the scene. Surprised no one reported this bug.
- ADDED: Every new project ships with a single behavior: Touch Drag. This makes creating draggable objects a one-click operation
- INTERNAL: The last facet of universal app support was hiding objects in the editor, without setting Visible or Enabled. That's working via the mHideInEditor property, which is not exposed to script or saved as a field. It is toggled using the helper function setHideInEditor.
- IMPROVED: Levels created before 1.5 will have three t2dSceneObjectGroups added to implement universal app support. Every object will be set to Universal initially, so ported levels will work with the new system out of the box
- ADDED: t2dTileLayer objects have a new checkbox: Render Grid. This makes it easier to use blank tile layers as a fixed grid for object placement.
08/21/2011 (12:15 pm)
Straight from the latest SVN commit log:- FIXED: Edit Polygon button in the quick edit tab now opens the selected object. Previously, you could only edit the polygon of a selected object using the pop-up menu in the scene. Surprised no one reported this bug.
- ADDED: Every new project ships with a single behavior: Touch Drag. This makes creating draggable objects a one-click operation
- INTERNAL: The last facet of universal app support was hiding objects in the editor, without setting Visible or Enabled. That's working via the mHideInEditor property, which is not exposed to script or saved as a field. It is toggled using the helper function setHideInEditor.
- IMPROVED: Levels created before 1.5 will have three t2dSceneObjectGroups added to implement universal app support. Every object will be set to Universal initially, so ported levels will work with the new system out of the box
- ADDED: t2dTileLayer objects have a new checkbox: Render Grid. This makes it easier to use blank tile layers as a fixed grid for object placement.
#13
Any chance someone could look at improving the text rendering so it brings it into align with the native UI font rendering? The Torque OpenGL font rendering ends up looking very blurry and muddy.
08/21/2011 (1:29 pm)
Loving the improvements! Any chance someone could look at improving the text rendering so it brings it into align with the native UI font rendering? The Torque OpenGL font rendering ends up looking very blurry and muddy.
#14
08/21/2011 (2:16 pm)
@Scott - This is up in the air for 1.5. I can't guarantee it will be addressed for the final. A tipping point could be it becoming a major pain when we are creating the new demos. We are about to go into our last bug fix sprint and there are problems with a higher ranking priority.
#15
08/21/2011 (3:31 pm)
Agreed Michael, shouldn't bust the sprint backlog. It can go in the product backlog.
#16
I second that request.
Also, I was wondering if there was any shaders in the works?
08/21/2011 (4:21 pm)
"Any chance someone could look at improving the text rendering so it brings it into align with the native UI font rendering? The Torque OpenGL font rendering ends up looking very blurry and muddy." -Scott I second that request.
Also, I was wondering if there was any shaders in the works?
#17
08/21/2011 (4:50 pm)
@Mladen - It's not on the 1.5 plan, which is what we are focusing on.
#18
one feature that I think could be useful would be to define a "grid" in some way instead of the setActiveGrid that just displays a blue line; for example, loading some default grid tile.
This can be done in script: I recently found 2 issues trying to do this
BUG: t2dTileLayer setGridActive not displaying last lines
08/21/2011 (8:13 pm)
@MichaelQuote:ADDED: t2dTileLayer objects have a new checkbox: Render Grid. This makes it easier to use blank tile layers as a fixed grid for object placement.
one feature that I think could be useful would be to define a "grid" in some way instead of the setActiveGrid that just displays a blue line; for example, loading some default grid tile.
This can be done in script: I recently found 2 issues trying to do this
BUG: t2dTileLayer setGridActive not displaying last lines
#19
08/21/2011 (8:52 pm)
@Pedro - I think I see what you are getting at. The modification I introduced was due to a requirement for my own game. The person working on a level wanted a defined grid to work with, but the guidelines for the editor itself are worthless. Since we are going to be using a "city grid" anyway, it only took me about five minutes to add that flag. It can be useful for debugging or just a temporary guide line system.
#20
- DEPRECATED: Removed Enable Use Network checkbox and backend variables. Torque 2D does not have true, GameKit networking support. The old socket network code is untested, undocumented and likely broken. This will eventually be replaced with GameKit. For now, it is confusing to even have a checkbox in the editor that no one uses or understands.
- UPDATED: Moved the rotation check boxes to the same section as the orientation and device type. Rather than preprocessor macros, the user can control rotation of the view based on device tilting using these check boxes, which sets $pref::iOS::EnableOtherOrientationRotation and $pref::iOS::EnableOrientationRotation
In general, the project panel is a lot cleaner to look at:
08/22/2011 (4:58 pm)
Hot off the repo commit log:- DEPRECATED: Removed Enable Use Network checkbox and backend variables. Torque 2D does not have true, GameKit networking support. The old socket network code is untested, undocumented and likely broken. This will eventually be replaced with GameKit. For now, it is confusing to even have a checkbox in the editor that no one uses or understands.
- UPDATED: Moved the rotation check boxes to the same section as the orientation and device type. Rather than preprocessor macros, the user can control rotation of the view based on device tilting using these check boxes, which sets $pref::iOS::EnableOtherOrientationRotation and $pref::iOS::EnableOrientationRotation
In general, the project panel is a lot cleaner to look at:
Torque 3D Owner Ronny Bangsund
Torque Cheerleaders
Of course my modem broken on Monday, and I have only had the replacement installed for a few minutes. More to play with for the weekend, at least :)