Game Development Community

Official Torque X Documentation Feedback

by Michael Perry · in Torque X 2D · 05/14/2008 (7:38 pm) · 92 replies

=========================================================================
This Thread Is The Official Documentation Feedback Area For ALL Versions of TorqueX

If you want to quick search for all TorqueX Doc Updates, perform a keyword search in your browser for
"Documentation Update:"
=========================================================================

Hey everyone. It's about time we have a central thread for TorqueX (TX) users to post their feedback in regard to documentation.

We have a similar thread going on in the TGEA private forum, and so far the feedback has been overwhelmingly positive, constructive, and very helpful to the doc writers. Due to its success, a thread is being posted in each of the engine's forums to get feedback from the users.

Purpose of the Thread:
- Provide a central thread for Torque X users to post their thoughts, suggestions, and criticisms about documentation. If possible, try and keep the dialog *specific* to Torque X, which would exclude TGE/TGB/TGEA and Torque X Builder.

Targets:
- Official documentation provided by GarageGames, TDN articles, and user submitted docs/tutorials.

Suggestions for Posts:
- What is the #1 thing you would like added to the official docs?
- What area of the docs do you think needs the most work?
- What do you see in other tech docs, be it for other Torque engines or non-Torque tech, that you think would be beneficial to have in the docs?
- What are your feeling on TDN vs how the current official docs are presented?
- Bring attention to resources, tutorials, articles, or community member submissions you think should be merged into the official docs
...etc, etc

So, the overall concept of this thread is pretty simple. This is your chance to talk until your face turns blue about what you want from the docs.

Be as clear, descriptive, and specific as you can!
#21
05/30/2008 (6:11 am)
@Carolina - Fantastic feedback!
Quote:
(although it might be too late for me)
Unless you give up Torque tech entirely, it's never too late to update the docs and generate new content and still be of use =)

I'm glad everyone is hitting on all possible features, and not just the content itself. Breaking down the presentation, the widgets (search box), and giving specific examples is extremely helpful.

I fully understand the frustration (from all users of all the engines).

After using the various engines, some more than others, over the course of 4 years I still occasionally come across a function that baffles me and can't seem to find a description detailed enough for my purposes. As soon as I get a good idea of how it works, I create my own little mini-doc (with example) to be used later.
#22
05/30/2008 (9:40 am)
To everyone looking for a class reference, I found a limited one by scanning the TorqueX installation directory. Turns out there's a "Torque X API.chm" file in there that helps a bit, though it could use a LOT more beefing up.

The "Search" box in the HTML documentation hasn't proven very useful, but that could be because there's nothing for it to produce as results. When it does produce results, it'd be nice if there was a bit more information so I could determine the usefulenss of each result without clicking on them all.

I'm very interested in using TorqueX for the new project at my company (a big company), but so far it has proven unusable due to lack of sufficient documentation. By example, I spent 14 hours putting together a demo application in WPF and another version of that same demo using XNA 2.0 in 12 hours.

By contrast, I've been working on the TorqueX version for TWO FULL WEEKS and still can't even get text on the screen. Unless a miracle occurs today, there's no way on Earth my Management is going to choose TorqueX for our project. It's got Physics, Collision, Animation, Attachments, Sprites, and a level editor -- but if I can't figure out how to use anything it doesn't matter.

This is really sad because it means TorqueX will fail in the marketplace. There's a reason you don't see any AAA games released with Torque technology and there's a reason Torque technologies are viewed as toys. And it all starts with a complete lack of useful documentation.

The worst part for me is now I have to write my own version of all that stuff above on top of XNA. It's a lot of extra work and we'll probably hire another programmer or two to get the work done. Yet another project at another company where TGB/TorqueX could've made inroads if only people could figure out how to use it.

ALF
#23
06/16/2008 (6:12 am)
@Anthony - Thanks for the feedback. In a lot of cases, solid documentation is indeed a make-or-break decision for companies. I fully appreciate that and am currently experiencing the same decisions at my day job.

Just as a reminder, though. I can really only address documentation issues in this thread. The thread could derail when the subjects of marketplace, code, and business start coming up. If these are issues you want addressed, we can converse privately via e-mail (mine is located in my profile) or I can refer you to some other threads where this is more thoroughly discussed by other Associates and GG employees.

But...back on track. In regard to the search feature in the html, we hit this problem with the other engines' docs. We resolved the problem with the TGEA 1.7.1 release and are going to work this into the rest of our docs.

I'm a big fan of having a search feature for everything: Torque docs, 3rd party SDKs, etc. Hell, if I could have a search feature in my life I'd never have to worry about remembering birthdays or where I placed my recharge pack for my 360 controller O.o.

EDIT: I just updated my first post which everyone needs to read. I just made a small announcement that could be useful for future readers/posters
#24
06/16/2008 (9:28 am)
For documentation, I'd like to know more about the following

- Events. A few examples of having our own TorqueEvents, and how to make them, and recieve them on the fly if that is possible. How to remove event listeners when an object gets unregistered.

- GameTime vs RealTime. How to make use of schedualed processing, for pausing game scenarios and such. It would be nice if we could use the component archetecture and tile maps for some different styled features while pausing the game. But how can we get schedualed updates for the xbox controllers "move" etc.. I have a few ideas, but i'd like to see the torque scenarios

- TorqueObjectDatabase. I have a feeling this has not been tapped into enough. returning lists of object types, or some such, may be possible, but how do we tap into it?

Will-O
#25
06/16/2008 (10:13 am)
@Will O*Reagan - Good stuff, thanks.
#26
06/16/2008 (7:25 pm)
I'd like to see a "How To" section added that answers the more obvious questions people have when writing a game. For example things like...

"How do I add buildings to my game?"
"How do I add an animated character?"
"How do I create a frontend\pause menu?"
"How do I save\load?"
"How do I tell when a button has been pressed?"
"How do I do ?"
"How do I change an object's texture at run time?"
"How do I add an ai character?"

Also a section on using Torque without the xml files would be handy. I imagine some people are more at home with creating everything in code - or they're generating content on the fly and need to do it that way.

I'd like to see small examples and preferably linked from the api reference. I tried to get the refractive material working and I could look up the API reference but there was no clue as to what I need to do to get it working. If there was an example of a spinning refractive cube the api doc could link to that.

Examples which don't try do too much would be best. I'd rather have lots of samples where the thing being shown is clear as possible as opposed to cramming lots into a big sample. Things like "adding a skybox" could have it's own sample. This is kind of connected to the "How To..." comment above.

As someone mentioned a best practice on how to implement different features into Torque would be good.
The MSDN has usage examples in their documentation which are really helpful.

It's hard to use an API without some kind of guide. It's why I'd rather see plenty more samples (like the DirectX SDK) that show most of the API calls being used.
#27
06/17/2008 (5:27 am)
@luggage - So you are looking for several How-To articles, but in miniature form.

Something more along the lines of small module docs that would allow a user to "pick and choose" what they want to drop in without being completely reliant on a much larger document or sample?

You also said: "...linked from the api reference." Are you talking about the .chm file, or the html docs? I think the .chm is handy, but I think we are definitely moving more toward integrating everything into the html docs.

A best practices section would be very tricky to write, but I don't think that is an unreasonable request if it was encapsulated to Torque specific (and not game specific) standards.

So, is that an accurate summary of your suggestions?
#28
06/17/2008 (6:06 am)
Yeah pretty much. Personally whether the docs are .html or .chm doesn't bother me so long as I can find the information I'm looking for. The linking thing is just a way when looking at an api reference you can then go and find a real world usage of the class you're looking at.
#29
06/17/2008 (6:08 am)
@luggage - Cool. Read loud and clear =)
#30
07/01/2008 (8:34 am)
As suggested by Michael, I continue here the thread on the tutorials problems (http://www.garagegames.com/mg/forums/result.thread.php?qt=76672) :

With the updated documentation available at this link: http://www.garagegames.com/blogs/44338/14528, I was able to implement the compass in the Airplane tutorial but even in the updated version I've found two minor missing details.

1) In the step 5 (Mounting a camera to our plane) we create a new Object Type, named "mainCamera" and we set the WorldView.RenderMask = mainCamera but if we run the program at this point we will see a black screen...

To correct this I've added the mainCamera object type to the airplane, the tilemap and each ship template.

2) In the Microbes tutorial, the step 2 (Modifying the StarterGame Template) starts with the following phrase:
"The scene that comes with the StarterGame starter kit already has something in it: A GarageGames logo which has a MovementComponent attached to it."

This is false in my starter kit... Naturally, after having tried all the previous tutorials, it's rather easy to add the logo and the MovementComponent...

Hope this helps,
Diego
#31
07/01/2008 (9:53 am)
@Diego - Double thanks:

1. For spotting those bugs and reporting them
2. For posting a link to your old thread. That's a great way to help me keep track of past references =)

Keep it up everyone!
#32
07/02/2008 (11:32 am)
I've just recently started delving into both XNA and Torque X in preparation for the DBP contest so obviously my goal is to learn everything as quickly as possible. To that end, the documentation so far has given me mixed results so I thought I'd share my impressions of the current docs and suggestions for future docs.

Overall, I'm really impressed with the general documentation on using Torque X. I'm referring to the 'Concepts' section here. It helps to start to lay the foundation for what the framework is. One thing that I'd like to see added to this section is a "What Torque X is - What Torque X is not" page. This is explained directly and indirectly throughout the documentation but it'd be nice to see a list that allows you to see at a glance, "Ok, Torque X will take care of rendering, collision, physics, etc. but I need to use the XNA classes for my sound."

Another thing I find very useful is the Torque X API help file. However, I don't recall seeing a link to it anywhere in the documentation. I actually found out about it by surfing through this forum. It's a great reference that should be more visible.

I just went through the Blaster tutorial last night and it helped me understand the Torque X framework better than any of the other tutorials I've done so far. I think that's mainly because it (at least partially) explains what all the code you're copying and pasting does. I have to agree with others in that I want to know WHY I'm doing something. Don't just tell me to, "copy this code and paste it into this section" without explaining why I'm doing that and what's happening in the framework as a result. It's the whole, "give a man a fish, teach a man to fish" thing.

Here are a few examples from the Blaster tutorial where explanations were lacking:

public override void CopyTo(TorqueComponent obj)
	{
		base.CopyTo(obj);

		EnemyAIComponent obj2 = (EnemyAIComponent)obj;

		obj2.MaxAcceleration = MaxAcceleration;
		obj2.MaxSpeedX = MaxSpeedX;
		obj2.ROFCooldown = ROFCooldown;
		obj2.FireProbability = FireProbability;
		obj2.AttackDistance = AttackDistance;
		obj2.AvoidDistance = AvoidDistance;
	}

What does this method do? After going through a few tutorials my guess is that it copies the input fields of a component in TXB to the private variables of the component itself but I'm not totally sure of that. A simple one sentence explanation would explain everything.

public virtual void ProcessTick(Move move, float dt)
        {
                if (move != null && move.Buttons[0].Pushed == true)
	{
		_Fire();
	}
        }

This one drove me crazy! What the heck is a "move" parameter in a component's tick method? I would assume that it's some sort of physics based thing but wait, it's being used to get user input?! Say what? The only comment after the function in the tutorial is: "Torque X gives us the move object to tell us about the input we're receiving, and we check it to see if the player is pushing the button." That's pretty obtuse considering the object is called "move" and not "input." At least for me it is anyway! So I go to the API reference and look up the GarageGames.Torque.Sim methods and slowly I piece it all together. But it'd be nice to have just a bit more detail in the tutorial so I could understand it and move on with the next step.

After going through the Blaster tutorial something in my brain just "clicked" and I started to understand the power of Torque X and the philosophy behind it. It was probably more than just this specific tutorial that helped me to "get it" but it'd be nice if all of the tutorials laid things out in a sequential manner and steadily built upon each other to produce a complete understanding of the framework.

IMHO, the only thing keeping most XNA developers from using Torque X is the lack of clear and cohesive documentation. While I personally have experience with many languages and platforms, it's important to understand that a lot of people coming to XNA are new to programming and Torque X (with its current documentation) will make little to no sense to them because they'll likely be overwhelmed. I think that if the tutorials are designed to be done sequentially (like a book) that would help a lot. Even if the first few tutorials are retardedly simple. If nothing else, it gives the user a sense of confidence to go through a tutorial and say, "That was totally simple!" I think that's why XNA user love the XNA tutorials on creators.xna.com. They don't try to do too much except explain individual concepts.

Just my 2 cents. More like 25 cents, but still. ;)

Dennis
#33
07/02/2008 (11:51 am)
@Dennis - Fantastic feedback!

TorqueX is a relatively new engine, which means a lot of the users are new to Torque tech, XNA, or general game development.

I love getting this kind of info from new users. That's why this thread will produce some of the clearest and highest priority feedback.

This helps offset my lack of TorqueX experience, because like a lot of you, I'm new to this X development stuff =)
#34
07/08/2008 (2:41 pm)
In FSMTutorial (with Torque X for Game Studio 2.0) :

> T2DSceneGraph.Instance.FindObjects(location, 1.0f, unitType, 0xFFFFFFFF, foundObjects);
T2DSceneGraph has no 'Instance' member or property at all. It games me just a compile error.

So I make some walkaround like this and I guess i solve the problem.

> T2DSceneGraph _sceneGraph;
> _sceneGraph = TorqueObjectDatabase.Instance.FindObject("Camera").SceneGraph as T2DSceneGraph;
> _sceneGraph.FindObjects(location, 1.0f, unitType, 0xFFFFFFFF, foundObjects);
An idea to get a SceneGraph from the T2DSceneCamera from Google seems to wierd a bit
but it solve the problem anywaym at least it makes the code working :-(

In AirplaneTutorial (with Torque X for Game Studio 2.0) things are pretty diffent :

> T2DSceneCamera InstrumentCam = T2DSceneGraph.Instance.DefaultCamera.Clone() as T2DSceneCamera;
T2DSceneGraph has no 'Instance' member or property at all, too.
And _sceneGraph from walkaround codes has no 'DefaultCamera', either ;-(

> GUIStyle InstrumentStyle = new GUIStyle();
> InstrumentStyle.Anchor = AnchorFlags.All;

GUIStyle has no 'Anchor', too.

Some early parts of whole tutorial works well, but later it makes me too much problem like these.
(and some tutorials like Airplane tutorial has many wrong screenshots from other tutorials.)


Enough to talk about tutorials. I think there's no exact class hierachy map in TorqueX Doc.
Of course there's an Object Hierarchy Diagram, but this one is for product presentation, i think,
it cannot helps to coding with REAL TorqueX objects.
(When i met some problem with tutorial, there's no references - class hierachy map,
class documentation with all property/method listed, etc.)
Even the DirectX Documents aren't perfect at all, but they have listed almost all features.
With recent TorqueX Documents, i simply can't find what i'm wrong with my codes.

Shall I need to buy the TorqueX Pro to obtain the whole class spec. list or something? (T_T);
#35
07/08/2008 (11:52 pm)
Hi Jeheon :),

You can find the answers to your questiona (and more) 5 post upper :)

Solution direct link: http://www.garagegames.com/blogs/44338/14528

Diego

P.S. I've posted the same questions here: http://www.garagegames.com/mg/forums/result.thread.php?qt=76672 :)
#36
07/09/2008 (12:46 am)
@Diego - Thank you, you saved me ^^

I've searched several time with keywords like 'T2DSceneGraph.Instance' over night,
but it gaves me only two results about 'T2DSceneGraph.Instance.Camera blah blah blah ...'
until now. :-(

The Google search engine on top of this page isn't work properly, i guess.
(Dear GarageGames, We need more accurate, specific searches for forum texts ^^)
#38
07/26/2008 (2:55 pm)
I just thought of an idea that is like icing on the cake. Everyone's comment is the cake and the foundation in my opinion to a great documentation. I agree with everyone on their comments, suggestions, and frustrations.

My idea is why not allow the community to give back to everyone else. What I mean by that is why not allow to have a youtubeish tutorials where any user can make their own tutorials on how they did something so that the community can profit from this. This way it is not just one person writing the documentation, but theortically everyone! It's the main reason why I love wiki so much. Everyone can chip in. Maybe there is already something out there and if so someone please point in the right direction!
#39
07/26/2008 (3:59 pm)
Points to TDN is a community maintained wiki.
#40
07/27/2008 (7:09 am)
@David - Thanks for catching this.

@Chris - We have multiple methods that allow community contributions. As David said, there is the TDN. We also have resources. Our GG web dev, Jacob, has been working his magic to get us video embedding on GG.com.

We've been brainstorming to come up with new ways community members can contribute to documentation and tutorials. It's a good point you brought up Chris =). So, if there are any other suggestions on how, please feel free to post more.