Game Development Community

T3D 1.2 Final (and possible before) - File streaming doesn't seem to work

by David Jauregui · in Torque 3D Professional · 01/03/2013 (9:47 pm) · 2 replies

1.2 Final
Windows 7 Ultimate/Pro Likely any version of windows.

Where: Problem happens in client.

Bug: Files from the server aren't streaming to the client as they once did.

Create a copy of Torque3d 1.2. Run one copy as the server, and the second as the client to join. In the second copy delete some mission files, or DTS files. The second copy will attempt to connect and then tell you it has an incorrect or incompatible version.

TGEA1.8.2 (Strong hold mission/engine) worked when I deleted the .mis, or a .dts - However it will still fail if the .ter is missing; indicating that it too has a similar though not as severe problem. (Missing .mis file will download and then join the server)
I haven't been able to test on prior versions of T3d as my PC crashed and am still looking for older archived versions, but T3d1.1 has the same problem.

How it should work: When you connect it would download the missing files to your PC and then connect; right now it just dies. Unfortunately, I do not know when this bug appeared as I haven't tested this before, it was something that existed before but I never tested this once I moved to T3d.


#1
07/05/2013 (2:34 am)
Sorry for bumping this but I thought I'd offer a few comments that can hopefully close out this bug report.

First, TGE/TGEA/T3D have never actually had file streaming support, at least not in the traditional sense. So this thread is actually wrong in suggesting it's broken because it never existed in the first place!

When a server is created, it loads a level/mission from a .mis file. When a client attempts to join the server, all of the 'basic' data about objects that exist within that mission are 'streamed' (or sent) to the client during the client's connecting/loading phase. This 'basic' data includes things like datablocks (and all of the data contained within those), position/rotation, dynamic fields, names, etc. What isn't sent/streamed are things like the actual .dts/.dae files, textures (.dds, .png, etc.), sounds, and so on.

This basic 'streaming' process actually occurs throughout the lifetime of the mission as well. As objects are created & deleted, go in and out of scope or have their properties (position/rotation/etc.) changed, the server propagates those changes to every client as needed.

So what does all of this mean? Well:

1). All missions/levels in Torque games are essentially 'serverside'. The only thing clients need to successfully connect to a server are the relevant assets (meshes, textures, sounds, material data and .ter file) used in whatever mission the server is running. Clients don't need the actual .mis file itself.

2). Servers can do nifty things like generate missions dynamically, spawn new objects or make changes to existing objects (e.g. change the position of a piece of scenery) and those changes will be propagated to every client, as needed, in realtime.

3). 'File streaming', to the extent that it has always existed in Torque engines, works just fine in T3D.
#2
07/05/2013 (8:15 am)
And "file streaming" in the more general sense is in some of Winterleaf's stuff - I believe they made a resource for it, but I might be mistaken.