Game Development Community

Compatibility between TGE and TGEA

by Richard Young · in Torque Game Engine · 02/21/2007 (10:17 am) · 15 replies

If I wanted to connect a TGE client to a TGEA server or vice versa, would that be possible, and what kind of work would it take to make it work?

The reason I want to do this is because I have a huge level with about 800 or so buildings in a 720000 sq meter area and would be the setting for a MMO. I've heard that TGEA would be able to handle this much better than TGE, and I heard I could do seamless transparent zoning. However, I want to use TGE because it's a more mature engine and can run on non-Windows platforms.

Any ideas on how compatible TGE and TGEA are?

#1
02/21/2007 (11:40 am)
I'm mainly curious about how TGEA deals with seamless transparent zoning and large levels. Does the TGEA server play any role in determining how the client renders objects, such as sending a set of visible objects for rendering? or is the TGEA/TGE renderer completely independent of any server messages?

During transparent zoning, how would a TGEA client continue rendering objects in the world while it's establishing a new connection to another server? Are these objects somehow preloaded? In a TGE client, I assume that you'll get a loading screen while it connects to a new TGE server and retrieve all the datablocks and objects in the new zone.

I haven't purchased TGE/TGEA yet, but I'm experimenting with the TGE and TGEA demos at the moment.
#2
02/21/2007 (11:55 am)
I was unaware that TGEA provided some support for seamless server transitions. is that true ?
#3
02/21/2007 (11:58 am)
I'm mainly curious about how TGEA deals with seamless transparent zoning and large levels. Does the TGEA server play any role in determining how the client renders objects, such as sending a set of visible objects for rendering? or is the TGEA/TGE renderer completely independent of any server messages?

During transparent zoning, how would a TGEA client continue rendering objects in the world while it's establishing a new connection to another server? Are these objects somehow preloaded? In a TGE client, I assume that you'll get a loading screen while it connects to a new TGE server and retrieve all the datablocks and objects in the new zone.

I haven't purchased TGE/TGEA yet, but I'm experimenting with the TGE and TGEA demos at the moment.
#4
02/21/2007 (11:58 am)
Sorry for the repost. Accidentally pressed F5

I read about TGEA and seamless transparent zoning here:

http://www.garagegames.com/mg/forums/result.thread.php?qt=51934
#5
02/21/2007 (12:28 pm)
That thread is rather long, can you point to a part of it which talks about TGEA and seamless transitions ?
#6
02/21/2007 (12:31 pm)
Well, I don't know if it's built into TGEA, but if you use Dreamer's MMO addon for TGEA (Titas), he claims it can offer seamless transitions between zones.

Just do a search for "seamless":

"Titas features seamless transparent zoning, ie Wow.
MMOKit features hard zoning i.e. EQ."
#7
02/21/2007 (12:37 pm)
Ah gotcha - i didn't realize Titus was an add-on for TGEA.
thanks!
#8
02/21/2007 (1:38 pm)
We've had a really experience so far with TGE/TGEA compatibility... in fact, we have a TGE and TGEA of our MMORPG technology sitting right along side each other and can switch between them :)

Here's an alpha shot of the TGEA build, please excuse "No Material" guy. We need to get the clothing system working yet :)

www.prairiegames.com/mom_tgea.jpg
TGEA rules! :)

-Prairie Games, Inc
#9
02/21/2007 (1:41 pm)
Wow, that technology rocks. I noticed Prairie Games is going to release a MMO toolkit. Would this feature be available when that kit is released?
#10
02/22/2007 (8:37 am)
@Prairie Games When you talk about TGE/TGEA compatibility does that mean TGE client to TGEA server and TGEA client to TGE server?
#11
02/22/2007 (8:47 am)
It would probably be best to keep TGE/TGEA clients/servers talking to themselves. There are no benefits of using the TGEA server with the TGE client. If you want to have the same server for different clients, I would look at a TNL layer that is common to both clients and the server.
#12
02/22/2007 (8:57 am)
Ok, I see your point. But in your post above, Prairie Games has the capability of connecting TGE and TGEA clients to a TGE server?
#13
02/22/2007 (9:51 am)
Quite honestly, the only reasons I could see for allowing a TGE-A server to talk to TGE clients would be:

1) Cross platform until such time as an OpenGL GFX Device is developed.
2) Allowing a "lesser hardware" client to still play your game.

You aren't going to be able to have a TGE-A client serving a huge world without having Atlas2 on the client side as well, for example.
#14
02/22/2007 (10:16 am)
@Stephen - Yes, those are the exact reasons why I want to use a TGE client with a TGEA server. I want my app to support lower end hardware and be able to run on multiple platforms. But I'm not sure how compatible they are, and this thread has shed some knowledge on what's doable and what's not.
#15
02/22/2007 (11:19 am)
There is not much total difference in TGE and TGE-A networking.

Your primary issue is going to be proper reconstruction of Concrete/Abstract class reps (see ConsoleObject), and confirming that they stay paired properly across TGE-A and TGE--something that has not been tested at all here at GG since it isn't a primary target market requirement.

Due to the fundamental differences in classes from SceneObject on down in the hierarchy, I'm very confident that the class reps are not going to match up properly, and you will need to pay careful attention to how ghosted objects will work when ghosting data to different class implementations (your Player class on TGE is not going to match your Player class in TGE-A for example).

Off the top of my head, the two major strategies that will need research will be:

1) Can you proxy out the definitions of the two code bases' classes such that the ghosting system can be left alone?

2) Will you need to re-write the ghosting code such that it can handle remote instantiation (see Abstract/Concrete class rep above) as well as ghosted updating with different classes.

Neither is really trivial, but doable with some work.