Porting T2D's module system to T3D
by Daniel Buckmaster · in Torque 3D Professional · 07/29/2013 (1:55 am) · 5 replies
I felt like it was about time to post something about this. I've been thinking it for a long time, and with modular templates coming it just makes sense to have a way to organise them, since as far as I remember, Mike isn't planning on porting the module manager or TAML.
I'll admit to not being incredibly knowledgeable about this area of the engines. But having worked with T2D briefly (and planning to do so more soon), its modular structure hit me like a gold brick wrapped in a slice of lemon. Right in the brain. In a good way.
So. Two main questions: good idea or not? See any implementation difficulties?
I'll admit to not being incredibly knowledgeable about this area of the engines. But having worked with T2D briefly (and planning to do so more soon), its modular structure hit me like a gold brick wrapped in a slice of lemon. Right in the brain. In a good way.
So. Two main questions: good idea or not? See any implementation difficulties?
About the author
Studying mechatronic engineering and computer science at the University of Sydney. Game development is probably my most time-consuming hobby!
#2
1. You will not be able to just bring over modules. You will have to bring over TAML as well. There are some dependencies on the asset system as well, so you will either need to bring over the asset system or cut those ties.
2. T2D has zero networking, let alone a complex client/server setup like T3D. You will need to make sure modules are loaded properly to fit that networked setup (client/server scripts).
3. Remember, TAML is a serialization system. There is not a serialization format. It supports three formats: XML, JSON, and binary. To work properly, it was injected into the T2D class hierarchy as a parent.
4. The concept of datablocks was ripped out of T2D. T3D is all about datablocks. Keep that in mind when you work in the TAML serialization.
@Demolishun - Read these: TAML Guide and Module Manager Guide.
07/29/2013 (4:37 am)
I think it's a great idea. My opinion is T3D will greatly benefit from the changes. Tech note:1. You will not be able to just bring over modules. You will have to bring over TAML as well. There are some dependencies on the asset system as well, so you will either need to bring over the asset system or cut those ties.
2. T2D has zero networking, let alone a complex client/server setup like T3D. You will need to make sure modules are loaded properly to fit that networked setup (client/server scripts).
3. Remember, TAML is a serialization system. There is not a serialization format. It supports three formats: XML, JSON, and binary. To work properly, it was injected into the T2D class hierarchy as a parent.
4. The concept of datablocks was ripped out of T2D. T3D is all about datablocks. Keep that in mind when you work in the TAML serialization.
@Demolishun - Read these: TAML Guide and Module Manager Guide.
#3
www.garagegames.com/community/forums/viewthread/134392
07/29/2013 (5:36 am)
@Demolishun - in case it is of interest for you, there is work being done in the T2D community to add SQLite support through TAML.www.garagegames.com/community/forums/viewthread/134392
#4
Thanks, but I already have Sqlite integrated, as well as MySQL. Best part is I did not have to do it!
@Michael,
Thanks for the links.
07/29/2013 (12:03 pm)
@Mike,Thanks, but I already have Sqlite integrated, as well as MySQL. Best part is I did not have to do it!
@Michael,
Thanks for the links.
#5
Mich: thanks for that info! Good points to keep in mind, especially about client/server and datablocks. Part of my motivation has been to try to make T3D load/unload resources a bit more instead of just loading all the datablocks in every mission. Not sure if that will involve changing the resource manager, but it will definitely imply some networking changes :P.
07/29/2013 (2:58 pm)
Demo: yes, the module system is designed to allow you to divide directories according to a 'module' of functionality, whether it be a set of character art, a script library, a behavior and supporting scripts, etc.Mich: thanks for that info! Good points to keep in mind, especially about client/server and datablocks. Part of my motivation has been to try to make T3D load/unload resources a bit more instead of just loading all the datablocks in every mission. Not sure if that will involve changing the resource manager, but it will definitely imply some networking changes :P.
Torque Owner Demolishun
DemolishunConsulting Rocks!
I keep meaning to, but I have not messed with T2D much. Is this a way to better package related objects and scripts? Would this help with making the engine more able to be serialized for database driven implementations?
Right now I am working on serializing missions to XML. I am working toward database storage of missions and objects.