Game Development Community

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.

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++ behaviors

The 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.
Page «Previous 1 2 3 4 Last »
#1
07/29/2011 (2:10 am)
I like the mentioned improvements. Pestering you works! There's a lot to gut inside the engine, I'm sure. But seriously - foliage?!

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 :)
#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
07/29/2011 (12:43 pm)
yes, these posts are very useful

Quote: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!
#6
07/29/2011 (4:58 pm)
Yah, if you could sort datablocks by name. that alone would be huge.



#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
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
img89.imageshack.us/img89/2462/cleantemplate.jpg

Scripts Directory
img600.imageshack.us/img600/4964/templatescripts.jpg

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
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):

img814.imageshack.us/img814/2498/alphatestvalue.jpg
#11
08/19/2011 (12:16 pm)
Demos are gonna get an overhaul to contain quality art, useful code and show old and new features:

img28.imageshack.us/img28/8530/soldiern.jpg
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
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
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
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
08/21/2011 (8:13 pm)
@Michael

Quote: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
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:

img197.imageshack.us/img197/4413/projectpanel.jpg
Page «Previous 1 2 3 4 Last »