Game Development Community

TGE architecture -> extendability

by Michel Claassen · in Torque Game Engine · 04/14/2007 (7:56 am) · 9 replies

Hi all,

At the moment I'm making myself familiar with Torquescript through the TGB demo, and I'm about to purchase a TGE indie license. However, before I will, I'm curious about how easy it is to extend TGE.

For example, I'm thinking about incorporating the use of speech in a game (or -showcase) using Microsoft's Speech SDK. Now, since this SDK is very platform dependent and I'd like to keep my chances open at going multiplatform, I'll need to develop something that is easily pluggable. How is TGE prepared for this? Is there any more architectural information for non-owners? Or, perhaps the easiest of all: did anyone around here try something similar? If so, what are your experiences so far?

Thanks a bunch.

Michel

About the author

Recent Threads


#1
04/14/2007 (8:10 am)
There is a resource for adding Speex support, although I haven't tried it yet. There are other VOIP discussions on the forums as well.

Here is the "Voice Comm using PortAudio, Speex and OpenAL" author's intro:

"This code is bare bones as a starting point to create your own VoiceComm in your game. It uses the client/server connection to transmit speex encoded audio, which the server then relays to everyone (including the sender in this implementation). This code has no channels, but will relay anything sent to the server to everyone connected, including the player who sent the voice stream in the first place. You are on your own to code that part as you see fit."
#2
04/14/2007 (10:32 am)
Thanks for the quick reply Willbkool.

However, I'm actually more interested in the general approach to using external sdk's in the TGE. Since indie licensees have access to the source code, I know basically everything is possible. Nonetheless, I'm curious about how flexible and pluggable this complex system will be.
#3
04/14/2007 (12:34 pm)
In my opinion, extending TGE with 3rd party libraries and systems is relatively easy. There are two concerns you might consider when implementing, however.

TGE's architecture is set up to have total dominance over memory management. If you are implementing an SDK or lib that overloads its own versions of memory operators, you have some work cut out for you.

Also, since you are discussing an extension dealing with audio implementation, you should know that (IMHO) TGE's audio system is the most bugged and weakest system the engine has. I'm instructing my lead programmer rip out the stock sound system and having him implement FMOD.

The Memory Manager problem is quite simple to solve. Your options are to disable the Memory Manager, which I hate doing, or integrating a resource that allows you to use STL classes. If/when you get to this problem, let me know and I'll forward the link.

This is the deepest I can go without talking actual source code, which is not allowed in public forums.
#4
04/15/2007 (12:51 am)
Thanks for your reply Michael,

Although TGE is rather closed for non-owners, at least you gave me some faith that I won't be running into deep trouble, and that there are workarounds already available. Which brings me to the resource on using STL classes; although I'm not encountering anything yet, I'm quite curious about how this is solved. So if you could forward the link, that'd be great.

Also, thanks for the warnings on the audio system. Nonetheless, if I'm going to use MS's Speech SDK for input only, I should be able to keep that quite seperated from TGE's audio system. Otherwise, I'll know what to expect.
#5
04/15/2007 (8:29 am)
You'll need engine code access, but here is the Resource
#6
04/15/2007 (8:45 am)
Michel, check out http://www.3dlanguage.net/cms/ by Coccinella Development. They integrated a 3rd party speech-recognition engine into TGE. I'm not sure who did the integration for them, but search the GG site for Dave Dunlap's membership page and send him an email.
#7
04/15/2007 (8:51 am)
There isn't a pre-set architecture for integrating third-party libraries, but it's definitely doable. our project has integrated third-party SDKs for: theora video, wmv video, in-game advertising, curl, and even a small HTTP server. you always need a good programmer to do things like that, but that's true of any system.
#8
04/15/2007 (12:15 pm)
Guys, thanks for all your input. You have me a bit more confident with what's possible with this engine. I've purchased the TGE indie license today, so I'll make myself familiar with the system and then check your references/resources out in the upcoming time.

Thanks again and see you on the private forums!
#9
04/15/2007 (12:23 pm)
Hopefully, if no more storms or tornadoes run through my area, I'll be able to meet my deadline and upload the first part of a tutorial and new documentation tonight. Check the community page after 7pm (Eastern time) for my blog posting the link and information. It might help you with your journey in learning Torque. Good luck either way.