Game Development Community

Question about TGE

by Benjamin L. Grauer · in Torque Game Engine · 04/01/2008 (5:38 pm) · 12 replies

It's been almost two year I'm working on TGB games, and I'm considering TGE(A) for my next project. It seems a natural evolution from what I learned from TGB.

I've played a little with the demo and editor, learned my way through modeling and exported successfully some good DTS and DIF in game. I'm even finding it a lot more easier than making 2d HD characters and backgrounds. So far so good.

But, I have a few questions before being completely euphoric and jumping in, filled with joy for 3d goodness:

1) I'm pretty fluent as a torquescripter, but I never touched C or C++ of my life. Is C++ a necessity for TGE?
If so, what is the average C++/script ratio needed to complete a good non-FPS game system?
I suppose I can convert my TS skills into C++ skills, but if I can be lazy and stick with what I already know, it's even better.

2) How flexible are the base Player and AIPlayer classes? Or how easily can I create my own way of controlling characters and camera? (I'm looking for console style controls with orbital camera and such, but I also want to make some cutscenes, which means I would also want flexible camera movements)

3) How strong and flexible the collision detection between DTSes is? I mean, if I want to make something like melee and swords collision detections (especially if the swords swings are really quick).

4) I already know how good the particle engine is (from what I saw in TGB), but I'm also very interested into true TRAILS (ala Soulcalibur... or Legion). Is that sort of effect doable in stock TGE(A)?

5) In TGEA forge demo the framerate is somehow acceptable on my old computer (AthlonXP 2600+, gf6600gt and 1go DDR, which runs WoW and HL2/TF2 fine enough).
But the mouse view lags a lot behind my own mouse moves.
I suppose it is not something done by design. It doesn't happens on games like Bioshock which have a lot worse framerate on this comp (and a lot more things happening).
Is there an explanation to this issue?

6) Globally, to those who know: What are the main differences between TGB and TGE(A)? (beside being 2d and 3d)

#1
04/02/2008 (5:38 pm)
Nobody around?
I thought that at least one nice admin/employee would notice a potential customer x[]
#2
04/10/2008 (6:14 am)
Bump!

I'm still interested into getting answers, especially for the question 5.
#3
04/10/2008 (6:35 am)
I read every topic, but I don't often have time to post to every one. Especially if the answers are extremely involved. I had this bookmarked to discuss as I got time.

Quote:1) I'm pretty fluent as a torquescripter, but I never touched C or C++ of my life. Is C++ a necessity for TGE?
If so, what is the average C++/script ratio needed to complete a good non-FPS game system?
I suppose I can convert my TS skills into C++ skills, but if I can be lazy and stick with what I already know, it's even better.
There is no way to know. Depending on your gametype, you will most likely be doing some heavy lifting in both C++ and TorqueScript. Some of the lifting may be done for you (Advanced Camera resource, for example) and only require minor lifting. But some may not be done at all, requiring you to decide on either coding it into the engine or through the scripting interface. But, even with a FPS, you will most likely be doing some C++. The further your get from the core design of the engine, the more C++ you will most likely be doing.

Quote:2) How flexible are the base Player and AIPlayer classes? Or how easily can I create my own way of controlling characters and camera? (I'm looking for console style controls with orbital camera and such, but I also want to make some cutscenes, which means I would also want flexible camera movements)
For the first, you will need to look at the Advanced Camera resource and the orbit camera mode. Then you will need to tweak it according to the exact view you want. The second (cinematic) cameras can be joined to paths and nodes (like in the demo, where the camera moves along a path). Check out the YakPack video for their implementation for conversations.

Quote:3) How strong and flexible the collision detection between DTSes is? I mean, if I want to make something like melee and swords collision detections (especially if the swords swings are really quick).
You will need to either take the existing melee resources and tweak them according to your gameplay or create your own. Some of them rely on a ray cast to determine whether they hit the target. There is not easy built-in system for melee combat mechanics and collisions.

Quote:4) I already know how good the particle engine is (from what I saw in TGB), but I'm also very interested into true TRAILS (ala Soulcalibur... or Legion). Is that sort of effect doable in stock TGE(A)?
You would have to modify the source, according to a number of topics on it. You may be able to fake it with particles, but most of the implementations I've seen required more work. There was discussion on the AFX forums, but I cannot recall right now the end result.

Quote:5) In TGEA forge demo the framerate is somehow acceptable on my old computer (AthlonXP 2600+, gf6600gt and 1go DDR, which runs WoW and HL2/TF2 fine enough).
But the mouse view lags a lot behind my own mouse moves.
I suppose it is not something done by design. It doesn't happens on games like Bioshock which have a lot worse framerate on this comp (and a lot more things happening).
Is there an explanation to this issue?
I haven't noticed this, though there is definitely lag on my machine, due mostly to the amount of particles and dynamic lights at several points in the scene. This computer that I'm using is barely shader aware, however. Try it in fullscreen mode.

Quote:6) Globally, to those who know: What are the main differences between TGB and TGE(A)? (beside being 2d and 3d)
A huge amount of architecture. This is an extremely difficult question to approach since TGB was initially built on TGE in a manner that allowed drag-and-drop project addition to TGE, so you could get the benefit of both engines. However, as both products matured, they moved in different directions, so it is not nearly as easy now to implement TGB in TGE. Different areas of the product have matured differently, which makes comparison on the code level difficult. TGEA has DX shader support.

TGB does not. I guess that's one difference that is not bound to the 3D'ness of the engines (though bound to the way 3D acceleration functions).
#4
04/12/2008 (9:56 am)
Thanks for the responses David ^^

I saw the camera resources and I plan on trying these as soon as I would get TGE.
As for TGEA, the controls lag worries me, I think will refrain getting it as long as it's in there.

About the "heavy" modification needed for melee, I'm sure I can do something (at least I could so with TGB), as long as the collision detections are accurate enough.

That leads to my two last questions:
7) Does the engine can report that a part of a character/weapon collided with a part of another character/weapon, accurately (at whatever speed the action may be happening)?
And if not, maybe it's possible to mount triggers on characters?

8) About the DTS, I see in the docs that the collision meshes must be named col-# (0 to 9). Does that means I can only create 9 collision meshes for each character model?
#5
04/12/2008 (10:34 am)
I don't see the lag in anything except for the Forge demo, which is more of an art demo than it is an optimized level, which I'm guessing is why the lag occurs. Ive seen similar problems with Unreal 3 art levels. They look beautiful, because that's the point, but they are unplayable in the traditional game sense. The best artwork section of the Make Something Unreal contest is all about making a beautiful level regardless of the playability. In fact, if you just have a pathed camera or camera mountpoint (as in the Forge demo), you don't have to worry about camera collisions and other things that might cause a bit of jitter in your level.

I wish I were more up on the collision precision for melee combat, but I'm not. The precision often depends on how intense your game needs to be (a swordfighting simulation can be much more precise than a more typical Oblivion-style hack 'n slasher).

Quote:7) Does the engine can report that a part of a character/weapon collided with a part of another character/weapon, accurately (at whatever speed the action may be happening)?
And if not, maybe it's possible to mount triggers on characters?
I've not dealt with this directly since I haven't implemented the melee resources in a long time and never went past the stock stuff in the resource (and ended up not really using them much, truth be told). But I believe you can figure out which collision mesh triggered the collision. The player mesh, however, is created at runtime, so you will need to figure out a way to determine different parts of the player's mesh. I also may be totally off-base here, since I haven't done much with this. There is a resource on headshots and multiple hitpoints for FPS's that might help in determining that, though. I know it's not melee, but it may give you a good idea on how to determine multiple hit points on a mesh.

Quote:8) About the DTS, I see in the docs that the collision meshes must be named col-# (0 to 9). Does that means I can only create 9 collision meshes for each character model?
That's an old dependency. The restriction on the number has been removed for a while, but the different exporters only support certain amounts. So check the exporter you're using for information on how many they support on export.
#6
04/19/2008 (11:59 pm)
Thanks for the answers. I will surely get TGEA anyway, I'm just loving normal maps since I discovered it ^^'

I have one last question, hopefully the true last one :p

9) This is from the very outdated (but *mostly* reliable) maya export tutorial:
Quote:When you have multiple textures on your model, the engine must draw (and keep in memory) an instance of the mesh for each texture that is applied to it. So, if you have 2 textures applied to a mesh and that mesh is 500 polygons, the engine will actually have to draw 1000 polygons and also keep that data in memory. As such, although you can do it, you should be aware of the consequences involved in texturing this way and know that it is highly recommended to use only 1 texture per model.
Does it still really is like that? In TGE and/or TGEA?
It's also very unclear of whether a single model made of multiple meshes would be ok if meshes use different textures from each other.
#7
04/21/2008 (9:41 am)
That I don't know. I'm not sure why it would be loading two meshes when it could instead swap UV materials. But then I also haven't delved that deeply into that. As to having it loaded, it makes sense to have the textures and meshes loaded (at least the original, instanced mesh) so that it can be used. Of course, I can also see how dropping in an instanced mesh with a new texture might also be beneficial in a quick-load scheme. I do not know if this is still the case, though with the mesh hiding resources and the amount of meshes/uv maps for things in MoM and other RPG kits, make me think that it has changed. I can't confirm it, though.
#8
04/21/2008 (6:28 pm)
Hum... to be sure, is there a way to see the polycount of an object ingame (or for the whole scene)? Something like the TGB debug banner but for TGE?
I'll try to see by myself what are the best practices from here.
#9
04/22/2008 (6:39 am)
- Multiple textures

Cannot speak for TGE and definitely not for the Maya exporter, but TGEA definitely does not have this restriction. You can do full multi-texturing or apply any custom shader desired to object surfaces.

- Polycount

Unfortunately, I don't know of a way to currently get a full polycount for the entire scene using just stuff that's already in Torque. The metrics thing doesn't do it.
#10
04/23/2008 (6:00 pm)
- Multiple textures

Excellent! Thanks ^^


- Polycount

Arh, so I'll have to do some mental calculation by myself.
#11
04/26/2008 (7:35 am)
(sorry this may looks like cross-post with a thread I created, but I realized it wasn't worth doing another thread again)

I have yet to make any animation and export to TGE(A), but before doing so, I would like to know if there's any limitations within the engine about it. And the documentation is really blurry about that:

10) Can I use as many joint and bones as I want? If so, what is the bottom line, what sort of limits it could have?

11) Can I use a high framerate for the animation, like 60+? If so, is there's something I should be aware of?

12) How many animations a single character can support? I saw the naming of each DSQ had something to do with it, but I can't find the thread anymore...

Thanks for anyone responding ^^
#12
04/28/2008 (8:36 am)
Alright, let's see if I can give it another go!

Quote:10) Can I use as many joint and bones as I want? If so, what is the bottom line, what sort of limits it could have?
I do not believe there are any hard limits on the number of bones in TGE. There may be in the individual exporters, however. I'm not sure on the specifics there. If, for example, you are planning on advanced facial boning for facial animation, I would recommend working with the resourceManager to load/unload detail models on the fly and use a general model for the majority of "exploration" or gameplay and the detail model for close-ups and advanced animations.

Quote:11) Can I use a high framerate for the animation, like 60+? If so, is there's something I should be aware of?
I don't believe animation is frame-based so it may be difficult to determine in terms of an animation rather than in terms of rendering a simulation with all of the animations, assets, and any other animations/IFL's/video's/audio syncronization/etc.

Quote:12) How many animations a single character can support? I saw the naming of each DSQ had something to do with it, but I can't find the thread anymore...
I cannot remember. I do know that the ragdoll pack added code to extend the number of animations because of the naming convention. I don't think there was a hard-coded limit explicitly, but there was an implicit one because of the naming convention. I can't remember the details on adding more.